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

<div style="position:absolute;top:-99px;left:-99px;"><img src="https://tools.swfchan.com/stathit.asp?noj=FRM55215215-16DC&rnd=55215215" width="1" height="1"></div>

mahjong.swf

This is the info page for
Flash #268277

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


Text
2000

<p align="right"></p>

<p align="right"></p>

<p align="right"><font face="Chow Fun" size="16" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>verlassen</b></font></p>

00

Clear away all the tiles in the formations by finding matching pairs. Tiles cannot be covered and have to be free on one side to be removable. If you cannot find any pairs you may shuffle the tiles at any time, but if there were open pairs left on the board you will get a time penalty. Clear as many boards as possible in XX minutes.

seconds

Game starts in

<p align="center"><font face="Chow Fun" size="16" color="#000000" letterSpacing="-1.000000" kerning="0">START</font></p>

<p align="center"><font face="Chow Fun" size="34" color="#ffffcc" letterSpacing="0.000000" kerning="1">Time is up</font></p><p align="center"></p>

<p align="center"><font face="Chow Fun" size="34" color="#ffffcc" letterSpacing="0.000000" kerning="1">Iscriviti per giocare alla versione completa</font></p>

0

0

0

:

0

Tiempo

<p align="center"><font face="Chow Fun" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">S</font></p><p align="center"><font face="Chow Fun" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">C</font></p><p align="center"><font face="Chow Fun" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">H</font></p><p align="center"><font face="Chow Fun" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">U</font></p><p align="center"><font face="Chow Fun" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">D</font></p><p align="center"><font face="Chow Fun" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">D</font></p><p align="center"><font face="Chow Fun" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">E</font></p><p align="center"><font face="Chow Fun" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">N</font></p>

<p align="center"><font face="Chow Fun" size="19" color="#ffff00" letterSpacing="4.000000" kerning="1">0000</font></p>

Puntuacion

<p align="center"><font face="Chow Fun" size="35" color="#000000" letterSpacing="0.000000" kerning="1">GAME OVER</font></p>

<p align="center"><font face="Chow Fun" size="30" color="#ffffcc" letterSpacing="0.000000" kerning="1">Score:</font></p>

<p align="center"><font face="Chow Fun" size="40" color="#ffffcc" letterSpacing="0.000000" kerning="1">0000</font></p>

<p align="center"><font face="Chow Fun" size="30" color="#ffffcc" letterSpacing="0.000000" kerning="1">Time Bonus:</font></p>

<p align="center"><font face="Chow Fun" size="40" color="#ffffcc" letterSpacing="0.000000" kerning="1">0000</font></p>

<p align="center"><font face="Chow Fun" size="30" color="#ffffcc" letterSpacing="0.000000" kerning="1">Total Score:</font></p>

<p align="center"><font face="Chow Fun" size="40" color="#ffffcc" letterSpacing="0.000000" kerning="1">0000</font></p>

ActionScript [AS3]

Section 1
//ReplayControl (com.king.midasmahjong.notlive.ReplayControl) package com.king.midasmahjong.notlive { import flash.display.*; import flash.text.*; public class ReplayControl extends MovieClip { public var playBtn:MovieClip; public var stopTickTf:TextField; public var speedTf:TextField; } }//package com.king.midasmahjong.notlive
Section 2
//App (com.king.midasmahjong.App) package com.king.midasmahjong { public class App { public static const DEV_MODE:int = 0; public static const MONEY_GAME:int = 1; public static const PRACTICE_GAME:int = 2; public static const GAME_TYPE:int = 1; public static const NO_MORE_MOVES:int = 0; public static const TIME_RAN_OUT:int = 1; public static const SHORT_GAME_END:int = 2; public static const USER_CHOSE_EXIT:int = 3; public static const RELAX_0_SHUFFLES:int = 4; public static const GUI_SHOW_ROLL_OVER:int = 0; public static const GUI_HIDE_ROLL_OVER:int = 1; public static const GUI_SHUFFLE_BTN_GLIDE_IN:int = 2; public static const GUI_SHUFFLE_BTN_GLIDE_OUT:int = 3; public static const GUI_SHOW_SHUFFLE_PRESSED:int = 4; public static const GUI_SHOW_SHUFFLE_RELEASED:int = 5; public static const GUI_START_SHUFFLE_ANIMATION:int = 8; public static const GUI_START_LEVEL_ANIMATION:int = 9; public static const GUI_START_NEW_LAYUP_ANIMATION:int = 10; public static const GUI_SHOW_GAME_OVER:int = 12; public static const GUI_CHANGE_SELECTED_TILE:int = 13; public static const GUI_REMOVE_PAIR:int = 14; public static const GUI_UPDATE_TIME:int = 15; public static const GUI_SHOW_TIME_WARNING:int = 17; public static const GUI_NOT_MATCH:int = 18; public static const GUI_NOT_FREE:int = 19; public static const GUI_SELECT_FROM_SCRATCH:int = 20; public static const GUI_NEXT_LAYUP_START:int = 22; public static const GUI_SET_GAME_RUNNING:int = 24; public static const GUI_DISABLE_SHUFFLE:int = 25; public static const GUI_RELAX_SHUFFLE_PENALTY:int = 26; public static const INPUT_BRICK_CLICKED:int = 0; public static const INPUT_SHUFFLE_CLICKED:int = 1; public static const INPUT_EXIT:int = 2; public static const INPUT_CHEAT:int = 3; public static const SHUFFLE_ANIMATION_FINISHED:int = 4; public static const LEVEL_ANIMATION_FINISHED:int = 5; public static const INPUT_BRICK_ROLLED_OVER:int = 6; public static const INPUT_BRICK_ROLLED_OUT:int = 7; public static const INPUT_SHUFFLE_ROLL_OVER:int = 8; public static const INPUT_SHUFFLE_ROLL_OUT:int = 9; public static const INPUT_SHUFFLE_DOWN:int = 10; public static const THE_END:int = 11; public static const INPUT_STRINGS:Array = ["tileClick", "shuffleClick", "exit", "cheatAPair", "shuffleAnimEnd", "levelAnimEnd", "tileRollover", "tileRollout", "shuffleRollover", "shuffleRollout", "shuffleDown", "theEndFromGameCore"]; public static const TICKS_PER_SECOND:int = 60; public static const COUNTDOWN_TICKS:int = 25200; public static const TIME_WARNING_TICKS:int = 300; public static const SHOW_A_POSSIBLE_MOVE_MS:Number = 1000; public static const REDRAW_A_BRICK_MS:Number = 1; public static const SECONDS_TO_DECREASE_BONUS_ONE_POINT:Number = 0.2; public static const PENALTY_PER_BRICK_SECONDS:int = 5; public static const INTRO_MILLISEC:int = 20500; public static const START_DELAY_MILLISEC:int = 300; public static const LOOP_SOUND_DELAY:int = 300; public static const LOOP_SOUND_FADOUT:int = 300; public static const OUTRO_SOUND_DELAY:int = 2000; public static const MOVIE_CLIP_FRAME_RATE:int = 60; public static const MOVIE_CLIP_FRAMES_PER_GAME_TICK:Number = 1; public static const END_REASON_SHOW_MILLISEC:int = 4000; public static const GAME_SUMMARY_SHOW_MILLISEC:int = 21300; public static const MINIMAL_GAME_QUIT_DELAY:int = 2000; public static const NEXT_LAYUP_START_DELAY_GAME_TICKS:int = 180; public static const REMOVE_PAIR_POINTS:int = 25; public static const REMOVE_PAIR_SPEED_BONUS:int = 25; public static const RELAX_SHUFFLE_PENALTY:int = -100; public static const STEREO_INTENSITY:Number = 0.7; public static const VOLUME_CLICK:Number = 0.2; public static const VOLUME_LAYUP_CLEARED:Number = 0.3; public static const VOLUME_LAYUP_ANIMATION_BURNOUT:Number = 0.3; public static const VOLUME_REMOVE_PAIR:Number = 0.2; public static const VOLUME_NOT_FREE:Number = 0.15; public static const VOLUME_NOT_MATCH:Number = 0.15; public static const VOLUME_SHUFFLE_LOOSE_TIME:Number = 0.2; public static const VOLUME_SHUFFLE:Number = 0.4; public static const VOLUME_INTRO:Number = 0.3; public static const VOLUME_LOOP:Number = 0.15; public static const VOLUME_OUTRO:Number = 0.3; public static const VOLUME_TIME_WARNING:Number = 0.3; public static const VOLUME_GAME_OVER:Number = 0.3; public static const STAGE_WIDTH:int = 755; public static var toGui:Array; public static var document:Document; public function App(){ trace("App is static and should not be instantiated"); } } }//package com.king.midasmahjong
Section 3
//Brick (com.king.midasmahjong.Brick) package com.king.midasmahjong { import flash.events.*; import flash.display.*; public class Brick extends MovieClip { public var gui:Gui; public var rolledOver:MovieClip; public var selected:MovieClip; public var missed:MovieClip; private var brickNr:int; private var faceNr:int; private var i_:int; private var j_:int; private var k_:int; public static var X_STEP:int = 19; public static var Y_STEP:int = 27; public static var PERSPECTIVE_WIDTH:int = 8; public static var PERSPECTIVE_HEIGHT:int = -8; public function Brick(){ rolledOver.visible = false; selected.visible = false; missed.visible = false; addEventListener(MouseEvent.MOUSE_DOWN, clicked); addEventListener(MouseEvent.ROLL_OVER, rollOver); addEventListener(MouseEvent.ROLL_OUT, rollOut); } private function clicked(_arg1:MouseEvent){ if (gui.getGameRunning()){ App.document.addGuiInput([App.INPUT_BRICK_CLICKED, brickNr]); }; } private function rollOver(_arg1:MouseEvent){ if (gui.getGameRunning()){ App.document.addGuiInput([App.INPUT_BRICK_ROLLED_OVER, brickNr]); }; } private function rollOut(_arg1:MouseEvent){ App.document.addGuiInput([App.INPUT_BRICK_ROLLED_OUT, brickNr]); } public function setPosition(_arg1:int, _arg2:int, _arg3:int):void{ i_ = _arg1; j_ = _arg2; k_ = _arg3; this.x = (int(k_) * Brick.X_STEP); this.y = (int(j_) * Brick.Y_STEP); } public function get i():int{ return (i_); } public function get j():int{ return (j_); } public function get k():int{ return (k_); } public function getFaceNr():int{ return (faceNr); } public function getBrickNr():int{ return (brickNr); } public static function createBrick(_arg1:int):Brick{ var _local2:Brick = new (Brick); _local2.brickNr = _arg1; _local2.faceNr = MahjongCore.getFaceNr(_arg1); _local2.gotoAndStop((_local2.faceNr + 1)); return (_local2); } } }//package com.king.midasmahjong
Section 4
//BrickShadow (com.king.midasmahjong.BrickShadow) package com.king.midasmahjong { import flash.display.*; public class BrickShadow extends MovieClip { public var top:MovieClip; public var middle:MovieClip; public var bottom:MovieClip; public var brickNr:int; public function BrickShadow():void{ mouseEnabled = false; } } }//package com.king.midasmahjong
Section 5
//Coder (com.king.midasmahjong.Coder) package com.king.midasmahjong { public class Coder { public static const KYODAI_DEPTH:int = 5; public static const KYODAI_HEIGHT:int = 20; public static const KYODAI_WIDTH:int = 34; public static const LAYOUT_DEPTH:int = 5; public static const LAYOUT_HEIGHT:int = 16; public static const LAYOUT_WIDTH:int = 30; public static const KEY:String = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#"; public static const CHUNK_LENGTH:int = 10; public static const CODE_PART_LENGTH:int = 2; public static const LAYOUT_SIZE:int = 2400; public function Coder(){ trace("Static class not to be instantiated"); } public static function decode(_arg1:String):String{ var _local5:int; var _local6:String; var _local2:int = (_arg1.length / Coder.CODE_PART_LENGTH); var _local3 = ""; var _local4:int; while (_local4 < _local2) { _local5 = (_local4 * Coder.CODE_PART_LENGTH); _local6 = _arg1.substring(_local5, (_local5 + Coder.CODE_PART_LENGTH)); _local3 = (_local3 + intToBitStr(codeToInt(_local6))); _local4++; }; return (_local3); } public static function codeToInt(_arg1:String):int{ var _local4:int; _arg1 = Coder.reverseString(_arg1); var _local2:int; var _local3:int; while (_local3 < Coder.CODE_PART_LENGTH) { _local4 = (KEY.indexOf(_arg1.charAt(_local3)) * Math.pow(Coder.KEY.length, _local3)); _local2 = (_local2 + _local4); _local3++; }; return (_local2); } public static function intToBitStr(_arg1:int):String{ var _local4:int; var _local5:int; var _local2 = ""; var _local3:int = (Coder.CHUNK_LENGTH - 1); while (_local3 >= 0) { _local4 = (_arg1 / Math.pow(2, _local3)); _local5 = (_arg1 % Math.pow(2, _local3)); _arg1 = _local5; _local2 = (_local2 + _local4); _local3--; }; return (_local2); } public static function reverseString(_arg1:String):String{ var _local2 = ""; var _local3:int; while (_local3 < _arg1.length) { _local2 = (_arg1.charAt(_local3) + _local2); _local3++; }; return (_local2); } } }//package com.king.midasmahjong
Section 6
//Communicator (com.king.midasmahjong.Communicator) package com.king.midasmahjong { import flash.external.*; import flash.system.*; public class Communicator { public function sendPlayData(_arg1:Array):void{ var _local2:String = ((String(_arg1[0]) + ",") + String(_arg1[1])); var _local3:int = _arg1.length; var _local4 = 2; while (_local4 < _local3) { _local2 = (_local2 + (" " + String(_arg1[_local4]))); _local4++; }; _local2 = (_local2 + "=0"); ExternalInterface.call("playData", _local2); } public function send(_arg1:String, _arg2:String):void{ fscommand(_arg1, _arg2); } } }//package com.king.midasmahjong
Section 7
//Document (com.king.midasmahjong.Document) package com.king.midasmahjong { import flash.events.*; import flash.utils.*; import flash.display.*; import flash.external.*; import flash.net.*; public class Document extends MovieClip { public var timer:GameTimer; public var encodedLayouts:Array; protected var gameCore:GameCore; private var communicator:Communicator; protected var currentTick:int;// = 0 public var gameLog:String;// = "" protected var gameDataXml:XML; private var gameQuitSent:Boolean;// = false public var path:String; public var gui:Gui; public var relaxMode:Boolean;// = false public function Document(){ var _local1:Boolean; super(); if (App.GAME_TYPE == App.DEV_MODE){ fakeGameData(); } else { _local1 = getGameData(); if (_local1){ gameDataLoaded(); } else { log("Error: Could not load game Data!"); }; }; } public function gameDataLoaded():void{ gui.setTextProperties(gameDataXml); path = gameDataXml.@path; App.toGui = new Array(); App.document = this; encodedLayouts = new Array(); encodedLayouts.push(gameDataXml.layouts.layout[0]); encodedLayouts.push(gameDataXml.layouts.layout[1]); encodedLayouts.push(gameDataXml.layouts.layout[2]); encodedLayouts.push(gameDataXml.layouts.layout[3]); encodedLayouts.push(gameDataXml.layouts.layout[4]); if (gameDataXml.@relaxMode == "true"){ relaxMode = true; gui.timeDisplay.hideTime(); gui.timeDisplay.label.text = gameDataXml.text.(@id == "lamp_shuffles"); gui.introSign.introTf.text = gameDataXml.text.(@id == "intro_instruction_relax"); }; timer = new GameTimer(App.TICKS_PER_SECOND); gameCore = new GameCore(gameDataXml.@seed, gameDataXml.@mode, App.COUNTDOWN_TICKS, this); if (gameDataXml.@relax == "true"){ gui.timeDisplay.colon.text = ("" + gameCore.relaxShuffles); }; gui.document = this; gui.setTimeFunc(timer.getCurrentTime); communicator = new Communicator(); addEventListener("enterFrame", onlyRender); } public function startGame():void{ communicator.send("gameStart", ""); gui.newSetup(gameCore.getBricksInDrawOrder()); removeEventListener("enterFrame", onlyRender); addEventListener("enterFrame", advanceTime); gui.setGameRunning(true); } private function getGameData():Boolean{ var _local1:Object = ExternalInterface.call("getGameData"); if (((!((_local1 == null))) && (_local1.success))){ gameDataXml = new XML(_local1.message); return (true); }; return (false); } private function fakeGameData():void{ var myLoader:URLLoader; var xmlLoaded:Function; xmlLoaded = function (_arg1:Event):void{ gameDataXml = XML(myLoader.data); gameDataLoaded(); }; var XML_URL = "/com/king/midasmahjong/notlive/DevModeGameData.xml"; var myXMLURL:URLRequest = new URLRequest(XML_URL); myLoader = new URLLoader(myXMLURL); myLoader.addEventListener("complete", xmlLoaded); } public function onlyRender(_arg1:Event):void{ gui.render(0, 0); } private function advanceTime(_arg1:Event):void{ var _local2:int = timer.advanceTime(); var _local3:* = 0; while (_local3 < _local2) { gameCore.tick(currentTick++); _local3++; }; gui.render(timer.alpha, currentTick); } public function addGuiInput(_arg1:Array):void{ var _local2:int = currentTick; _arg1.splice(1, 0, _local2); gameCore.addInput(_arg1); var _local3:int = int(_arg1[0]); if (((!((App.GAME_TYPE == App.PRACTICE_GAME))) && (!(relaxMode)))){ if (Document.isLogicInput(_local3)){ communicator.sendPlayData(_arg1); }; }; } public function addInputFromGameCore(_arg1:Array):void{ var _local2:int = currentTick; _arg1.splice(1, 0, _local2); var _local3:int = int(_arg1[0]); if (App.GAME_TYPE != App.PRACTICE_GAME){ if (Document.isLogicInput(_local3)){ communicator.sendPlayData(_arg1); }; }; } public function gameOver(_arg1:int, _arg2:int):void{ log("gameEnd"); communicator.send("gameEnd", ("" + _arg1)); var _local3:int = App.END_REASON_SHOW_MILLISEC; if (_arg2 == App.USER_CHOSE_EXIT){ _local3 = 0; }; var _local4:Timer = new Timer((_local3 + App.GAME_SUMMARY_SHOW_MILLISEC), 1); _local4.addEventListener("timer", gameQuit); _local4.start(); } public function gameQuit(_arg1:Event):void{ if (!gameQuitSent){ gameQuitSent = true; log("gameQuit"); communicator.send("gameQuit", ""); trace(gameLog); }; } public function log(_arg1:String):void{ gameLog = (gameLog + (_arg1 + "\n")); } public static function isLogicInput(_arg1:int):Boolean{ if ((((((((((((_arg1 == App.INPUT_BRICK_CLICKED)) || ((_arg1 == App.INPUT_SHUFFLE_CLICKED)))) || ((_arg1 == App.SHUFFLE_ANIMATION_FINISHED)))) || ((_arg1 == App.LEVEL_ANIMATION_FINISHED)))) || ((_arg1 == App.INPUT_EXIT)))) || ((_arg1 == App.THE_END)))){ return (true); }; return (false); } } }//package com.king.midasmahjong
Section 8
//EndReasonSign (com.king.midasmahjong.EndReasonSign) package com.king.midasmahjong { import flash.display.*; public class EndReasonSign extends MovieClip implements Renderable { public var textMc:MovieClip; public var openGameTextMc:MovieClip; private var glideInFrames:int;// = 90 private var startY:int; private var stopY:int;// = 250 private var ySpeed:Number; private var yTemp:Number; private var startTick:Number;// = -1 private var initialized:Boolean;// = false public function render(_arg1:Number, _arg2:int):Boolean{ if (!initialized){ startTick = (_arg2 + _arg1); initialized = true; yTemp = y; startY = y; ySpeed = ((stopY - yTemp) / glideInFrames); }; var _local3:Number = ((_arg2 + _arg1) - startTick); var _local4:int = (_local3 * App.MOVIE_CLIP_FRAMES_PER_GAME_TICK); var _local5:Boolean; if (yTemp < stopY){ yTemp = (_local4 * ySpeed); y = Math.floor(yTemp); } else { _local5 = true; }; return (_local5); } } }//package com.king.midasmahjong
Section 9
//GameCore (com.king.midasmahjong.GameCore) package com.king.midasmahjong { public class GameCore { public var rand:Random; public var fromGui:Array; private var mahjongCore:MahjongCore; private var currentTick:int; private var countDownTicks:int; private var countDownMinutes:int; private var countDownSeconds:int; private var countDownPaused:Boolean;// = false private var gameIsOver:Boolean;// = false private var layoutCounter:int;// = 0 private var remainingTimeWarnings:int;// = 2 private var continueTick:int;// = -1 private var document:Document; private var lastRemoveTick:int;// = -1 private var totalBonus:int;// = 0 private var totalScore:int;// = 0 private var endReason:int;// = -1 private var endTick:int;// = -1 private var shortMode:Boolean;// = false private var stopShortGame:Boolean;// = false public var relaxShuffles:int;// = 0 public static var RELAX_SHUFFLES:int = 5; public function GameCore(_arg1:int, _arg2:String, _arg3:int, _arg4:Document){ _arg4.log((("[seed " + _arg1) + "]")); _arg4.log(("countDownTicks " + _arg3)); if (_arg2 == "short"){ shortMode = true; }; if (_arg4.relaxMode){ relaxShuffles = GameCore.RELAX_SHUFFLES; _arg4.gui.timeDisplay.colon.text = ("" + relaxShuffles); }; this.countDownTicks = _arg3; this.document = _arg4; fromGui = new Array(); rand = new Random(_arg1); nextLayout(); } private function nextLayout():void{ var _local1:String = String(document.encodedLayouts[layoutCounter++]); if (layoutCounter >= document.encodedLayouts.length){ layoutCounter = 0; }; mahjongCore = new MahjongCore(this, _local1, document); } public function getBricksInDrawOrder():Array{ return (mahjongCore.getBricksInDrawOrder()); } private function getTimeDisplayUpdate():Array{ var _local1:int = (App.TICKS_PER_SECOND * 60); var _local2:int = (countDownTicks / _local1); var _local3:int = (countDownTicks % _local1); var _local4:int = (_local3 / App.TICKS_PER_SECOND); if ((_local3 % App.TICKS_PER_SECOND) > 0){ _local4++; if (_local4 == 60){ _local4 = 0; _local2++; }; }; return ([_local2, _local4]); } public function tick(_arg1:int):void{ var _local2:Array; var _local3:int; var _local4:int; var _local5:Array; var _local6:int; var _local7:int; var _local8:String; var _local9:String; var _local10:int; this.currentTick = _arg1; if (countDownPaused){ if (_arg1 == continueTick){ continueTick = -1; continueGame(); if (!stopShortGame){ App.toGui.push([App.GUI_NEXT_LAYUP_START, null]); }; }; }; if (((!(document.relaxMode)) && (!(countDownPaused)))){ countDownTicks--; _local2 = getTimeDisplayUpdate(); _local3 = int(_local2[0]); _local4 = int(_local2[1]); if (((!((_local3 == countDownMinutes))) || (!((_local4 == countDownSeconds))))){ countDownMinutes = _local3; countDownSeconds = _local4; App.toGui.push([App.GUI_UPDATE_TIME, _local2]); }; if ((((countDownTicks <= (App.TIME_WARNING_TICKS * 2))) && ((remainingTimeWarnings == 2)))){ if (countDownTicks == (App.TIME_WARNING_TICKS * 2)){ remainingTimeWarnings = 1; } else { remainingTimeWarnings = 0; }; App.toGui.push([App.GUI_SHOW_TIME_WARNING, null]); }; if ((((countDownTicks <= App.TIME_WARNING_TICKS)) && ((remainingTimeWarnings == 1)))){ remainingTimeWarnings = 0; App.toGui.push([App.GUI_SHOW_TIME_WARNING, null]); }; if (countDownTicks <= 0){ document.log(("TimeIsUp " + _arg1)); gameOver(App.TIME_RAN_OUT); }; }; if (((!((endTick == -1))) && ((_arg1 == endTick)))){ theEnd(); }; while (fromGui.length > 0) { _local5 = fromGui.shift(); _local6 = int(_local5[0]); _local7 = int(_local5[1]); _local8 = String(App.INPUT_STRINGS[_local6]); _local9 = ((_local8 + " ") + _local7); if (_local5.length > 2){ _local10 = int(_local5[2]); _local9 = (_local9 + (" " + _local10)); }; if (Document.isLogicInput(_local6)){ document.log((("[" + _local9) + "]")); }; switch (_local6){ case App.INPUT_BRICK_CLICKED: brickClicked(_local10); break; case App.INPUT_SHUFFLE_CLICKED: if (!((document.relaxMode) && ((relaxShuffles <= 0)))){ tryToShuffle(_arg1); } else { App.toGui.push([App.GUI_SET_GAME_RUNNING, true]); }; break; case App.SHUFFLE_ANIMATION_FINISHED: continueGame(); break; case App.LEVEL_ANIMATION_FINISHED: levelAnimationFinished(); break; case App.INPUT_EXIT: exit(); break; case App.THE_END: break; case App.INPUT_BRICK_ROLLED_OVER: brickRollOver(_local10); break; case App.INPUT_BRICK_ROLLED_OUT: brickRollOut(_local10); break; case App.INPUT_SHUFFLE_ROLL_OVER: shuffleRollOver(); break; case App.INPUT_SHUFFLE_ROLL_OUT: shuffleRollOut(); break; case App.INPUT_SHUFFLE_DOWN: shuffleDown(); break; default: document.log(("**** Error in gameCore.tick(). Invalid inputType: " + _local6)); }; if (_local7 != _arg1){ document.log(((("**** Warning, bad sync! tickToExecute " + _local7) + " currentTick ") + _arg1)); }; }; } private function brickClicked(_arg1:int):void{ if (!countDownPaused){ mahjongCore.brickClicked(_arg1); }; } private function tryToShuffle(_arg1:int):void{ var _local2:Array; var _local3:Array; var _local4:Array; var _local5:Array; var _local6:Array; var _local7:int; App.toGui.push([App.GUI_SHOW_SHUFFLE_RELEASED, null]); if (!countDownPaused){ pauseGame(); document.log(("Shuffle " + _arg1)); lastRemoveTick = -1; _local2 = mahjongCore.getAFreePair(); _local3 = null; _local4 = null; if (document.relaxMode){ relaxShuffles--; document.gui.timeDisplay.colon.text = ("" + relaxShuffles); if (_local2 != null){ totalScore = (totalScore + App.RELAX_SHUFFLE_PENALTY); if (totalScore < 0){ totalScore = 0; }; App.toGui.push([App.GUI_RELAX_SHUFFLE_PENALTY, [totalScore]]); }; }; if (((!(document.relaxMode)) && (!((_local2 == null))))){ _local7 = (App.PENALTY_PER_BRICK_SECONDS * 2); _local4 = [_local7]; document.log(("timePenaltySec " + _local7)); countDownTicks = (countDownTicks - (_local7 * App.TICKS_PER_SECOND)); if (countDownTicks < 0){ countDownTicks = 0; }; _local3 = getTimeDisplayUpdate(); }; _local5 = new Array(); _local6 = new Array(); if (countDownTicks > 0){ document.log("reShuffle"); mahjongCore.reShuffle(); _local5 = mahjongCore.getBricksInDrawOrder(); _local6 = mahjongCore.getBricksInShowOrder(); }; App.toGui.push([App.GUI_START_SHUFFLE_ANIMATION, [_local2, _local3, _local4, _local5, _local6]]); }; } private function continueGame():void{ if (!gameIsOver){ document.log(("continueGame " + currentTick)); if (stopShortGame){ document.log("short game end "); gameOver(App.SHORT_GAME_END); } else { if (((document.relaxMode) && ((relaxShuffles == 0)))){ document.log("relax shuffles game end "); gameOver(App.RELAX_0_SHUFFLES); } else { if (countDownPaused){ countDownPaused = false; App.toGui.push([App.GUI_SET_GAME_RUNNING, [true]]); }; }; }; }; } private function pauseGame():void{ document.log(("pauseGame " + currentTick)); App.toGui.push([App.GUI_SET_GAME_RUNNING, [false]]); countDownPaused = true; } public function levelAnimationFinished():void{ nextLayout(); if (shortMode){ stopShortGame = true; }; continueTick = (currentTick + App.NEXT_LAYUP_START_DELAY_GAME_TICKS); var _local1:Array = mahjongCore.getBricksInDrawOrder(); App.toGui.push([App.GUI_START_NEW_LAYUP_ANIMATION, [_local1]]); } public function exit():void{ document.log("user chose exit"); gameOver(App.USER_CHOSE_EXIT); } private function brickRollOver(_arg1:int):void{ if (((!(countDownPaused)) && (mahjongCore.brickIsFreeToLift(_arg1)))){ App.toGui.push([App.GUI_SHOW_ROLL_OVER, [_arg1]]); }; } private function brickRollOut(_arg1:int):void{ App.toGui.push([App.GUI_HIDE_ROLL_OVER, [_arg1]]); } private function shuffleRollOver():void{ if (((!(((document.relaxMode) && ((relaxShuffles <= 0))))) || (!(countDownPaused)))){ App.toGui.push([App.GUI_SHUFFLE_BTN_GLIDE_IN, null]); }; } private function shuffleRollOut():void{ App.toGui.push([App.GUI_SHUFFLE_BTN_GLIDE_OUT, null]); } private function shuffleDown():void{ if (((!(((document.relaxMode) && ((relaxShuffles <= 0))))) || (!(countDownPaused)))){ App.toGui.push([App.GUI_SHOW_SHUFFLE_PRESSED, null]); }; } public function getCountDownTicks():int{ return (countDownTicks); } public function addInput(_arg1:Array):void{ fromGui.push(_arg1); } public function layupFinished():void{ document.log(((((("layupFinished bonus score total " + totalBonus) + " ") + totalScore) + " ") + (totalBonus + totalScore))); pauseGame(); lastRemoveTick = -1; App.toGui.push([App.GUI_START_LEVEL_ANIMATION, null]); } public function gameOver(_arg1:int):void{ this.endReason = _arg1; if (!countDownPaused){ pauseGame(); }; gameIsOver = true; endTick = (currentTick + 1); App.toGui.push([App.GUI_SHOW_GAME_OVER, [totalBonus, totalScore, _arg1]]); document.addInputFromGameCore([App.THE_END]); } public function theEnd():void{ document.addInputFromGameCore([App.THE_END]); document.log("theEnd"); document.gameOver((totalScore + totalBonus), endReason); } public function changeSelectedBrick(_arg1:int, _arg2:int):void{ App.toGui.push([App.GUI_CHANGE_SELECTED_TILE, [_arg1, _arg2]]); } public function removePair(_arg1:int, _arg2:int):void{ var _local3:int = addPointsForRemovingPair(); App.toGui.push([App.GUI_REMOVE_PAIR, [_arg1, _arg2, _local3, (totalScore + totalBonus)]]); document.log(((((("remove " + _arg1) + " ") + _arg2) + " points ") + _local3)); } public function selectFromScratch():void{ App.toGui.push([App.GUI_SELECT_FROM_SCRATCH, null]); } public function notMatch():void{ App.toGui.push([App.GUI_NOT_MATCH, null]); } public function notFree():void{ App.toGui.push([App.GUI_NOT_FREE, null]); } public function addPointsForRemovingPair():int{ var _local3:int; var _local4:Number; var _local5:int; var _local1:int = App.REMOVE_PAIR_POINTS; this.totalScore = (this.totalScore + _local1); var _local2:int; if (((!(document.relaxMode)) && (!((lastRemoveTick == -1))))){ _local3 = (currentTick - lastRemoveTick); _local4 = (App.SECONDS_TO_DECREASE_BONUS_ONE_POINT * App.TICKS_PER_SECOND); _local5 = Math.floor((_local3 / _local4)); _local2 = (App.REMOVE_PAIR_SPEED_BONUS - _local5); _local2 = Math.max(0, _local2); totalBonus = (totalBonus + _local2); }; lastRemoveTick = currentTick; return ((_local1 + _local2)); } } }//package com.king.midasmahjong
Section 10
//GameTimer (com.king.midasmahjong.GameTimer) package com.king.midasmahjong { import flash.utils.*; public class GameTimer { private var lastTime:Number;// = -1 private var ticksPerSecond:Number; private var msPerTick:Number; private var unprocessedTime:Number;// = 0 public var alpha:Number;// = 0 public var timeScale:Number;// = 1 public var passedTime:Number;// = 0 public static var currentTime:Number = 0; public function GameTimer(_arg1:Number){ this.ticksPerSecond = _arg1; msPerTick = (1000 / _arg1); } public function advanceTime():int{ if (lastTime == -1){ lastTime = getTimer(); }; var _local1:int = getTimer(); passedTime = (_local1 - lastTime); passedTime = (passedTime * timeScale); currentTime = (currentTime + passedTime); lastTime = _local1; unprocessedTime = (unprocessedTime + passedTime); var _local2:int = int((unprocessedTime / msPerTick)); unprocessedTime = (unprocessedTime - (_local2 * msPerTick)); alpha = (unprocessedTime / msPerTick); return (_local2); } public function getCurrentTime():int{ return (Math.ceil(GameTimer.currentTime)); } } }//package com.king.midasmahjong
Section 11
//GlideInLabel (com.king.midasmahjong.GlideInLabel) package com.king.midasmahjong { import flash.display.*; public class GlideInLabel extends MovieClip implements Renderable { public var textMc:MovieClip; public var directionLeft:Boolean; private var rightX:int; private var leftX:int; private var glideDistance:int; private var margin:int;// = 7 private var xSpeed:Number;// = -5 private var xTemp:Number; private var startTick:Number;// = -1 private var initialized:Boolean;// = false public function GlideInLabel(){ glideDistance = textMc.textField.getLineMetrics(0).width; rightX = ((x - width) + glideDistance); x = rightX; leftX = ((rightX - glideDistance) - margin); } public function render(_arg1:Number, _arg2:int):Boolean{ var _local3:Boolean; xTemp = x; if (directionLeft){ xTemp = (xTemp + xSpeed); if (xTemp < leftX){ x = leftX; _local3 = true; } else { x = Math.floor(xTemp); }; } else { xTemp = (xTemp - xSpeed); if (xTemp > rightX){ x = rightX; visible = false; _local3 = true; } else { x = Math.floor(xTemp); }; }; return (_local3); } } }//package com.king.midasmahjong
Section 12
//Gui (com.king.midasmahjong.Gui) package com.king.midasmahjong { import flash.events.*; import flash.media.*; import flash.utils.*; import flash.display.*; import flash.text.*; public class Gui extends MovieClip { private const NR_OF_LEVELS:int = 5; public var pileOfBricks:MahjongTiles; public var top:MovieClip; public var timeDisplay:TimeDisplay; public var scoreDisplay:MovieClip; public var shuffle:ShuffleButton; public var timePopup:TextField; public var introSign:MovieClip; public var endSign:MovieClip; public var levelAnimation1:LevelAnimation; public var levelAnimation2:LevelAnimation; public var levelAnimation3:LevelAnimation; public var levelAnimation4:LevelAnimation; public var levelAnimation5:LevelAnimation; public var transitionGlow:RenderableMc; public var background0:MovieClip; public var background1:MovieClip; public var background2:MovieClip; public var background3:MovieClip; public var background4:MovieClip; public var exitBtn:MovieClip; public var buttonPanel:MovieClip; public var soundToggleBtn:MovieClip; public var musicToggleBtn:MovieClip; public var gameEnding:EndReasonSign; public var bigInvisibleButton:MovieClip; public var exitGlideInLabel:GlideInLabel; public var soundGlideInLabel:GlideInLabel; public var musicGlideInLabel:GlideInLabel; public var document:Document; private var actionHandler:TimedActionHandler; private var timeFunc:Function; private var objectsToRender:Array; private var introStart:Date; private var startDelayStart:Date; private var showOutroTimer:Timer; private var soundOn:Boolean;// = true private var musicOn:Boolean;// = true private var introSound:Sound; private var introSoundChannel:SoundChannel; private var introSoundTransform:SoundTransform; private var loopSound:Sound; private var loopSoundChannel:SoundChannel; private var loopSoundTransform:SoundTransform; private var outroSoundTransform:SoundTransform; private var outroSound:Sound; private var outroSoundChannel:SoundChannel; private var currentGuiLevel:int;// = 0 private var levelAnimations:Array; private var levelLoader:LevelLoader; private var notLoadedLevels:Array; private var allLevelImageNames:Array; private var bonus:int; private var score:int; private var endReasonTimeIsUp:String;// = "not set" private var endReasonNoMoves:String;// = "not set" private var endReasonOpenGame:String;// = "not set" private var endReasonRelaxNoShuffles:String;// = "not set" private var gameRunning:Boolean;// = false public function Gui(){ notLoadedLevels = [1, 2, 3, 4]; allLevelImageNames = [["bg1.jpg", "white1.png", "color1.png"], ["bg2.jpg", "white2.png", "color2.png"], ["bg3.jpg", "white3.png", "color3.png"], ["bg4.jpg", "white4.png", "color4.png"]]; super(); top.stop(); scoreDisplay.stop(); scoreDisplay.score.text = "0"; exitBtn.stop(); exitBtn.visible = false; exitGlideInLabel.visible = false; soundGlideInLabel.visible = false; musicGlideInLabel.visible = false; buttonPanel.visible = false; musicToggleBtn.stop(); soundToggleBtn.stop(); endSign.visible = false; background1.visible = false; background2.visible = false; background3.visible = false; background4.visible = false; levelAnimation2.visible = false; levelAnimation3.visible = false; levelAnimation4.visible = false; levelAnimation5.visible = false; transitionGlow.visible = false; gameEnding.visible = false; bigInvisibleButton.visible = false; introSign.startBtnTf.mouseEnabled = false; objectsToRender = new Array(); pileOfBricks.gui = this; pileOfBricks.fixLayers(); pileOfBricks.createBricks(); levelAnimations = [levelAnimation1, levelAnimation2, levelAnimation3, levelAnimation4, levelAnimation5]; shuffle.addEventListener(MouseEvent.MOUSE_DOWN, shuffleMouseDown); shuffle.addEventListener(MouseEvent.CLICK, shuffleClicked); shuffle.addEventListener(MouseEvent.ROLL_OVER, shuffleRollOver); shuffle.addEventListener(MouseEvent.ROLL_OUT, shuffleRollOut); introSign.startButton.addEventListener(MouseEvent.CLICK, startDelay); exitBtn.addEventListener(MouseEvent.CLICK, exitClicked); exitBtn.addEventListener(MouseEvent.ROLL_OVER, showExitLabel); exitBtn.addEventListener(MouseEvent.ROLL_OUT, hideExitLabel); soundToggleBtn.addEventListener(MouseEvent.CLICK, toggleSound); soundToggleBtn.addEventListener(MouseEvent.ROLL_OVER, showSoundLabel); soundToggleBtn.addEventListener(MouseEvent.ROLL_OUT, hideSoundLabel); musicToggleBtn.addEventListener(MouseEvent.CLICK, toggleMusic); musicToggleBtn.addEventListener(MouseEvent.ROLL_OVER, showMusicLabel); musicToggleBtn.addEventListener(MouseEvent.ROLL_OUT, hideMusicLabel); introStart = new Date(); addEventListener("enterFrame", countDownIntro); var _local1:Number = App.VOLUME_INTRO; if (((!(soundOn)) || (!(musicOn)))){ _local1 = 0; }; introSoundTransform = new SoundTransform(_local1); introSound = new IntroSound(); introSoundChannel = introSound.play(0, 0, introSoundTransform); } public function newSetup(_arg1:Array):void{ pileOfBricks.newSetup(_arg1); var _local2:* = new Timer(App.LOOP_SOUND_DELAY, 1); _local2.addEventListener("timer", startLoopSound); _local2.start(); } public function showTimePenaltyGlow():void{ addRenderable(timeDisplay); } public function showTimePenaltyPopup(_arg1:Array):void{ timePopup.text = ("" + _arg1); } public function hideTimePenaltyPopup():void{ timePopup.text = ""; } public function levelAnimationIsFinished():void{ document.addGuiInput([App.LEVEL_ANIMATION_FINISHED]); } public function setTextProperties(_arg1:XML):void{ var _local2:String; var _local3:String; var _local4:String; var _local5:String; var _local6:int; for (_local2 in _arg1.text) { _local3 = _arg1.text[_local2].@id; _local4 = _arg1.text[_local2]; _local4 = _local4.replace(/ö/g, "ô"); switch (_local3){ case "intro_instruction": introSign.introTf.text = _local4; break; case "intro_instruction_relax": break; case "intro_start": introSign.startBtnTf.text = _local4; break; case "intro_countdown_text_first": introSign.countDownText1.text = _local4; break; case "intro_countdown_text_last": introSign.countDownText2.text = _local4; break; case "outro_game_over": endSign.gameOverTextFields.gameOverLblMc.gameOverLbl.text = _local4; break; case "outro_score": endSign.gameOverTextFields.gameOverSmallerTexts.scoreLbl.text = _local4; break; case "outro_time_bonus": endSign.gameOverTextFields.gameOverSmallerTexts.timeBonusLbl.text = _local4; break; case "outro_total_score": endSign.gameOverTextFields.gameOverSmallerTexts.totalScoreLbl.text = _local4; break; case "end_reason_time": endReasonTimeIsUp = _local4; break; case "end_reason_no_move": endReasonNoMoves = _local4; break; case "end_reason_relax_no_shuffles": endReasonRelaxNoShuffles = _local4; break; case "end_reason_open_game": endReasonOpenGame = _local4; break; case "button_exit": exitGlideInLabel.textMc.textField.text = _local4; break; case "button_sound": soundGlideInLabel.textMc.textField.text = _local4; break; case "button_music": musicGlideInLabel.textMc.textField.text = _local4; break; case "button_shuffle": _local5 = ""; _local6 = 0; while (_local6 < (_local4.length - 1)) { _local5 = (_local5 + (_local4.charAt(_local6) + "\n")); _local6++; }; _local5 = (_local5 + _local4.charAt(_local6)); shuffle.textField.text = _local5; break; case "lamp_time": timeDisplay.label.text = _local4; break; case "lamp_shuffles": break; case "lamp_score": scoreDisplay.label.text = _local4; break; default: trace(("Error in Gui.setTextProperties, id with no match: " + _local3)); }; }; } public function changeBackground():void{ var _local3:SoundTransform; var _local4:Sound; var _local5:SoundChannel; if (soundOn){ _local3 = new SoundTransform(App.VOLUME_LAYUP_ANIMATION_BURNOUT); _local4 = new LayupCleared(); _local5 = _local4.play(0, 0, _local3); }; currentGuiLevel++; if (currentGuiLevel >= NR_OF_LEVELS){ currentGuiLevel = 0; }; background0.visible = false; background1.visible = false; background2.visible = false; background3.visible = false; background4.visible = false; var _local1:MovieClip = this[("background" + currentGuiLevel)]; _local1.visible = true; top.gotoAndStop((currentGuiLevel + 1)); scoreDisplay.gotoAndStop((currentGuiLevel + 1)); timeDisplay.gotoAndStop((currentGuiLevel + 1)); var _local2:LevelAnimation = LevelAnimation(levelAnimations[currentGuiLevel]); _local2.visible = true; } public function countDownIntro(_arg1:Event):void{ var _local2:Date; var _local3:int; var _local4:int; var _local5:int; var _local6:Date; var _local7:int; var _local8:int; if (startDelayStart == null){ _local2 = new Date(); _local3 = (_local2.time - introStart.time); _local4 = (App.INTRO_MILLISEC - _local3); _local5 = (_local4 / 1000); introSign.countDownDigitTF.text = ("" + _local5); if (_local4 <= 0){ startDelay(_arg1); }; } else { _local6 = new Date(); _local7 = (_local6.time - startDelayStart.time); _local8 = (App.START_DELAY_MILLISEC - _local7); if (_local8 < 0){ startGame(_arg1); }; }; } public function startDelay(_arg1:Event):void{ var _local2:SoundFader; var _local3:SoundTransform; var _local4:Sound; var _local5:SoundChannel; startDelayStart = new Date(); if (((soundOn) && (musicOn))){ _local2 = new SoundFader(introSoundChannel, 300, this); } else { introSoundChannel.stop(); }; if (soundOn){ _local3 = new SoundTransform(App.VOLUME_INTRO); _local4 = new GongSnd(); _local5 = _local4.play(0, 0, _local3); }; introSign.startButton.removeEventListener(MouseEvent.CLICK, startGame); } public function startGame(_arg1:Event):void{ introSign.visible = false; exitBtn.visible = true; buttonPanel.visible = true; removeEventListener("enterFrame", countDownIntro); document.startGame(); if (!document.relaxMode){ addRenderable(timeDisplay); }; } public function stopMusic():void{ if (loopSoundChannel != null){ loopSoundChannel.soundTransform = new SoundTransform(0); }; if (introSoundChannel != null){ introSoundChannel.soundTransform = new SoundTransform(0); }; if (outroSoundChannel != null){ outroSoundChannel.soundTransform = new SoundTransform(0); }; } public function startMusic():void{ if (((soundOn) && (musicOn))){ if (loopSoundChannel != null){ loopSoundChannel.soundTransform = new SoundTransform(App.VOLUME_LOOP); }; if (introSoundChannel != null){ introSoundChannel.soundTransform = new SoundTransform(App.VOLUME_LOOP); }; if (outroSoundChannel != null){ outroSoundChannel.soundTransform = new SoundTransform(App.VOLUME_LOOP); }; }; } public function getPanning():Number{ var _local1:int = (App.STAGE_WIDTH / 2); var _local2:Number = (mouseX - _local1); var _local3:* = App.STEREO_INTENSITY; return (((_local2 / _local1) * _local3)); } public function startLoopSound(_arg1:Event=null):void{ introSound = null; var _local2:Number = App.VOLUME_LOOP; if (((!(soundOn)) || (!(musicOn)))){ _local2 = 0; }; loopSoundTransform = new SoundTransform(_local2); loopSound = new LoopSnd(); loopSoundChannel = loopSound.play(0, int.MAX_VALUE, loopSoundTransform); } public function soundFaderCompleted(_arg1:SoundFader):void{ if (_arg1.soundChannel == loopSoundChannel){ loopSound = null; loopSoundChannel = null; }; } private function shuffleMouseDown(_arg1:MouseEvent):void{ if (gameRunning){ document.addGuiInput([App.INPUT_SHUFFLE_DOWN]); }; } private function shuffleClicked(_arg1:MouseEvent):void{ if (gameRunning){ setGameRunning(false); document.addGuiInput([App.INPUT_SHUFFLE_CLICKED]); }; } private function shuffleRollOver(_arg1:MouseEvent):void{ if (gameRunning){ document.addGuiInput([App.INPUT_SHUFFLE_ROLL_OVER]); }; } private function shuffleRollOut(_arg1:MouseEvent):void{ document.addGuiInput([App.INPUT_SHUFFLE_ROLL_OUT]); } private function exitClicked(_arg1:MouseEvent):void{ exitBtn.visible = false; buttonPanel.visible = false; document.addGuiInput([App.INPUT_EXIT]); } private function showExitLabel(_arg1:MouseEvent):void{ exitGlideInLabel.visible = true; exitGlideInLabel.directionLeft = true; addRenderable(exitGlideInLabel); } private function hideExitLabel(_arg1:MouseEvent):void{ exitGlideInLabel.directionLeft = false; addRenderable(exitGlideInLabel); } private function showSoundLabel(_arg1:MouseEvent):void{ soundGlideInLabel.visible = true; soundGlideInLabel.directionLeft = true; addRenderable(soundGlideInLabel); } private function hideSoundLabel(_arg1:MouseEvent):void{ soundGlideInLabel.directionLeft = false; addRenderable(soundGlideInLabel); } private function showMusicLabel(_arg1:MouseEvent):void{ musicGlideInLabel.visible = true; musicGlideInLabel.directionLeft = true; addRenderable(musicGlideInLabel); } private function hideMusicLabel(_arg1:MouseEvent):void{ musicGlideInLabel.directionLeft = false; addRenderable(musicGlideInLabel); } private function toggleSound(_arg1:MouseEvent):void{ soundOn = !(soundOn); if (soundOn){ soundToggleBtn.gotoAndStop("normal"); startMusic(); } else { soundToggleBtn.gotoAndStop("off"); stopMusic(); }; } private function toggleMusic(_arg1:MouseEvent):void{ musicOn = !(musicOn); if (musicOn){ musicToggleBtn.gotoAndStop("normal"); startMusic(); } else { musicToggleBtn.gotoAndStop("off"); stopMusic(); }; } public function removeRenderable(_arg1:Renderable):void{ var _local2:int = objectsToRender.indexOf(_arg1, 0); objectsToRender.splice(_local2, 1); } public function addRenderable(_arg1:Renderable):void{ var _local2:int = objectsToRender.indexOf(_arg1, 0); if (_local2 == -1){ objectsToRender.push(_arg1); }; } public function setTimeFunc(_arg1:Function):void{ this.timeFunc = _arg1; actionHandler = new TimedActionHandler(_arg1); } public function render(_arg1:Number, _arg2:int):void{ var _local4:Array; var _local5:int; var _local6:Array; var _local7:Renderable; var _local8:*; actionHandler.update(timeFunc()); while (App.toGui.length > 0) { _local4 = App.toGui.shift(); _local5 = int(_local4[0]); _local6 = _local4[1]; switch (_local5){ case App.GUI_CHANGE_SELECTED_TILE: changeSelectedBrick(_local6); break; case App.GUI_REMOVE_PAIR: removePair(_local6); break; case App.GUI_HIDE_ROLL_OVER: hideRollOver(_local6); break; case App.GUI_SHOW_ROLL_OVER: showRollOver(_local6); break; case App.GUI_RELAX_SHUFFLE_PENALTY: relaxShufflePenalty(_local6); break; case App.GUI_UPDATE_TIME: timeDisplay.update(_local6); break; case App.GUI_SHOW_TIME_WARNING: showTimeWarning(); break; case App.GUI_SHOW_GAME_OVER: showGameOver(_local6); break; case App.GUI_NEXT_LAYUP_START: nextLayupStart(); break; case App.GUI_SET_GAME_RUNNING: setGameRunning(Boolean(_local6[0])); break; case App.GUI_SHOW_SHUFFLE_PRESSED: showShufflePressed(); break; case App.GUI_SHOW_SHUFFLE_RELEASED: showShuffleReleased(); break; case App.GUI_SHUFFLE_BTN_GLIDE_IN: shuffleGlideIn(); break; case App.GUI_SHUFFLE_BTN_GLIDE_OUT: shuffleGlideOut(); break; case App.GUI_DISABLE_SHUFFLE: disableShuffle(); break; case App.GUI_START_LEVEL_ANIMATION: startLevelAnimation(); break; case App.GUI_START_NEW_LAYUP_ANIMATION: newLayup(_local6); break; case App.GUI_START_SHUFFLE_ANIMATION: startShuffleAnimation(_local6); break; case App.GUI_NOT_MATCH: notMatch(); break; case App.GUI_NOT_FREE: notFree(); break; case App.GUI_SELECT_FROM_SCRATCH: selectFromScratch(); break; default: trace(("Error in Gui.render: invalid type: " + _local5)); }; }; var _local3:int = (objectsToRender.length - 1); while (_local3 >= 0) { _local7 = Renderable(objectsToRender[_local3]); _local8 = _local7.render(_arg1, _arg2); if (_local8){ removeRenderable(_local7); if ((_local7 is ScorePopup)){ removeChild(ScorePopup(_local7)); }; }; _local3--; }; } public function changeSelectedBrick(_arg1:Array):void{ pileOfBricks.changeSelectedBrick(_arg1); } public function removePair(_arg1:Array):void{ var _local5:SoundTransform; var _local6:Sound; var _local7:SoundChannel; var _local2:int = int(_arg1.pop()); scoreDisplay.score.text = ("" + _local2); var _local3:int = int(_arg1.pop()); var _local4:ScorePopup = new ScorePopup(); _local4.mouseEnabled = false; _local4.textField.text = ("" + _local3); _local4.x = mouseX; _local4.y = mouseY; addChild(_local4); addRenderable(_local4); pileOfBricks.removePair(_arg1); if (soundOn){ _local5 = new SoundTransform(App.VOLUME_REMOVE_PAIR, getPanning()); _local6 = new RemovePair(); _local7 = _local6.play(0, 0, _local5); }; } public function hideRollOver(_arg1:Array):void{ var _local2:int = int(_arg1[0]); pileOfBricks.hideRollOver(_local2); } public function showRollOver(_arg1:Array):void{ var _local2:int = int(_arg1[0]); pileOfBricks.showRollOver(_local2); } public function relaxShufflePenalty(_arg1:Array):void{ var _local2:int = int(_arg1.pop()); scoreDisplay.score.text = ("" + _local2); } public function showTimeWarning():void{ var _local1:SoundTransform; var _local2:Sound; var _local3:SoundChannel; if (soundOn){ _local1 = new SoundTransform(App.VOLUME_TIME_WARNING); _local2 = new TimeWarningSnd(); _local3 = _local2.play(0, 0, _local1); }; timeDisplay.glowRepeats = int.MAX_VALUE; addRenderable(timeDisplay); } public function showGameOver(_arg1:Array):void{ var _local3:SoundFader; var _local4:SoundTransform; var _local5:Sound; var _local6:SoundChannel; exitBtn.visible = false; bonus = int(_arg1[0]); score = int(_arg1[1]); var _local2:int = int(_arg1[2]); if (loopSoundChannel != null){ if (((soundOn) && (musicOn))){ _local3 = new SoundFader(loopSoundChannel, App.LOOP_SOUND_FADOUT, this); loopSound = null; } else { loopSoundChannel.stop(); }; }; if (_local2 == App.USER_CHOSE_EXIT){ showOutro(null); } else { if (soundOn){ _local4 = new SoundTransform(App.VOLUME_GAME_OVER); _local5 = new GameOverSnd(); _local6 = _local5.play(0, 0, _local4); _local6.addEventListener(Event.SOUND_COMPLETE, startOutroSound); }; if (_local2 == App.NO_MORE_MOVES){ gameEnding.textMc.textField.text = endReasonNoMoves; gameEnding.openGameTextMc.visible = false; } else { if (_local2 == App.TIME_RAN_OUT){ gameEnding.textMc.textField.text = endReasonTimeIsUp; gameEnding.openGameTextMc.visible = false; } else { if (_local2 == App.SHORT_GAME_END){ gameEnding.openGameTextMc.textField.text = endReasonOpenGame; gameEnding.textMc.visible = false; } else { if (_local2 == App.RELAX_0_SHUFFLES){ gameEnding.textMc.textField.text = endReasonRelaxNoShuffles; gameEnding.openGameTextMc.visible = false; }; }; }; }; gameEnding.visible = true; addRenderable(gameEnding); showOutroTimer = new Timer(App.END_REASON_SHOW_MILLISEC, 1); showOutroTimer.addEventListener("timerComplete", showOutro); showOutroTimer.start(); timeDisplay.glowRepeats = 0; }; } public function startOutroSound(_arg1:Event):void{ var _local2:Number; if (outroSoundChannel == null){ _local2 = App.VOLUME_OUTRO; if (((!(soundOn)) || (!(musicOn)))){ _local2 = 0; }; outroSoundTransform = new SoundTransform(_local2); outroSound = new OutroSnd(); outroSoundChannel = outroSound.play(0, 0, outroSoundTransform); }; } public function showOutro(_arg1:Event):void{ if (showOutroTimer != null){ showOutroTimer.stop(); }; var _local2:Timer = new Timer(App.MINIMAL_GAME_QUIT_DELAY, 1); _local2.addEventListener("timerComplete", activateQuitButton); _local2.start(); startOutroSound(null); endSign.visible = true; buttonPanel.visible = false; endSign.gameOverTextFields.gameOverSmallerTexts.scoreDigitTf.text = ("" + score); endSign.gameOverTextFields.gameOverSmallerTexts.timeBonusDigitTf.text = ("" + bonus); endSign.gameOverTextFields.gameOverSmallerTexts.totalScoreDigitTf.text = ("" + (score + bonus)); endSign.addEventListener(MouseEvent.CLICK, document.gameQuit); if (document.relaxMode){ endSign.gameOverTextFields.gameOverSmallerTexts.timeBonusDigitTf.visible = false; endSign.gameOverTextFields.gameOverSmallerTexts.totalScoreDigitTf.visible = false; endSign.gameOverTextFields.gameOverSmallerTexts.timeBonusLbl.visible = false; endSign.gameOverTextFields.gameOverSmallerTexts.totalScoreLbl.visible = false; endSign.gameOverTextFields.gameOverLblMc.gameOverLbl.y = (endSign.gameOverTextFields.gameOverLblMc.gameOverLbl.y + 70); endSign.gameOverTextFields.gameOverSmallerTexts.scoreLbl.y = (endSign.gameOverTextFields.gameOverSmallerTexts.scoreLbl.y + 120); endSign.gameOverTextFields.gameOverSmallerTexts.scoreDigitTf.y = (endSign.gameOverTextFields.gameOverSmallerTexts.scoreDigitTf.y + 120); }; } public function activateQuitButton(_arg1:Event):void{ bigInvisibleButton.visible = true; bigInvisibleButton.addEventListener(MouseEvent.CLICK, document.gameQuit); } public function nextLayupStart():void{ if (!document.relaxMode){ timeDisplay.glowRepeats = 1; addRenderable(timeDisplay); }; startLoopSound(); } public function setGameRunning(_arg1:Boolean):void{ gameRunning = _arg1; } public function showShufflePressed():void{ shuffle.gotoAndStop(2); } public function showShuffleReleased():void{ shuffle.gotoAndStop(1); } public function shuffleGlideIn():void{ shuffle.rolledOver = true; addRenderable(shuffle); } public function shuffleGlideOut():void{ shuffle.rolledOver = false; shuffle.gotoAndStop(1); addRenderable(shuffle); } public function disableShuffle():void{ shuffle.removeEventListener(MouseEvent.MOUSE_DOWN, shuffleMouseDown); shuffle.removeEventListener(MouseEvent.CLICK, shuffleClicked); shuffle.removeEventListener(MouseEvent.ROLL_OVER, shuffleRollOver); shuffle.removeEventListener(MouseEvent.ROLL_OUT, shuffleRollOut); shuffleGlideOut(); } public function startLevelAnimation():void{ var _local2:SoundFader; var _local3:SoundTransform; var _local4:Sound; var _local5:SoundChannel; var _local1:LevelAnimation = LevelAnimation(levelAnimations[currentGuiLevel]); _local1.initialize(this); addRenderable(_local1); if (((soundOn) && (musicOn))){ _local2 = new SoundFader(loopSoundChannel, App.LOOP_SOUND_FADOUT, this); }; if (soundOn){ _local3 = new SoundTransform(App.VOLUME_LAYUP_CLEARED); _local4 = new LayupAnimationBurnoutSnd(); _local5 = _local4.play(0, 0, _local3); }; transitionGlow.gotoAndStop(0); transitionGlow.visible = true; transitionGlow.alpha = 1; transitionGlow.initialize(); addRenderable(transitionGlow); } public function newLayup(_arg1:Array):void{ var _local2:Array = _arg1[0]; pileOfBricks.shuffle(_local2); } public function startShuffleAnimation(_arg1:Array):void{ var _local10:TimedAction; var _local11:int; var _local12:SoundTransform; var _local13:Sound; var _local14:SoundChannel; var _local15:SoundTransform; var _local16:Sound; var _local17:SoundChannel; var _local18:int; var _local19:int; var _local20:int; var _local21:int; var _local2:Array = _arg1[0]; var _local3:Array = _arg1[1]; var _local4:Array = _arg1[2]; var _local5:Array = _arg1[3]; var _local6:Array = _arg1[4]; var _local7:int = timeFunc(); var _local8:Array = new Array(); var _local9:int; if (_local2 != null){ if (soundOn){ _local12 = new SoundTransform(App.VOLUME_SHUFFLE_LOOSE_TIME); _local13 = new ShuffleLooseTime(); _local14 = _local13.play(0, 0, _local12); }; _local10 = new TimedAction(_local7, _local9, pileOfBricks.showPossibleMove, _local2, 1); _local8.push(_local10); if (!document.relaxMode){ _local10 = new TimedAction(_local7, _local9, showTimePenaltyGlow, null, 1); _local8.push(_local10); }; _local11 = Math.floor((App.SHOW_A_POSSIBLE_MOVE_MS / 3)); _local9 = (_local9 + _local11); if (!document.relaxMode){ _local10 = new TimedAction(_local7, _local9, timeDisplay.timePenaltyUpdate, _local3, 1); _local8.push(_local10); }; _local9 = (_local9 + _local11); if (!document.relaxMode){ _local10 = new TimedAction(_local7, _local9, timeDisplay.timePenaltyHide, null, 1); _local8.push(_local10); }; _local9 = (_local9 + _local11); _local10 = new TimedAction(_local7, _local9, pileOfBricks.hidePossibleMove, _local2, 1); _local8.push(_local10); } else { if (soundOn){ _local15 = new SoundTransform(App.VOLUME_SHUFFLE); _local16 = new ShuffleSnd(); _local17 = _local16.play(0, 0, _local15); }; }; if (_local5.length > 0){ _local10 = new TimedAction(_local7, _local9, pileOfBricks.shuffle, _local5, 1); _local8.push(_local10); _local18 = _local6.length; _local19 = App.REDRAW_A_BRICK_MS; _local20 = 0; while (_local20 < _local18) { _local9 = (_local9 + _local19); _local21 = Number(_local6[_local20][0]); _local10 = new TimedAction(_local7, _local9, pileOfBricks.showBrick, [_local21], 1); _local8.push(_local10); _local20++; }; }; _local10 = new TimedAction(_local7, _local9, document.addGuiInput, [App.SHUFFLE_ANIMATION_FINISHED], 1); _local8.push(_local10); actionHandler.add(_local8); } public function notMatch():void{ var _local1:SoundTransform; var _local2:Sound; var _local3:SoundChannel; if (soundOn){ _local1 = new SoundTransform(App.VOLUME_NOT_MATCH, getPanning()); _local2 = new NotMatch(); _local3 = _local2.play(0, 0, _local1); }; } public function notFree():void{ var _local1:SoundTransform; var _local2:Sound; var _local3:SoundChannel; if (soundOn){ _local1 = new SoundTransform(App.VOLUME_NOT_FREE, getPanning()); _local2 = new NotFree(); _local3 = _local2.play(0, 0, _local1); }; } public function selectFromScratch():void{ var _local1:SoundTransform; var _local2:Sound; var _local3:SoundChannel; if (soundOn){ _local1 = new SoundTransform(App.VOLUME_CLICK, getPanning()); _local2 = new ClickTile(); _local3 = _local2.play(0, 0, _local1); }; } public function getGameRunning():Boolean{ return (gameRunning); } } }//package com.king.midasmahjong
Section 13
//Integer64 (com.king.midasmahjong.Integer64) package com.king.midasmahjong { import com.king.midasmahjong.*; class Integer64 { private var p:Array; private var r:Array; private var s:Array; function Integer64(_arg1){ r = [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]; p = [0, 0, 0, 0, 0]; s = [0, 0, 0]; if (_arg1){ merge(_arg1); }; } public function init(_arg1:Integer64):void{ var _local2:* = 0; while (_local2 < p.length) { p[_local2] = _arg1.p[_local2]; _local2++; }; } public function init32(_arg1:Number):void{ p[0] = (_arg1 & 32767); _arg1 = (_arg1 >>> 15); p[1] = (_arg1 & 32767); _arg1 = (_arg1 >>> 15); p[2] = (_arg1 & 3); p[3] = 0; p[4] = 0; } public function get lsb():Number{ return (((p[0] | (p[1] << 15)) | ((p[2] & 3) << 30))); } public function get msb():Number{ return (((((p[2] >> 2) | ((p[3] << 15) >> 2)) | ((p[4] << (15 * 2)) >> 2)) & 2147483647)); } public function binaryShiftLeft(_arg1:Number):void{ var _local2:* = 0; while (_local2 < _arg1) { shl(); _local2++; }; } public function binaryShiftRight(_arg1:Number):void{ var _local5:*; var _local6:*; var _local2:* = ((_arg1 / 15) >> 0); var _local3:* = (_arg1 - (_local2 * 15)); var _local4:* = (p.length - 1); while (_local4 > 0) { _local5 = 0; while (_local5 < _local2) { p[_local5] = p[(_local5 + 1)]; _local5++; }; var _temp1 = _local4; _local4 = (_local4 - 1); var _local7 = _temp1; p[_local7] = 0; }; if (_local3 > 0){ _local6 = 0; while (_local6 < _local3) { shr(); _local6++; }; }; } public function binaryNot(_arg1:Integer64):void{ p[0] = (p[0] ^ _arg1.p[0]); p[1] = (p[1] ^ _arg1.p[1]); p[2] = (p[2] ^ _arg1.p[2]); p[3] = (p[3] ^ _arg1.p[3]); p[4] = (p[4] ^ _arg1.p[4]); } public function add64(_arg1:Integer64):void{ var _local2:* = 0; var _local3:* = 1; var _local4:* = 0; while ((((_local3 < p.length)) && (!((_arg1.p[_local4] == 0))))) { _local3++; }; _local4 = 0; while (_local4 < _local3) { _local2 = (_local2 + (p[_local4] + _arg1.p[_local4])); p[_local4] = (_local2 & 32767); _local2 = (_local2 >> 15); _local4++; }; } public function add32(_arg1:Number):void{ var _local2:* = 0; var _local3:* = (_arg1 & 32767); _arg1 = (_arg1 >> 15); var _local4:* = (_arg1 & 32767); _arg1 = (_arg1 >> 15); var _local5:* = (_arg1 & 3); _local2 = (_local2 + (p[0] + _local3)); p[0] = (_local2 & 32767); _local2 = (_local2 >> 15); _local2 = (_local2 + (p[1] + _local4)); p[1] = (_local2 & 32767); _local2 = (_local2 >> 15); _local2 = (_local2 + (p[2] + _local5)); p[2] = (_local2 & 32767); } public function mulu32(_arg1:Number):void{ var _local4:*; var _local2:* = 0; s[0] = (_arg1 & 32767); _arg1 = (_arg1 >>> 15); s[1] = (_arg1 & 32767); _arg1 = (_arg1 >>> 15); s[2] = (_arg1 & 3); var _local3:* = 0; while (_local3 < 3) { _local4 = s[_local3]; _local2 = (_local4 * p[0]); r[_local3][0] = (_local2 & 32767); _local2 = (_local2 >> 15); _local2 = (_local2 + (_local4 * p[1])); r[_local3][1] = (_local2 & 32767); _local2 = (_local2 >> 15); _local2 = (_local2 + (_local4 * p[2])); r[_local3][2] = (_local2 & 3); _local3++; }; _local2 = r[0][0]; p[0] = (_local2 & 32767); _local2 = (_local2 >> 15); _local2 = (_local2 + (r[0][1] + r[1][0])); p[1] = (_local2 & 32767); _local2 = (_local2 >> 15); _local2 = (_local2 + ((r[0][2] + r[1][1]) + r[2][0])); p[2] = (_local2 & 3); p[3] = 0; p[4] = 0; } public function mul64(_arg1:Integer64):void{ var _local4:*; var _local2:* = 0; var _local3:* = 0; while (_local3 < 5) { _local4 = _arg1.p[_local3]; _local2 = (_local4 * p[0]); r[_local3][0] = (_local2 & 32767); _local2 = (_local2 >> 15); _local2 = (_local2 + (_local4 * p[1])); r[_local3][1] = (_local2 & 32767); _local2 = (_local2 >> 15); _local2 = (_local2 + (_local4 * p[2])); r[_local3][2] = (_local2 & 32767); _local2 = (_local2 >> 15); _local2 = (_local2 + (_local4 * p[3])); r[_local3][3] = (_local2 & 32767); _local2 = (_local2 >> 15); _local2 = (_local2 + (_local4 * p[4])); r[_local3][4] = (_local2 & 32767); _local3++; }; _local2 = r[0][0]; p[0] = (_local2 & 32767); _local2 = (_local2 >> 15); _local2 = (_local2 + (r[0][1] + r[1][0])); p[1] = (_local2 & 32767); _local2 = (_local2 >> 15); _local2 = (_local2 + ((r[0][2] + r[1][1]) + r[2][0])); p[2] = (_local2 & 32767); _local2 = (_local2 >> 15); _local2 = (_local2 + (((r[0][3] + r[1][2]) + r[2][1]) + r[3][0])); p[3] = (_local2 & 32767); _local2 = (_local2 >> 15); _local2 = (_local2 + ((((r[0][4] + r[1][3]) + r[2][2]) + r[3][1]) + r[4][0])); p[4] = (_local2 & 7); } public function mul32(_arg1:Number):void{ mul64(new Integer64(_arg1)); } private function merge(_arg1:Number):Number{ var _local2:* = 0; while (_local2 < 3) { p[_local2] = (p[_local2] + (_arg1 & 32767)); _arg1 = (_arg1 >>> 15); _local2++; }; return (_arg1); } private function shl():void{ var _local1:* = 0; var _local2:* = 0; var _local3:* = 0; var _local4:* = p.length; while (_local3 < _local4) { _local1 = ((p[_local3] & 0x4000) >> 14); p[_local3] = (p[_local3] << 1); p[_local3] = ((p[_local3] | _local2) & 32767); _local3++; _local2 = _local1; }; } private function shr():void{ var _local1:* = 0; var _local2:* = 0; var _local3:* = (p.length - 1); while (_local3 >= 0) { _local1 = ((p[_local3] & 1) << 14); p[_local3] = (p[_local3] >> 1); p[_local3] = ((p[_local3] | _local2) & 32767); _local3--; _local2 = _local1; }; } } }//package com.king.midasmahjong
Section 14
//LevelAnimation (com.king.midasmahjong.LevelAnimation) package com.king.midasmahjong { import flash.display.*; public class LevelAnimation extends MovieClip implements Renderable { public var glow:MovieClip; public var outline:MovieClip; public var color:MovieClip; private var colorAlphaStart:int;// = 22 private var colorAlphaEnd:int;// = 60 private var colorFadeInSpeed:Number; private var glowStart:int;// = 60 private var glowEnd:int;// = 95 private var glowFadeInSpeed:Number; private var gui:Gui; private var backgroundChangeIsPassed:Boolean;// = false private var backgroundChange:int;// = 105 private var startTick:Number; public function LevelAnimation(){ colorFadeInSpeed = (1 / (colorAlphaEnd - colorAlphaStart)); color.visible = false; glowFadeInSpeed = (1 / (glowEnd - glowStart)); glow.visible = false; glow.blendMode = BlendMode.ADD; } public function initialize(_arg1:Gui){ this.gui = _arg1; this.startTick = -1; color.alpha = 0; glow.alpha = 0; color.visible = true; glow.visible = true; visible = true; backgroundChangeIsPassed = false; } public function render(_arg1:Number, _arg2:int):Boolean{ if (startTick == -1){ startTick = (_arg2 + _arg1); }; var _local3:Number = ((_arg2 + _arg1) - startTick); var _local4:int = (_local3 * App.MOVIE_CLIP_FRAMES_PER_GAME_TICK); var _local5:Boolean; if (((!(backgroundChangeIsPassed)) && ((_local4 >= backgroundChange)))){ _local4 = backgroundChange; backgroundChangeIsPassed = true; }; if (_local4 > backgroundChange){ visible = false; color.alpha = 0; glow.alpha = 0; gui.changeBackground(); backgroundChangeIsPassed = false; gui.levelAnimationIsFinished(); _local5 = true; }; animateGlow(_local4); animateColor(_local4); return (_local5); } public function animateGlow(_arg1:int):void{ var _local4:Number; var _local2:int = (_arg1 - glowStart); var _local3:int = (glowEnd - glowStart); if ((((_local2 > 0)) && ((_local2 < (_local3 + 1))))){ _local4 = (_local2 * glowFadeInSpeed); glow.alpha = Math.min(_local4, 1); }; } public function animateColor(_arg1:int):void{ var _local4:Number; var _local2:int = (_arg1 - colorAlphaStart); var _local3:int = (colorAlphaEnd - colorAlphaStart); if ((((_local2 > 0)) && ((_local2 < (_local3 + 1))))){ _local4 = (_local2 * colorFadeInSpeed); color.alpha = Math.min(_local4, 1); }; } } }//package com.king.midasmahjong
Section 15
//LevelLoader (com.king.midasmahjong.LevelLoader) package com.king.midasmahjong { import flash.events.*; import flash.utils.*; import flash.display.*; public class LevelLoader { private var path:String; private var imageNames:Array; private var clips:Array; private var completed:Boolean;// = false private var retryLoader:RetryLoader; private var loadTimer:Timer; private static var TIMER_MILLISEC:int = 1000; public function LevelLoader(_arg1:String, _arg2:Array, _arg3:Array):void{ this.path = _arg1; this.imageNames = _arg2; this.clips = _arg3; if ((((_arg2.length > 0)) && ((_arg2.length == _arg3.length)))){ loadTimer = new Timer(200, int.MAX_VALUE); loadTimer.addEventListener("timer", loadHandler); loadNext(); } else { trace("Error in LevelLoader"); }; } private function loadNext():void{ var _local1:String = String(imageNames.shift()); if (((!((_local1 == null))) && (!((_local1 == "undefined"))))){ retryLoader = new RetryLoader((path + _local1)); retryLoader.load(); loadTimer.start(); } else { completed = true; }; } public function loadHandler(_arg1:Event):void{ var _local2:Bitmap; var _local3:Array; var _local4:MovieClip; var _local5:Bitmap; if (retryLoader.failed){ loadTimer.stop(); trace(("LevelLoader, retryLoader Error: " + retryLoader.lastError)); } else { if (retryLoader.progress == 100){ loadTimer.stop(); _local2 = Bitmap(retryLoader.loader.content); _local3 = clips.shift(); while (_local3.length > 0) { _local4 = MovieClip(_local3.shift()); _local5 = new Bitmap(_local2.bitmapData); _local4.addChild(_local5); }; loadNext(); }; }; } public function isCompleted():Boolean{ return (completed); } } }//package com.king.midasmahjong
Section 16
//MahjongCore (com.king.midasmahjong.MahjongCore) package com.king.midasmahjong { public class MahjongCore { private var document:Document; private var space:Array; private var bricks:Array; private var bricksInPlay:Array; private var selectedBrick:int;// = -1 private var gameCore:GameCore; public static const SPACE_WIDTH:int = 30; public static const SPACE_HEIGHT:int = 16; public static const SPACE_DEPTH:int = 5; public static const NO_BRICKS:int = 144; public static const EMPTY:int = -1; public static const LAST_4_TUPLE:int = 135; private static const MAX_SHUFFLE_ITERATIONS:int = 1000; public function MahjongCore(_arg1:GameCore, _arg2:String, _arg3:Document){ this.gameCore = _arg1; this.document = _arg3; var _local4:Array = Coder.decode(_arg2).split(""); initBricksInPlay(); shuffle(_local4, MahjongCore.MAX_SHUFFLE_ITERATIONS); } private function initSpace():void{ var _local2:int; var _local3:int; space = new Array(MahjongCore.SPACE_DEPTH); var _local1:int; while (_local1 < MahjongCore.SPACE_DEPTH) { space[_local1] = new Array(MahjongCore.SPACE_HEIGHT); _local2 = 0; while (_local2 < MahjongCore.SPACE_HEIGHT) { space[_local1][_local2] = new Array(MahjongCore.SPACE_WIDTH); _local3 = 0; while (_local3 < MahjongCore.SPACE_WIDTH) { space[_local1][_local2][_local3] = MahjongCore.EMPTY; _local3++; }; _local2++; }; _local1++; }; } private function initBricksInPlay():void{ bricksInPlay = new Array(MahjongCore.NO_BRICKS); var _local1:int; while (_local1 < MahjongCore.NO_BRICKS) { bricksInPlay[_local1] = _local1; _local1++; }; } public function logBricksInPlay():void{ var _local1 = ""; var _local2:int; while (_local2 < bricksInPlay.length) { _local1 = (_local1 + (" " + bricksInPlay[_local2])); _local2++; }; document.log(_local1); } private function shuffle(_arg1:Array, _arg2:int):void{ var _local7:Array; var _local8:int; var _local9:int; var _local10:int; initSpace(); bricksInPlay = Util.randomizeArray(gameCore.rand, bricksInPlay); document.log("shuffled:"); logBricksInPlay(); bricks = new Array(MahjongCore.NO_BRICKS); var _local3:int; while (_local3 < MahjongCore.NO_BRICKS) { _local7 = [MahjongCore.EMPTY, MahjongCore.EMPTY, MahjongCore.EMPTY]; bricks[_local3] = _local7; _local3++; }; var _local4:int; var _local5:int; var _local6:int; while (_local6 < MahjongCore.SPACE_DEPTH) { _local8 = 0; while (_local8 < MahjongCore.SPACE_HEIGHT) { _local9 = 0; while (_local9 < MahjongCore.SPACE_WIDTH) { var _temp1 = _local4; _local4 = (_local4 + 1); if (String(_arg1[_temp1]) == "1"){ if (positionHasRoom(_local6, _local8, _local9)){ var _temp2 = _local5; _local5 = (_local5 + 1); _local10 = int(bricksInPlay[_temp2]); putBrickInPosition(_local10, _local6, _local8, _local9); } else { trace(((((("error MajongCore.SetUpArrays position in layout was hindered!" + _local6) + " ") + _local8) + " ") + _local9)); }; }; _local9++; }; _local8++; }; _local6++; }; if (!isValid()){ document.log("**** Error, MahjongCore is not valid ****"); }; if ((((getPossibleMoves().length == 0)) && ((_arg2 > 0)))){ --_arg2; shuffle(_arg1, _arg2); }; } public function reShuffle():void{ setSelectedBrick(MahjongCore.EMPTY); var _local1:Array = getLayoutFromRemainingBricks(); shuffle(_local1, MahjongCore.MAX_SHUFFLE_ITERATIONS); } private function getLayoutFromRemainingBricks():Array{ var _local4:int; var _local5:int; var _local6:int; var _local1:Array = new Array(((MahjongCore.SPACE_DEPTH * MahjongCore.SPACE_HEIGHT) * MahjongCore.SPACE_WIDTH)); var _local2:int; var _local3:int; while (_local3 < MahjongCore.SPACE_DEPTH) { _local4 = 0; while (_local4 < MahjongCore.SPACE_HEIGHT) { _local5 = 0; while (_local5 < MahjongCore.SPACE_WIDTH) { _local6 = int(space[_local3][_local4][_local5]); if (_local6 != MahjongCore.EMPTY){ _local1[_local2] = "1"; } else { _local1[_local2] = "0"; }; _local2++; _local5++; }; _local4++; }; _local3++; }; return (_local1); } private function positionHasRoom(_arg1:int, _arg2:int, _arg3:int):Boolean{ var _local5:int; var _local4:int = (_arg2 - 1); while (_local4 <= (_arg2 + 1)) { _local5 = (_arg3 - 1); while (_local5 <= (_arg3 + 1)) { if (positionIsValid(_arg1, _local4, _local5)){ if (int(space[_arg1][_local4][_local5]) != MahjongCore.EMPTY){ return (false); }; }; _local5++; }; _local4++; }; return (true); } private function positionIsValid(_arg1:int, _arg2:int, _arg3:int):Boolean{ if ((((((((((((_arg1 >= 0)) && ((_arg1 < MahjongCore.SPACE_DEPTH)))) && ((_arg2 >= 0)))) && ((_arg2 < MahjongCore.SPACE_HEIGHT)))) && ((_arg3 >= 0)))) && ((_arg3 < MahjongCore.SPACE_WIDTH)))){ return (true); }; return (false); } private function positionIsFree(_arg1:int, _arg2:int, _arg3:int):Boolean{ return ((int(space[_arg1][_arg2][_arg3]) == MahjongCore.EMPTY)); } public function brickIsFreeToLift(_arg1:int):Boolean{ var _local2:int = int(bricks[_arg1][0]); var _local3:int = int(bricks[_arg1][1]); var _local4:int = int(bricks[_arg1][2]); return (((!(brickIsCovered(_local2, _local3, _local4))) && (brickHasAFreeSide(_local2, _local3, _local4)))); } private function brickIsCovered(_arg1:int, _arg2:int, _arg3:int):Boolean{ var _local5:int; var _local6:int; var _local7:int; _arg1 = (_arg1 + 1); var _local4 = -1; while (_local4 <= 1) { _local5 = (_arg2 + _local4); _local6 = -1; while (_local6 <= 1) { _local7 = (_arg3 + _local6); if (((positionIsValid(_arg1, _local5, _local7)) && (!(positionIsFree(_arg1, _local5, _local7))))){ return (true); }; _local6++; }; _local4++; }; return (false); } private function brickHasAFreeSide(_arg1:int, _arg2:int, _arg3:int):Boolean{ if (((sideIsFree(_arg1, _arg2, (_arg3 - 2))) || (sideIsFree(_arg1, _arg2, (_arg3 + 2))))){ return (true); }; return (false); } private function sideIsFree(_arg1:int, _arg2:int, _arg3:int):Boolean{ var _local5:int; var _local4 = -1; while (_local4 <= 1) { _local5 = (_arg2 + _local4); if (positionIsValid(_arg1, _local5, _arg3)){ if (!positionIsFree(_arg1, _local5, _arg3)){ return (false); }; }; _local4++; }; return (true); } private function putBrickInPosition(_arg1:int, _arg2:int, _arg3:int, _arg4:int):void{ if (!positionHasRoom(_arg2, _arg3, _arg4)){ document.log("**** Error, trying to put tile in occupied position! ****"); }; space[_arg2][_arg3][_arg4] = _arg1; bricks[_arg1] = [_arg2, _arg3, _arg4]; } public function getBricksInShowOrder():Array{ var _local3:int; var _local4:int; var _local5:int; var _local1:Array = new Array(); var _local2:int; while (_local2 < MahjongCore.SPACE_DEPTH) { _local3 = 0; while (_local3 < MahjongCore.SPACE_HEIGHT) { _local4 = 0; while (_local4 < MahjongCore.SPACE_WIDTH) { _local5 = int(space[_local2][_local3][_local4]); if (_local5 != MahjongCore.EMPTY){ _local1.push([_local5, _local2, _local3, _local4]); }; _local4++; }; _local3++; }; _local2++; }; return (_local1); } public function getBricksInDrawOrder():Array{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:Boolean; var _local8:Boolean; var _local9:int; var _local1:Array = new Array(); var _local2:int; while (_local2 < MahjongCore.SPACE_DEPTH) { _local3 = 0; _local4 = (MahjongCore.SPACE_WIDTH - 1); _local5 = _local3; _local6 = _local4; _local7 = true; _local8 = false; while (!(_local8)) { _local9 = int(space[_local2][_local5][_local6]); if (_local9 != MahjongCore.EMPTY){ _local1.push([_local9, _local2, _local5, _local6]); }; _local5++; _local6++; if ((((_local5 >= MahjongCore.SPACE_HEIGHT)) || ((_local6 >= MahjongCore.SPACE_WIDTH)))){ if (_local7){ _local5 = 0; --_local4; _local6 = _local4; if (_local6 == 0){ _local7 = false; }; } else { _local3++; if (_local3 >= MahjongCore.SPACE_HEIGHT){ _local8 = true; }; _local5 = _local3; _local6 = 0; }; }; }; _local2++; }; return (_local1); } private function removePair(_arg1:int, _arg2:int):void{ removeBrick(_arg1); removeBrick(_arg2); gameCore.removePair(_arg1, _arg2); if ((((bricksInPlay.length > 0)) && ((getFreeBricks().length == 1)))){ document.log("No possible move"); logBricksInPlay(); gameCore.gameOver(App.NO_MORE_MOVES); } else { if (((document.relaxMode) && ((gameCore.relaxShuffles <= 0)))){ if (getPossibleMoves().length == 0){ document.log("No possible move"); logBricksInPlay(); gameCore.gameOver(App.NO_MORE_MOVES); }; }; }; } private function removeBrick(_arg1:int):void{ var _local2:Array = bricks[_arg1]; var _local3:int = int(_local2[0]); var _local4:int = int(_local2[1]); var _local5:int = int(_local2[2]); if (space[_local3][_local4][_local5] == MahjongCore.EMPTY){ document.log("**** Error, trying to remove nonexisting brick! ****"); }; space[_local3][_local4][_local5] = MahjongCore.EMPTY; bricks[_arg1] = [MahjongCore.EMPTY, MahjongCore.EMPTY, MahjongCore.EMPTY]; var _local6:int = bricksInPlay.indexOf(_arg1); bricksInPlay.splice(_local6, 1); } private function setSelectedBrick(_arg1:int):void{ gameCore.changeSelectedBrick(selectedBrick, _arg1); selectedBrick = _arg1; } public function getPossibleMoves():Array{ var _local4:Array; var _local5:int; var _local6:int; var _local1:int = (MahjongCore.NO_BRICKS / 4); var _local2:Array = new Array(); var _local3:int; while (_local3 < _local1) { _local4 = new Array(); _local5 = 0; while (_local5 < 4) { _local6 = ((_local3 * 4) + _local5); if (((brickIsInSpace(_local6)) && (brickIsFreeToLift(_local6)))){ _local4.push(_local6); }; _local5++; }; if (_local4.length > 1){ _local2.push(_local4); }; _local3++; }; return (_local2); } public function getAFreePair():Array{ var _local3:int; var _local4:Array; var _local1:Array = getPossibleMoves(); var _local2:int = _local1.length; if (_local2 > 0){ _local3 = (Math.random() * _local2); _local4 = _local1[_local3]; return (_local4.slice(0, 2)); }; return (null); } public function getFreeBricks():Array{ var _local4:int; var _local1:Array = new Array(); var _local2:int = bricksInPlay.length; var _local3:int; while (_local3 < _local2) { _local4 = int(bricksInPlay[_local3]); if (brickIsFreeToLift(_local4)){ _local1.push(_local4); }; _local3++; }; return (_local1); } private function brickIsInSpace(_arg1:int):Boolean{ var _local2:Array = bricks[_arg1]; var _local3:int; while (_local3 < 3) { if (int(_local2[_local3]) == MahjongCore.EMPTY){ return (false); }; _local3++; }; return (true); } public function getFreeFaces():Array{ var _local5:Array; var _local6:int; var _local7:int; var _local8:int; var _local1:Array = getPossibleMoves(); var _local2:Array = new Array(); var _local3:int = _local1.length; var _local4:int; while (_local4 < _local3) { _local5 = _local1[_local4]; _local6 = _local5.length; _local7 = 0; while (_local7 < _local6) { _local8 = int(_local5[_local7]); _local2.push((getFaceNr(_local8) + 1)); _local7++; }; _local4++; }; return (_local2); } public function brickClicked(_arg1:int):void{ if (bricksInPlay.indexOf(_arg1) != -1){ if (_arg1 == selectedBrick){ setSelectedBrick(MahjongCore.EMPTY); gameCore.selectFromScratch(); } else { if (brickIsFreeToLift(_arg1)){ if (MahjongCore.isPair(selectedBrick, _arg1)){ removePair(selectedBrick, _arg1); setSelectedBrick(MahjongCore.EMPTY); if (bricksInPlay.length == 0){ gameCore.layupFinished(); }; } else { if (selectedBrick == MahjongCore.EMPTY){ gameCore.selectFromScratch(); } else { gameCore.notMatch(); }; setSelectedBrick(_arg1); }; } else { gameCore.notFree(); }; }; }; } public function isValid():Boolean{ var _local6:int; var _local7:int; var _local8:int; var _local1:Boolean; var _local2:Array = bricksInPlay.slice(); var _local3:Array = new Array(); var _local4:int = (144 / 4); var _local5:int; while (_local5 < _local4) { _local3.push(0); _local5++; }; while (_local2.length > 0) { _local6 = getMatchId(int(_local2.pop())); _local7 = int(_local3[_local6]); _local7++; _local3[_local6] = _local7; }; _local5 = 0; while (_local5 < _local4) { _local8 = int(_local3[_local5]); if ((_local8 % 2) != 0){ _local1 = false; }; _local5++; }; if (!_local1){ trace(("isValid false bricksInPlay: " + bricksInPlay)); }; return (_local1); } public static function getMatchId(_arg1:int):int{ if ((((_arg1 >= 0)) && ((_arg1 < MahjongCore.NO_BRICKS)))){ return ((_arg1 / 4)); }; return (MahjongCore.EMPTY); } public static function getFaceNr(_arg1:int):int{ var _local2:int; if (_arg1 <= MahjongCore.LAST_4_TUPLE){ return (MahjongCore.getMatchId(_arg1)); }; _local2 = (_arg1 - MahjongCore.LAST_4_TUPLE); return ((getMatchId(MahjongCore.LAST_4_TUPLE) + _local2)); } public static function isPair(_arg1:int, _arg2:int):Boolean{ return ((MahjongCore.getMatchId(_arg1) == MahjongCore.getMatchId(_arg2))); } } }//package com.king.midasmahjong
Section 17
//MahjongTiles (com.king.midasmahjong.MahjongTiles) package com.king.midasmahjong { import flash.display.*; public class MahjongTiles extends MovieClip { public var START_X:int; public var START_Y:int; private var bricks:Array; private var layers:Array; private var shadows:Array; private var shadowLayers:Array; public var gui:Gui; public function MahjongTiles(){ this.START_X = this.x; this.START_Y = this.y; } public function fixLayers():void{ var _local2:MovieClip; var _local3:MovieClip; layers = new Array(MahjongCore.SPACE_DEPTH); shadowLayers = new Array(MahjongCore.SPACE_DEPTH); var _local1:int; while (_local1 < MahjongCore.SPACE_DEPTH) { _local2 = new MovieClip(); _local2.x = (_local1 * Brick.PERSPECTIVE_WIDTH); _local2.y = (_local1 * Brick.PERSPECTIVE_HEIGHT); _local3 = new MovieClip(); _local3.mouseEnabled = false; _local3.x = _local2.x; _local3.y = _local2.y; shadowLayers[_local1] = _local3; this.addChild(_local3); layers[_local1] = _local2; this.addChild(_local2); _local1++; }; } public function emptyLayers():void{ var _local2:MovieClip; var _local1:int; while (_local1 < MahjongCore.SPACE_DEPTH) { _local2 = MovieClip(layers[_local1]); while (_local2.numChildren > 0) { _local2.removeChildAt(0); }; _local1++; }; } public function createBricks():void{ var _local3:Brick; var _local4:BrickShadow; var _local1:int = MahjongCore.NO_BRICKS; bricks = new Array(_local1); shadows = new Array(_local1); var _local2:int; while (_local2 < _local1) { _local3 = Brick.createBrick(_local2); _local3.gui = gui; bricks[_local2] = _local3; _local4 = new BrickShadow(); _local4.brickNr = _local2; shadows[_local2] = _local4; _local2++; }; } public function newSetup(_arg1:Array):void{ var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:Brick; var _local11:MovieClip; var _local12:BrickShadow; var _local13:MovieClip; var _local2:Number = ((Math.random() * Brick.X_STEP) * 2); var _local3:Number = ((Math.random() * Brick.Y_STEP) * 2); this.x = Math.floor((START_X + _local2)); this.y = Math.floor((START_Y + _local3)); var _local4:int = _arg1.length; var _local5:int; while (_local5 < _local4) { _local6 = int(_arg1[_local5][0]); _local7 = int(_arg1[_local5][1]); _local8 = int(_arg1[_local5][2]); _local9 = int(_arg1[_local5][3]); _local10 = Brick(bricks[_local6]); _local10.setPosition(_local7, _local8, _local9); _local11 = MovieClip(layers[_local10.i]); _local11.addChild(_local10); _local12 = BrickShadow(shadows[_local6]); _local12.x = _local10.x; _local12.y = _local10.y; _local13 = MovieClip(shadowLayers[_local10.i]); _local13.addChild(_local12); _local5++; }; } public function changeSelectedBrick(_arg1:Array):void{ var _local4:Brick; var _local2:int = int(_arg1[0]); var _local3:int = int(_arg1[1]); if (_local2 != MahjongCore.EMPTY){ _local4 = Brick(bricks[_local2]); _local4.selected.visible = false; }; if (_local3 != MahjongCore.EMPTY){ _local4 = Brick(bricks[_local3]); _local4.selected.visible = true; }; } public function removePair(_arg1:Array):void{ var _local2:Brick = Brick(bricks[int(_arg1[0])]); var _local3:Brick = Brick(bricks[int(_arg1[1])]); _local2.parent.removeChild(_local2); _local3.parent.removeChild(_local3); var _local4:BrickShadow = BrickShadow(shadows[int(_arg1[0])]); var _local5:BrickShadow = BrickShadow(shadows[int(_arg1[1])]); _local4.parent.removeChild(_local4); _local5.parent.removeChild(_local5); } public function showPossibleMove(_arg1:Array):void{ var _local3:int; var _local4:Brick; var _local2:int; while (_local2 < _arg1.length) { _local3 = int(_arg1[_local2]); _local4 = Brick(bricks[_local3]); _local4.missed.visible = true; _local2++; }; } public function hidePossibleMove(_arg1:Array):void{ var _local3:int; var _local4:Brick; var _local2:int; while (_local2 < _arg1.length) { _local3 = int(_arg1[_local2]); _local4 = Brick(bricks[_local3]); _local4.missed.visible = false; _local2++; }; } public function showBrick(_arg1:Array):void{ var _local2:int = int(_arg1[0]); Brick(bricks[_local2]).visible = true; BrickShadow(shadows[_local2]).visible = true; } public function shuffle(_arg1:Array):void{ this.visible = false; emptyLayers(); newSetup(_arg1); this.visible = true; } public function showRollOver(_arg1:int):void{ Brick(bricks[_arg1]).rolledOver.visible = true; } public function hideRollOver(_arg1:int):void{ Brick(bricks[_arg1]).rolledOver.visible = false; } public function getBrick(_arg1:int):Brick{ return (Brick(bricks[_arg1])); } } }//package com.king.midasmahjong
Section 18
//Random (com.king.midasmahjong.Random) package com.king.midasmahjong { import flash.utils.*; public class Random { private var mta:Array; private var lastSeed:Number; private var mti:Number; private static var N:Number = 624; private static var M:Number = 397; private static var MATRIX_A:Number = 2567483615; private static var UPPER_MASK:Number = 2147483648; private static var LOWER_MASK:Number = 2147483647; private static var mag01:Array = [0, 2567483615]; public function Random(_arg1:Number){ mta = new Array(N); mti = (N + 1); if (_arg1){ init_genrand(_arg1); }; } public function set seed(_arg1:Number){ init_genrand(_arg1); } public function get seed():Number{ return (lastSeed); } public function nextInt(_arg1:Number){ return (((genrand_int32() & 2147483647) % _arg1)); } public function nextFloat(){ return ((next(24) / (1 << 24))); } public function nextDouble(){ return ((next(24) / (1 << 24))); } public function next(_arg1:Number){ if (_arg1 < 32){ return ((genrand_int32() & ((1 << _arg1) - 1))); }; return (genrand_int32()); } private function init_genrand(_arg1:Number):void{ _arg1 = int(_arg1); var _local2:* = getTimer(); lastSeed = _arg1; mta[0] = _arg1; var _local3:* = _arg1; var _local4:* = new Integer64(null); var _local5:Number = N; mti = 1; while (mti < _local5) { _local4.init32(((_local3 >>> 30) ^ _local3)); _local4.mulu32(1812433253); _local3 = (mta[mti] = int((_local4.lsb + mti))); mti++; }; var _local6:* = getTimer(); } private function genrand_int32(){ var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local1:Number = N; var _local2:Number = 0; if (mti >= _local1){ if (mti == (_local1 + 1)){ init_genrand(5489); }; _local3 = M; _local4 = UPPER_MASK; _local5 = LOWER_MASK; _local6 = mag01; _local7 = getTimer(); _local8 = 0; _local9 = (_local1 - _local3); _local10 = (_local3 - _local1); _local8 = 0; while (_local8 < _local9) { _local2 = ((mta[_local8] & _local4) | (mta[(_local8 + 1)] & _local5)); mta[_local8] = ((mta[(_local8 + _local3)] ^ (_local2 >>> 1)) ^ _local6[(_local2 & 1)]); _local8++; }; _local9 = (_local1 - 1); while (_local8 < _local9) { _local2 = ((mta[_local8] & _local4) | (mta[(_local8 + 1)] & _local5)); mta[_local8] = ((mta[(_local8 + _local10)] ^ (_local2 >>> 1)) ^ _local6[(_local2 & 1)]); _local8++; }; _local2 = ((mta[(_local1 - 1)] & _local4) | (mta[0] & _local5)); mta[(_local1 - 1)] = ((mta[(_local3 - 1)] ^ (_local2 >>> 1)) ^ _local6[(_local2 & 1)]); mti = 0; _local11 = getTimer(); }; _local2 = mta[mti++]; _local2 = (_local2 ^ (_local2 >>> 11)); _local2 = (_local2 ^ ((_local2 << 7) & 2636928640)); _local2 = (_local2 ^ ((_local2 << 15) & 4022730752)); _local2 = (_local2 ^ (_local2 >>> 18)); return (_local2); } } }//package com.king.midasmahjong
Section 19
//Renderable (com.king.midasmahjong.Renderable) package com.king.midasmahjong { public interface Renderable { function render(_arg1:Number, _arg2:int):Boolean; } }//package com.king.midasmahjong
Section 20
//RenderableMc (com.king.midasmahjong.RenderableMc) package com.king.midasmahjong { import flash.display.*; public class RenderableMc extends MovieClip implements Renderable { protected var startTick:Number; public function initialize():void{ this.startTick = -1; gotoAndStop(0); visible = true; } public function render(_arg1:Number, _arg2:int):Boolean{ if (startTick == -1){ startTick = (_arg2 + _arg1); }; var _local3:Number = ((_arg2 + _arg1) - startTick); var _local4:int = (_local3 * App.MOVIE_CLIP_FRAMES_PER_GAME_TICK); var _local5:Boolean; if (_local4 > totalFrames){ _local4 = totalFrames; }; gotoAndStop(_local4); if (currentFrame >= totalFrames){ visible = false; _local5 = true; }; return (_local5); } } }//package com.king.midasmahjong
Section 21
//RetryLoader (com.king.midasmahjong.RetryLoader) package com.king.midasmahjong { import flash.events.*; import flash.utils.*; import flash.display.*; import flash.system.*; import flash.net.*; public class RetryLoader { public var verbose:Boolean;// = false public var maxFails:int;// = 10 public var loader:Loader; public var progress:int; public var lastHttpStatus:int; public var lastError:String; public var failed:Boolean; private var failCount:int; private var url:String; private var retryTimer:Timer; public function RetryLoader(_arg1:String){ progress = 0; failed = false; failCount = 0; lastError = ""; this.url = _arg1; } public function load():void{ if (verbose){ trace(("Loading " + url)); }; var _local1:LoaderContext = new LoaderContext(); _local1.checkPolicyFile = true; loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.contentLoaderInfo.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatus); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressEvent); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError); loader.load(new URLRequest(url), _local1); } private function fail(_arg1:String):void{ if (loader == null){ return; }; loader = null; failCount++; if (verbose){ trace(((("fail #" + failCount) + ": ") + _arg1)); }; if (failCount >= maxFails){ failed = true; } else { lastError = _arg1; retryTimer = new Timer(1500, 1); retryTimer.addEventListener(TimerEvent.TIMER_COMPLETE, retry); retryTimer.start(); }; } public function ioError(_arg1:IOErrorEvent):void{ fail(_arg1.text); } public function retry(_arg1:TimerEvent):void{ if (verbose){ trace(("retry: " + _arg1)); }; retryTimer = null; load(); } public function complete(_arg1:Event):void{ if (int((lastHttpStatus / 100)) != 2){ fail(("Bad server reply: " + lastHttpStatus)); return; }; lastError = ("Loaded: " + loader.contentLoaderInfo.bytesTotal); if (verbose){ trace(("complete: " + _arg1)); }; progress = 100; } public function httpStatus(_arg1:HTTPStatusEvent):void{ lastHttpStatus = _arg1.status; if (_arg1.status == 0){ lastHttpStatus = 200; }; } public function progressEvent(_arg1:ProgressEvent):void{ progress = ((_arg1.bytesLoaded * 100) / _arg1.bytesTotal); if (progress > 99){ progress = 99; }; } } }//package com.king.midasmahjong
Section 22
//ScorePopup (com.king.midasmahjong.ScorePopup) package com.king.midasmahjong { import flash.display.*; import flash.text.*; public class ScorePopup extends MovieClip implements Renderable { public var textField:TextField; private var frameCounter:int; private var initialAlpha:Number;// = 0 private var maxAlpha:Number;// = 1 private var fadeInFrames:int;// = 10 private var fadeInSpeed:Number; private var stableFrames:int;// = 10 private var fadeOutFrames:int;// = 20 private var fadeOutSpeed:Number; private var ySpeed:Number;// = -1.2 private var yTemp:Number; private var initialized:Boolean;// = false public function ScorePopup(){ stop(); this.mouseEnabled = false; textField.mouseEnabled = false; } public function render(_arg1:Number, _arg2:int):Boolean{ var _local4:Number; var _local5:int; var _local3:Boolean; if (!initialized){ yTemp = y; frameCounter = 1; fadeInSpeed = ((maxAlpha - initialAlpha) / fadeInFrames); fadeOutSpeed = (maxAlpha / fadeOutFrames); initialized = true; }; if (frameCounter < fadeInFrames){ _local4 = (frameCounter * fadeInSpeed); this.alpha = Math.min(_local4, maxAlpha); } else { if (frameCounter < (fadeInFrames + stableFrames)){ } else { _local5 = (frameCounter - (fadeInFrames + stableFrames)); _local4 = ((fadeOutFrames - _local5) * fadeOutSpeed); this.alpha = Math.max(_local4, 0); }; }; yTemp = (yTemp + ySpeed); y = Math.floor(yTemp); frameCounter++; if (frameCounter > ((fadeInFrames + stableFrames) + fadeOutFrames)){ visible = false; initialized = false; _local3 = true; }; return (_local3); } } }//package com.king.midasmahjong
Section 23
//ShuffleButton (com.king.midasmahjong.ShuffleButton) package com.king.midasmahjong { import flash.display.*; import flash.text.*; public class ShuffleButton extends MovieClip implements Renderable { private const START_X:Number; private const X_MOVE:int = 4; private const X_MAX:int; public var textField:TextField; public var rolledOver:Boolean;// = false public function ShuffleButton(){ START_X = x; X_MAX = (START_X + 25); super(); stop(); } public function render(_arg1:Number, _arg2:int):Boolean{ var _local3:Boolean; if (rolledOver){ x = (x + X_MOVE); if (x >= X_MAX){ x = X_MAX; _local3 = true; }; } else { x = (x - X_MOVE); if (x <= START_X){ x = START_X; _local3 = true; }; }; return (_local3); } } }//package com.king.midasmahjong
Section 24
//SoundFader (com.king.midasmahjong.SoundFader) package com.king.midasmahjong { import flash.events.*; import flash.media.*; import flash.utils.*; public class SoundFader { public var soundChannel:SoundChannel; private var millisec:int; private var listener:Object; private var timer:Timer; private var fadeStep:Number;// = 0.03 private var miniStep:Number;// = 0.01 private var nrOfSteps:int; private var extraRepeats:int;// = 5 private var panning:Number; public function SoundFader(_arg1:SoundChannel, _arg2:int, _arg3:Object){ this.soundChannel = _arg1; this.millisec = _arg2; this.listener = _arg3; var _local4:Number = _arg1.soundTransform.volume; nrOfSteps = (_local4 / fadeStep); panning = _arg1.soundTransform.pan; var _local5:int = (_arg2 / nrOfSteps); timer = new Timer(_local5, (nrOfSteps + extraRepeats)); timer.addEventListener("timer", fade); timer.addEventListener("timerComplete", destroy); timer.start(); } public function fade(_arg1:TimerEvent):void{ var _local2:Number = soundChannel.soundTransform.volume; if (_local2 > fadeStep){ _local2 = (_local2 - fadeStep); } else { _local2 = (_local2 - miniStep); }; if (_local2 < 0){ _local2 = 0; }; soundChannel.soundTransform = new SoundTransform(_local2, panning); } public function destroy(_arg1:TimerEvent):void{ soundChannel.stop(); listener.soundFaderCompleted(this); } } }//package com.king.midasmahjong
Section 25
//TimedAction (com.king.midasmahjong.TimedAction) package com.king.midasmahjong { public class TimedAction { public var wait:int; public var executionTime:int; public var func:Function; public var args:Array; public var remainingIterations:int; public var paused:Boolean;// = false private var pausedOnTime:int;// = -1 private var handler:TimedActionHandler; public static const NOT_SET:int = -1; public static const RENEW_FOREVER:int = -3; public function TimedAction(_arg1:int, _arg2:int, _arg3:Function, _arg4:Array, _arg5:int){ this.wait = _arg2; this.executionTime = (_arg1 + _arg2); this.func = _arg3; this.args = _arg4; this.remainingIterations = _arg5; } public function execute(_arg1:TimedActionHandler):Boolean{ if (args == null){ func(); } else { func(args); }; remainingIterations--; if (remainingIterations > 0){ executionTime = (executionTime + wait); return (true); }; pause(null, TimedAction.NOT_SET); return (false); } public function pause(_arg1:TimedActionHandler, _arg2:int):void{ paused = true; pausedOnTime = _arg2; } public function resume(_arg1:TimedActionHandler, _arg2:int):void{ paused = false; var _local3:int = (executionTime - pausedOnTime); executionTime = (_arg2 + _local3); } public function getRemainingTime():int{ if (paused){ return ((executionTime - pausedOnTime)); }; return ((executionTime - handler.getCurrentTime())); } public function setHandler(_arg1:TimedActionHandler):void{ this.handler = _arg1; } } }//package com.king.midasmahjong
Section 26
//TimedActionHandler (com.king.midasmahjong.TimedActionHandler) package com.king.midasmahjong { public class TimedActionHandler { private var actions:Array; private var pausedActions:Array; private var latestTime:int; private var timeFunc:Function; public function TimedActionHandler(_arg1:Function){ if (_arg1 == null){ this.timeFunc = getLatestTime; } else { this.timeFunc = getCurrentTime; }; actions = new Array(); pausedActions = new Array(); } public function update(_arg1:int):void{ var _local2:TimedAction; var _local3:Boolean; this.latestTime = _arg1; while ((((actions.length > 0)) && ((TimedAction(actions[0]).executionTime <= _arg1)))) { _local2 = TimedAction(actions.shift()); _local3 = _local2.execute(this); if (_local3){ add([_local2]); }; }; } public function add(_arg1:Array):void{ var _local2:TimedAction; while (_arg1.length > 0) { _local2 = _arg1.pop(); _local2.setHandler(this); this.actions.push(_local2); }; this.actions.sortOn("executionTime", Array.NUMERIC); } public function pause(_arg1:TimedAction):void{ var _local2:int = actions.indexOf(_arg1); if (_local2 != -1){ actions.splice(_local2, 1); _arg1.pause(this, timeFunc()); pausedActions.push(_arg1); }; } public function resume(_arg1:TimedAction):void{ var _local2:int = pausedActions.indexOf(_arg1); if (_local2 != -1){ pausedActions.splice(_local2, 1); _arg1.resume(this, timeFunc()); actions.push(_arg1); }; } public function getCurrentTime():int{ return (timeFunc()); } public function getLatestTime():int{ return (latestTime); } } }//package com.king.midasmahjong
Section 27
//TimeDisplay (com.king.midasmahjong.TimeDisplay) package com.king.midasmahjong { import flash.display.*; import flash.text.*; public class TimeDisplay extends MovieClip implements Renderable { public var glowRepeats:int;// = 1 public var glowing:Boolean;// = false public var glowCount:int;// = 0 private var originalTextColor:uint; public var minutes10:TextField; public var minutes1:TextField; public var colon:TextField; public var seconds10:TextField; public var seconds1:TextField; public var glow:MovieClip; public var label:TextField; public function TimeDisplay(){ stop(); glow.stop(); originalTextColor = minutes10.textColor; } public function render(_arg1:Number, _arg2:int):Boolean{ var _local3:Boolean; if (!glowing){ glowing = true; glowCount = 0; glow.visible = true; }; glow.nextFrame(); if (glow.currentFrame >= glow.totalFrames){ glow.gotoAndStop(0); if (++glowCount >= glowRepeats){ glowing = false; glow.visible = false; _local3 = true; }; }; return (_local3); } public function timePenaltyUpdate(_arg1:Array):void{ minutes10.textColor = 0xFF0000; minutes1.textColor = 0xFF0000; seconds10.textColor = 0xFF0000; seconds1.textColor = 0xFF0000; update(_arg1); } public function timePenaltyHide():void{ minutes10.textColor = originalTextColor; minutes1.textColor = originalTextColor; seconds10.textColor = originalTextColor; seconds1.textColor = originalTextColor; } public function update(_arg1:Array):void{ var _local2:int = int(_arg1[0]); var _local3:int = int(_arg1[1]); var _local4:String = String(_local2); if (_local4.length < 2){ this.minutes10.text = "0"; this.minutes1.text = _local4.charAt(0); } else { this.minutes10.text = _local4.charAt(0); this.minutes1.text = _local4.charAt(1); }; var _local5:String = String(_local3); if (_local5.length < 2){ this.seconds10.text = "0"; this.seconds1.text = _local5.charAt(0); } else { this.seconds10.text = _local5.charAt(0); this.seconds1.text = _local5.charAt(1); }; } public function hideTime():void{ minutes10.visible = false; minutes1.visible = false; colon.y = (colon.y + 5); seconds10.visible = false; seconds1.visible = false; glow.visible = false; } } }//package com.king.midasmahjong
Section 28
//Transitionglow (com.king.midasmahjong.Transitionglow) package com.king.midasmahjong { public class Transitionglow extends RenderableMc { private var backgroundChangeIsPassed:Boolean;// = false private var backgroundChange:int; public function Transitionglow(){ gotoAndStop("backgroundChange"); backgroundChange = currentFrame; gotoAndStop(0); } override public function initialize():void{ super.initialize(); } override public function render(_arg1:Number, _arg2:int):Boolean{ var _local3:Boolean = super.render(_arg1, _arg2); if (((!(backgroundChangeIsPassed)) && ((currentFrame >= backgroundChange)))){ gotoAndStop(backgroundChange); backgroundChangeIsPassed = true; _local3 = false; }; return (_local3); } } }//package com.king.midasmahjong
Section 29
//Util (com.king.midasmahjong.Util) package com.king.midasmahjong { public class Util { public static function randomizeArray(_arg1:Random, _arg2:Array):Array{ var _local4:Array; var _local7:int; var _local3:Array = _arg2.slice(); var _local5:int = _local3.length; var _local6:int; while (_local6 < 5) { _local4 = new Array(); while (_local3.length > 0) { _local7 = _arg1.nextInt(_local3.length); _local4.push(_local3.splice(_local7, 1)[0]); }; _local3 = _local4; _local6++; }; return (_local4); } } }//package com.king.midasmahjong
Section 30
//ButtonPanel (ButtonPanel) package { import flash.display.*; public dynamic class ButtonPanel extends MovieClip { } }//package
Section 31
//ClickTile (ClickTile) package { import flash.media.*; public dynamic class ClickTile extends Sound { } }//package
Section 32
//ExitBtn (ExitBtn) package { import flash.display.*; public dynamic class ExitBtn extends MovieClip { } }//package
Section 33
//GameOverSnd (GameOverSnd) package { import flash.media.*; public dynamic class GameOverSnd extends Sound { } }//package
Section 34
//GongSnd (GongSnd) package { import flash.media.*; public dynamic class GongSnd extends Sound { } }//package
Section 35
//Intro (Intro) package { import flash.display.*; import flash.text.*; public dynamic class Intro extends MovieClip { public var countDownDigitTF:TextField; public var startButton:SimpleButton; public var countDownText2:TextField; public var startBtnTf:TextField; public var introTf:TextField; public var countDownText1:TextField; } }//package
Section 36
//IntroSound (IntroSound) package { import flash.media.*; public dynamic class IntroSound extends Sound { } }//package
Section 37
//LayupAnimationBurnoutSnd (LayupAnimationBurnoutSnd) package { import flash.media.*; public dynamic class LayupAnimationBurnoutSnd extends Sound { } }//package
Section 38
//LayupCleared (LayupCleared) package { import flash.media.*; public dynamic class LayupCleared extends Sound { } }//package
Section 39
//Level1Color (Level1Color) package { import flash.display.*; public dynamic class Level1Color extends MovieClip { } }//package
Section 40
//Level1TimeLamp (Level1TimeLamp) package { import flash.display.*; public dynamic class Level1TimeLamp extends MovieClip { } }//package
Section 41
//Level1White (Level1White) package { import flash.display.*; public dynamic class Level1White extends MovieClip { } }//package
Section 42
//Level2Color (Level2Color) package { import flash.display.*; public dynamic class Level2Color extends MovieClip { } }//package
Section 43
//Level2White (Level2White) package { import flash.display.*; public dynamic class Level2White extends MovieClip { } }//package
Section 44
//Level3Color (Level3Color) package { import flash.display.*; public dynamic class Level3Color extends MovieClip { } }//package
Section 45
//Level4Color (Level4Color) package { import flash.display.*; public dynamic class Level4Color extends MovieClip { } }//package
Section 46
//Level4White (Level4White) package { import flash.display.*; public dynamic class Level4White extends MovieClip { } }//package
Section 47
//Level5Color (Level5Color) package { import flash.display.*; public dynamic class Level5Color extends MovieClip { } }//package
Section 48
//Level5White (Level5White) package { import flash.display.*; public dynamic class Level5White extends MovieClip { } }//package
Section 49
//LevelAnimation1 (LevelAnimation1) package { import com.king.midasmahjong.*; public dynamic class LevelAnimation1 extends LevelAnimation { } }//package
Section 50
//LevelAnimation2 (LevelAnimation2) package { import com.king.midasmahjong.*; public dynamic class LevelAnimation2 extends LevelAnimation { } }//package
Section 51
//LevelAnimation3 (LevelAnimation3) package { import com.king.midasmahjong.*; public dynamic class LevelAnimation3 extends LevelAnimation { } }//package
Section 52
//LevelAnimation4 (LevelAnimation4) package { import com.king.midasmahjong.*; public dynamic class LevelAnimation4 extends LevelAnimation { } }//package
Section 53
//LevelAnimation5 (LevelAnimation5) package { import com.king.midasmahjong.*; public dynamic class LevelAnimation5 extends LevelAnimation { } }//package
Section 54
//levelAnimationHue2 (levelAnimationHue2) package { import flash.display.*; public dynamic class levelAnimationHue2 extends MovieClip { } }//package
Section 55
//LoopSnd (LoopSnd) package { import flash.media.*; public dynamic class LoopSnd extends Sound { } }//package
Section 56
//NotFree (NotFree) package { import flash.media.*; public dynamic class NotFree extends Sound { } }//package
Section 57
//NotMatch (NotMatch) package { import flash.media.*; public dynamic class NotMatch extends Sound { } }//package
Section 58
//OutroSnd (OutroSnd) package { import flash.media.*; public dynamic class OutroSnd extends Sound { } }//package
Section 59
//PlayBtn (PlayBtn) package { import flash.display.*; public dynamic class PlayBtn extends MovieClip { } }//package
Section 60
//RemovePair (RemovePair) package { import flash.media.*; public dynamic class RemovePair extends Sound { } }//package
Section 61
//RollOver (RollOver) package { import flash.display.*; public dynamic class RollOver extends MovieClip { } }//package
Section 62
//ScorePopup (ScorePopup) package { import com.king.midasmahjong.*; public dynamic class ScorePopup extends ScorePopup { } }//package
Section 63
//ShuffleLooseTime (ShuffleLooseTime) package { import flash.media.*; public dynamic class ShuffleLooseTime extends Sound { } }//package
Section 64
//ShuffleSnd (ShuffleSnd) package { import flash.media.*; public dynamic class ShuffleSnd extends Sound { } }//package
Section 65
//TimeWarningSnd (TimeWarningSnd) package { import flash.media.*; public dynamic class TimeWarningSnd extends Sound { } }//package
Section 66
//Transitionglow (Transitionglow) package { import com.king.midasmahjong.*; public dynamic class Transitionglow extends Transitionglow { } }//package

Library Items

Symbol 1 Sound {TimeWarningSnd}
Symbol 2 Sound {ShuffleSnd}
Symbol 3 Sound {ShuffleLooseTime}
Symbol 4 Sound {RemovePair}
Symbol 5 Sound {OutroSnd}
Symbol 6 Sound {NotMatch}
Symbol 7 Sound {NotFree}
Symbol 8 Sound {LoopSnd}
Symbol 9 Sound {LayupCleared}
Symbol 10 Sound {LayupAnimationBurnoutSnd}
Symbol 11 Sound {IntroSound}
Symbol 12 Sound {GongSnd}
Symbol 13 Sound {GameOverSnd}
Symbol 14 Sound {ClickTile}
Symbol 15 FontUsed by:16 138 143 144 145 146 152 155 157 236 237 238 239 240 241 502 569 570 580 582 583 584 585 586 587
Symbol 16 EditableTextUses:15Used by:17
Symbol 17 MovieClip {ScorePopup}Uses:16
Symbol 18 GraphicUsed by:19
Symbol 19 MovieClipUses:18Used by:22 25
Symbol 20 BitmapUsed by:21
Symbol 21 GraphicUses:20Used by:22 25
Symbol 22 MovieClip {RollOver}Uses:19 21Used by:110
Symbol 23 BitmapUsed by:24
Symbol 24 GraphicUses:23Used by:110
Symbol 25 MovieClipUses:19 21Used by:110
Symbol 26 GraphicUsed by:27
Symbol 27 MovieClipUses:26Used by:110
Symbol 28 BitmapUsed by:29
Symbol 29 GraphicUses:28Used by:110
Symbol 30 BitmapUsed by:31
Symbol 31 GraphicUses:30Used by:110
Symbol 32 BitmapUsed by:33
Symbol 33 GraphicUses:32Used by:110
Symbol 34 BitmapUsed by:35
Symbol 35 GraphicUses:34Used by:110
Symbol 36 BitmapUsed by:37
Symbol 37 GraphicUses:36Used by:110
Symbol 38 BitmapUsed by:39
Symbol 39 GraphicUses:38Used by:110
Symbol 40 BitmapUsed by:41
Symbol 41 GraphicUses:40Used by:110
Symbol 42 BitmapUsed by:43
Symbol 43 GraphicUses:42Used by:110
Symbol 44 BitmapUsed by:45
Symbol 45 GraphicUses:44Used by:110
Symbol 46 BitmapUsed by:47
Symbol 47 GraphicUses:46Used by:110
Symbol 48 BitmapUsed by:49
Symbol 49 GraphicUses:48Used by:110
Symbol 50 BitmapUsed by:51
Symbol 51 GraphicUses:50Used by:110
Symbol 52 BitmapUsed by:53
Symbol 53 GraphicUses:52Used by:110
Symbol 54 BitmapUsed by:55
Symbol 55 GraphicUses:54Used by:110
Symbol 56 BitmapUsed by:57
Symbol 57 GraphicUses:56Used by:110
Symbol 58 BitmapUsed by:59
Symbol 59 GraphicUses:58Used by:110
Symbol 60 BitmapUsed by:61
Symbol 61 GraphicUses:60Used by:110
Symbol 62 BitmapUsed by:63
Symbol 63 GraphicUses:62Used by:110
Symbol 64 BitmapUsed by:65
Symbol 65 GraphicUses:64Used by:110
Symbol 66 BitmapUsed by:67
Symbol 67 GraphicUses:66Used by:110
Symbol 68 BitmapUsed by:69
Symbol 69 GraphicUses:68Used by:110
Symbol 70 BitmapUsed by:71
Symbol 71 GraphicUses:70Used by:110
Symbol 72 BitmapUsed by:73
Symbol 73 GraphicUses:72Used by:110
Symbol 74 BitmapUsed by:75
Symbol 75 GraphicUses:74Used by:110
Symbol 76 BitmapUsed by:77
Symbol 77 GraphicUses:76Used by:110
Symbol 78 BitmapUsed by:79
Symbol 79 GraphicUses:78Used by:110
Symbol 80 BitmapUsed by:81
Symbol 81 GraphicUses:80Used by:110
Symbol 82 BitmapUsed by:83
Symbol 83 GraphicUses:82Used by:110
Symbol 84 BitmapUsed by:85
Symbol 85 GraphicUses:84Used by:110
Symbol 86 BitmapUsed by:87
Symbol 87 GraphicUses:86Used by:110
Symbol 88 BitmapUsed by:89
Symbol 89 GraphicUses:88Used by:110
Symbol 90 BitmapUsed by:91
Symbol 91 GraphicUses:90Used by:110
Symbol 92 BitmapUsed by:93
Symbol 93 GraphicUses:92Used by:110
Symbol 94 BitmapUsed by:95
Symbol 95 GraphicUses:94Used by:110
Symbol 96 BitmapUsed by:97
Symbol 97 GraphicUses:96Used by:110
Symbol 98 BitmapUsed by:99
Symbol 99 GraphicUses:98Used by:110
Symbol 100 BitmapUsed by:101
Symbol 101 GraphicUses:100Used by:110
Symbol 102 BitmapUsed by:103
Symbol 103 GraphicUses:102Used by:110
Symbol 104 BitmapUsed by:105
Symbol 105 GraphicUses:104Used by:110
Symbol 106 BitmapUsed by:107
Symbol 107 GraphicUses:106Used by:110
Symbol 108 BitmapUsed by:109
Symbol 109 GraphicUses:108Used by:110
Symbol 110 MovieClip {com.king.midasmahjong.Brick}Uses:24 25 27 22 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 101 103 105 107 109
Symbol 111 BitmapUsed by:112
Symbol 112 GraphicUses:111Used by:113
Symbol 113 MovieClip {Level1TimeLamp}Uses:112
Symbol 114 BitmapUsed by:115
Symbol 115 GraphicUses:114Used by:116
Symbol 116 MovieClip {levelAnimationHue2}Uses:115
Symbol 117 BitmapUsed by:120
Symbol 118 BitmapUsed by:120
Symbol 119 BitmapUsed by:120
Symbol 120 GraphicUses:117 118 119Used by:121
Symbol 121 MovieClip {com.king.midasmahjong.BrickShadow}Uses:120
Symbol 122 GraphicUsed by:124
Symbol 123 GraphicUsed by:124
Symbol 124 MovieClip {PlayBtn}Uses:122 123Used by:128
Symbol 125 FontUsed by:126 127
Symbol 126 EditableTextUses:125Used by:128
Symbol 127 EditableTextUses:125Used by:128
Symbol 128 MovieClip {com.king.midasmahjong.notlive.ReplayControl}Uses:124 126 127
Symbol 129 GraphicUsed by:133
Symbol 130 GraphicUsed by:133
Symbol 131 GraphicUsed by:133
Symbol 132 GraphicUsed by:133
Symbol 133 MovieClip {ExitBtn}Uses:129 130 131 132Used by:604
Symbol 134 BitmapUsed by:135
Symbol 135 GraphicUses:134Used by:136
Symbol 136 MovieClip {ButtonPanel}Uses:135Used by:604
Symbol 137 FontUsed by:138 152 155 157 502 569 580 582 583 584 585 586 587
Symbol 138 EditableTextUses:15 137Used by:139
Symbol 139 MovieClipUses:138Used by:140
Symbol 140 MovieClip {com.king.midasmahjong.GlideInLabel}Uses:139Used by:604
Symbol 141 BitmapUsed by:142
Symbol 142 GraphicUses:141Used by:153 590
Symbol 143 EditableTextUses:15Used by:153
Symbol 144 EditableTextUses:15Used by:153
Symbol 145 EditableTextUses:15Used by:153
Symbol 146 EditableTextUses:15Used by:153
Symbol 147 BitmapUsed by:148
Symbol 148 GraphicUses:147Used by:153
Symbol 149 BitmapUsed by:150
Symbol 150 GraphicUses:149Used by:151
Symbol 151 ButtonUses:150Used by:153
Symbol 152 EditableTextUses:15 137Used by:153
Symbol 153 MovieClip {Intro}Uses:142 143 144 145 146 148 151 152Used by:604
Symbol 154 GraphicUsed by:159
Symbol 155 EditableTextUses:15 137Used by:156
Symbol 156 MovieClipUses:155Used by:159
Symbol 157 EditableTextUses:15 137Used by:158
Symbol 158 MovieClipUses:157Used by:159
Symbol 159 MovieClip {com.king.midasmahjong.EndReasonSign}Uses:154 156 158Used by:604
Symbol 160 GraphicUsed by:161
Symbol 161 MovieClipUses:160Used by:162
Symbol 162 MovieClip {Transitionglow}Uses:161Used by:604
Symbol 163 BitmapUsed by:164 567
Symbol 164 GraphicUses:163Used by:498
Symbol 165 GraphicUsed by:498
Symbol 166 GraphicUsed by:167 213
Symbol 167 MovieClipUses:166Used by:498 579
Symbol 168 GraphicUsed by:169
Symbol 169 MovieClipUses:168Used by:174
Symbol 170 GraphicUsed by:171
Symbol 171 MovieClipUses:170Used by:174
Symbol 172 GraphicUsed by:173
Symbol 173 MovieClipUses:172Used by:174
Symbol 174 MovieClipUses:169 171 173Used by:498 579
Symbol 175 GraphicUsed by:498 579
Symbol 176 GraphicUsed by:179
Symbol 177 GraphicUsed by:178
Symbol 178 MovieClipUses:177Used by:179
Symbol 179 MovieClipUses:176 178Used by:498 579
Symbol 180 GraphicUsed by:181
Symbol 181 MovieClipUses:180Used by:498 579
Symbol 182 GraphicUsed by:498 579
Symbol 183 GraphicUsed by:192
Symbol 184 GraphicUsed by:185
Symbol 185 MovieClipUses:184Used by:192
Symbol 186 GraphicUsed by:187
Symbol 187 MovieClipUses:186Used by:192
Symbol 188 GraphicUsed by:189
Symbol 189 MovieClipUses:188Used by:192
Symbol 190 GraphicUsed by:191
Symbol 191 MovieClipUses:190Used by:192
Symbol 192 MovieClipUses:183 185 187 189 191Used by:498 579
Symbol 193 GraphicUsed by:194
Symbol 194 MovieClipUses:193Used by:498 579
Symbol 195 GraphicUsed by:196
Symbol 196 MovieClipUses:195Used by:498 579
Symbol 197 GraphicUsed by:198
Symbol 198 MovieClipUses:197Used by:498 579
Symbol 199 GraphicUsed by:200
Symbol 200 MovieClipUses:199Used by:498 579
Symbol 201 GraphicUsed by:202
Symbol 202 MovieClipUses:201Used by:498 579
Symbol 203 GraphicUsed by:204
Symbol 204 MovieClipUses:203Used by:498 579
Symbol 205 GraphicUsed by:206
Symbol 206 MovieClipUses:205Used by:498 579
Symbol 207 MovieClipUsed by:498 579
Symbol 208 GraphicUsed by:209
Symbol 209 MovieClipUses:208Used by:498 579
Symbol 210 GraphicUsed by:211
Symbol 211 MovieClipUses:210Used by:498 579
Symbol 212 GraphicUsed by:498 579
Symbol 213 MovieClipUses:166Used by:498 579
Symbol 214 GraphicUsed by:215
Symbol 215 MovieClipUses:214Used by:498 579
Symbol 216 GraphicUsed by:217
Symbol 217 MovieClipUses:216Used by:498 579
Symbol 218 GraphicUsed by:219
Symbol 219 MovieClipUses:218Used by:498 579
Symbol 220 GraphicUsed by:498 579
Symbol 221 GraphicUsed by:222
Symbol 222 MovieClipUses:221Used by:498 579
Symbol 223 GraphicUsed by:224
Symbol 224 MovieClipUses:223Used by:498 579
Symbol 225 GraphicUsed by:498 579
Symbol 226 GraphicUsed by:227
Symbol 227 MovieClipUses:226Used by:498 579
Symbol 228 GraphicUsed by:229
Symbol 229 MovieClipUses:228Used by:498 579
Symbol 230 GraphicUsed by:231
Symbol 231 MovieClipUses:230Used by:498 579
Symbol 232 ShapeTweeningUsed by:235
Symbol 233 ShapeTweeningUsed by:235
Symbol 234 GraphicUsed by:235
Symbol 235 MovieClipUses:232 233 234Used by:498
Symbol 236 EditableTextUses:15Used by:498
Symbol 237 EditableTextUses:15Used by:498
Symbol 238 EditableTextUses:15Used by:498
Symbol 239 EditableTextUses:15Used by:498
Symbol 240 EditableTextUses:15Used by:498
Symbol 241 EditableTextUses:15Used by:498
Symbol 242 GraphicUsed by:498
Symbol 243 GraphicUsed by:244 297
Symbol 244 MovieClipUses:243Used by:498 579
Symbol 245 GraphicUsed by:246
Symbol 246 MovieClipUses:245Used by:251
Symbol 247 GraphicUsed by:248
Symbol 248 MovieClipUses:247Used by:251
Symbol 249 GraphicUsed by:250
Symbol 250 MovieClipUses:249Used by:251
Symbol 251 MovieClipUses:246 248 250Used by:498 579
Symbol 252 GraphicUsed by:498 579
Symbol 253 GraphicUsed by:256
Symbol 254 GraphicUsed by:255
Symbol 255 MovieClipUses:254Used by:256
Symbol 256 MovieClipUses:253 255Used by:498 579
Symbol 257 GraphicUsed by:258
Symbol 258 MovieClipUses:257Used by:498 579
Symbol 259 GraphicUsed by:498 579
Symbol 260 GraphicUsed by:269
Symbol 261 GraphicUsed by:262
Symbol 262 MovieClipUses:261Used by:269
Symbol 263 GraphicUsed by:264
Symbol 264 MovieClipUses:263Used by:269
Symbol 265 GraphicUsed by:266
Symbol 266 MovieClipUses:265Used by:269
Symbol 267 GraphicUsed by:268
Symbol 268 MovieClipUses:267Used by:269
Symbol 269 MovieClipUses:260 262 264 266 268Used by:498 579
Symbol 270 GraphicUsed by:271
Symbol 271 MovieClipUses:270Used by:498 579
Symbol 272 GraphicUsed by:273
Symbol 273 MovieClipUses:272Used by:498 579
Symbol 274 GraphicUsed by:275
Symbol 275 MovieClipUses:274Used by:498 579
Symbol 276 GraphicUsed by:277
Symbol 277 MovieClipUses:276Used by:498 579
Symbol 278 GraphicUsed by:279
Symbol 279 MovieClipUses:278Used by:498 579
Symbol 280 GraphicUsed by:281
Symbol 281 MovieClipUses:280Used by:498 579
Symbol 282 GraphicUsed by:283
Symbol 283 MovieClipUses:282Used by:498 579
Symbol 284 GraphicUsed by:285
Symbol 285 MovieClipUses:284Used by:498 579
Symbol 286 GraphicUsed by:498
Symbol 287 GraphicUsed by:288
Symbol 288 MovieClipUses:287Used by:498 579
Symbol 289 GraphicUsed by:290
Symbol 290 MovieClipUses:289Used by:498 579
Symbol 291 GraphicUsed by:292
Symbol 292 MovieClipUses:291Used by:498 579
Symbol 293 GraphicUsed by:294
Symbol 294 MovieClipUses:293Used by:498 579
Symbol 295 GraphicUsed by:296
Symbol 296 MovieClipUses:295Used by:498 579
Symbol 297 MovieClipUses:243Used by:498 579
Symbol 298 GraphicUsed by:299
Symbol 299 MovieClipUses:298Used by:498 579
Symbol 300 GraphicUsed by:301
Symbol 301 MovieClipUses:300Used by:498 579
Symbol 302 GraphicUsed by:303
Symbol 303 MovieClipUses:302Used by:498 579
Symbol 304 GraphicUsed by:498
Symbol 305 GraphicUsed by:306 360
Symbol 306 MovieClipUses:305Used by:498 579
Symbol 307 GraphicUsed by:308
Symbol 308 MovieClipUses:307Used by:313
Symbol 309 GraphicUsed by:310
Symbol 310 MovieClipUses:309Used by:313
Symbol 311 GraphicUsed by:312
Symbol 312 MovieClipUses:311Used by:313
Symbol 313 MovieClipUses:308 310 312Used by:498 579
Symbol 314 GraphicUsed by:498 579
Symbol 315 GraphicUsed by:318
Symbol 316 GraphicUsed by:317
Symbol 317 MovieClipUses:316Used by:318
Symbol 318 MovieClipUses:315 317Used by:498 579
Symbol 319 GraphicUsed by:320
Symbol 320 MovieClipUses:319Used by:498 579
Symbol 321 GraphicUsed by:498 579
Symbol 322 GraphicUsed by:331
Symbol 323 GraphicUsed by:324
Symbol 324 MovieClipUses:323Used by:331
Symbol 325 GraphicUsed by:326
Symbol 326 MovieClipUses:325Used by:331
Symbol 327 GraphicUsed by:328
Symbol 328 MovieClipUses:327Used by:331
Symbol 329 GraphicUsed by:330
Symbol 330 MovieClipUses:329Used by:331
Symbol 331 MovieClipUses:322 324 326 328 330Used by:498 579
Symbol 332 GraphicUsed by:333
Symbol 333 MovieClipUses:332Used by:498 579
Symbol 334 GraphicUsed by:335
Symbol 335 MovieClipUses:334Used by:498 579
Symbol 336 GraphicUsed by:337
Symbol 337 MovieClipUses:336Used by:498 579
Symbol 338 GraphicUsed by:339
Symbol 339 MovieClipUses:338Used by:498 579
Symbol 340 GraphicUsed by:341
Symbol 341 MovieClipUses:340Used by:498 579
Symbol 342 GraphicUsed by:343
Symbol 343 MovieClipUses:342Used by:498 579
Symbol 344 GraphicUsed by:345
Symbol 345 MovieClipUses:344Used by:498 579
Symbol 346 GraphicUsed by:347
Symbol 347 MovieClipUses:346Used by:498 579
Symbol 348 GraphicUsed by:498
Symbol 349 GraphicUsed by:350
Symbol 350 MovieClipUses:349Used by:498 579
Symbol 351 GraphicUsed by:352
Symbol 352 MovieClipUses:351Used by:498 579
Symbol 353 GraphicUsed by:498 579
Symbol 354 GraphicUsed by:355
Symbol 355 MovieClipUses:354Used by:498 579
Symbol 356 GraphicUsed by:357
Symbol 357 MovieClipUses:356Used by:498 579
Symbol 358 GraphicUsed by:359
Symbol 359 MovieClipUses:358Used by:498 579
Symbol 360 MovieClipUses:305Used by:498 579
Symbol 361 GraphicUsed by:362
Symbol 362 MovieClipUses:361Used by:498 579
Symbol 363 GraphicUsed by:364
Symbol 364 MovieClipUses:363Used by:498 579
Symbol 365 GraphicUsed by:366
Symbol 366 MovieClipUses:365Used by:498 579
Symbol 367 GraphicUsed by:498
Symbol 368 GraphicUsed by:369
Symbol 369 MovieClipUses:368Used by:498 579
Symbol 370 GraphicUsed by:371
Symbol 371 MovieClipUses:370Used by:376
Symbol 372 GraphicUsed by:373
Symbol 373 MovieClipUses:372Used by:376
Symbol 374 GraphicUsed by:375
Symbol 375 MovieClipUses:374Used by:376
Symbol 376 MovieClipUses:371 373 375Used by:498 579
Symbol 377 GraphicUsed by:498 579
Symbol 378 GraphicUsed by:381
Symbol 379 GraphicUsed by:380
Symbol 380 MovieClipUses:379Used by:381
Symbol 381 MovieClipUses:378 380Used by:498 579
Symbol 382 GraphicUsed by:383
Symbol 383 MovieClipUses:382Used by:498 579
Symbol 384 GraphicUsed by:498 579
Symbol 385 GraphicUsed by:394
Symbol 386 GraphicUsed by:387
Symbol 387 MovieClipUses:386Used by:394
Symbol 388 GraphicUsed by:389
Symbol 389 MovieClipUses:388Used by:394
Symbol 390 GraphicUsed by:391
Symbol 391 MovieClipUses:390Used by:394
Symbol 392 GraphicUsed by:393
Symbol 393 MovieClipUses:392Used by:394
Symbol 394 MovieClipUses:385 387 389 391 393Used by:498 579
Symbol 395 GraphicUsed by:396
Symbol 396 MovieClipUses:395Used by:498 579
Symbol 397 GraphicUsed by:398
Symbol 398 MovieClipUses:397Used by:498 579
Symbol 399 GraphicUsed by:400
Symbol 400 MovieClipUses:399Used by:498 579
Symbol 401 GraphicUsed by:402
Symbol 402 MovieClipUses:401Used by:498 579
Symbol 403 GraphicUsed by:404
Symbol 404 MovieClipUses:403Used by:498 579
Symbol 405 GraphicUsed by:406
Symbol 406 MovieClipUses:405Used by:498 579
Symbol 407 GraphicUsed by:408
Symbol 408 MovieClipUses:407Used by:498 579
Symbol 409 GraphicUsed by:410
Symbol 410 MovieClipUses:409Used by:498 579
Symbol 411 GraphicUsed by:498
Symbol 412 GraphicUsed by:413
Symbol 413 MovieClipUses:412Used by:498 579
Symbol 414 GraphicUsed by:415
Symbol 415 MovieClipUses:414Used by:498 579
Symbol 416 GraphicUsed by:498 579
Symbol 417 GraphicUsed by:418
Symbol 418 MovieClipUses:417Used by:498 579
Symbol 419 GraphicUsed by:420
Symbol 420 MovieClipUses:419Used by:498 579
Symbol 421 GraphicUsed by:422
Symbol 422 MovieClipUses:421Used by:498 579
Symbol 423 GraphicUsed by:424
Symbol 424 MovieClipUses:423Used by:498 579
Symbol 425 GraphicUsed by:426
Symbol 426 MovieClipUses:425Used by:498 579
Symbol 427 GraphicUsed by:428
Symbol 428 MovieClipUses:427Used by:498 579
Symbol 429 GraphicUsed by:430
Symbol 430 MovieClipUses:429Used by:498 579
Symbol 431 GraphicUsed by:498
Symbol 432 GraphicUsed by:433 479
Symbol 433 MovieClipUses:432Used by:498 579
Symbol 434 GraphicUsed by:435
Symbol 435 MovieClipUses:434Used by:440
Symbol 436 GraphicUsed by:437
Symbol 437 MovieClipUses:436Used by:440
Symbol 438 GraphicUsed by:439
Symbol 439 MovieClipUses:438Used by:440
Symbol 440 MovieClipUses:435 437 439Used by:498 579
Symbol 441 GraphicUsed by:498 579
Symbol 442 GraphicUsed by:445
Symbol 443 GraphicUsed by:444
Symbol 444 MovieClipUses:443Used by:445
Symbol 445 MovieClipUses:442 444Used by:498 579
Symbol 446 GraphicUsed by:447
Symbol 447 MovieClipUses:446Used by:498 579
Symbol 448 GraphicUsed by:498 579
Symbol 449 GraphicUsed by:459
Symbol 450 GraphicUsed by:459
Symbol 451 GraphicUsed by:452
Symbol 452 MovieClipUses:451Used by:459
Symbol 453 GraphicUsed by:454
Symbol 454 MovieClipUses:453Used by:459
Symbol 455 GraphicUsed by:456
Symbol 456 MovieClipUses:455Used by:459
Symbol 457 GraphicUsed by:458
Symbol 458 MovieClipUses:457Used by:459
Symbol 459 MovieClipUses:449 450 452 454 456 458Used by:498 579
Symbol 460 GraphicUsed by:461
Symbol 461 MovieClipUses:460Used by:498 579
Symbol 462 GraphicUsed by:463
Symbol 463 MovieClipUses:462Used by:498 579
Symbol 464 GraphicUsed by:465
Symbol 465 MovieClipUses:464Used by:498 579
Symbol 466 GraphicUsed by:467
Symbol 467 MovieClipUses:466Used by:498 579
Symbol 468 GraphicUsed by:469
Symbol 469 MovieClipUses:468Used by:498 579
Symbol 470 GraphicUsed by:471
Symbol 471 MovieClipUses:470Used by:498 579
Symbol 472 GraphicUsed by:473
Symbol 473 MovieClipUses:472Used by:498 579
Symbol 474 GraphicUsed by:475
Symbol 475 MovieClipUses:474Used by:498 579
Symbol 476 GraphicUsed by:477
Symbol 477 MovieClipUses:476Used by:498 579
Symbol 478 GraphicUsed by:498 579
Symbol 479 MovieClipUses:432Used by:498 579
Symbol 480 GraphicUsed by:481
Symbol 481 MovieClipUses:480Used by:498 579
Symbol 482 GraphicUsed by:483
Symbol 483 MovieClipUses:482Used by:498 579
Symbol 484 GraphicUsed by:485
Symbol 485 MovieClipUses:484Used by:498 579
Symbol 486 GraphicUsed by:498
Symbol 487 GraphicUsed by:488
Symbol 488 MovieClipUses:487Used by:498 579
Symbol 489 GraphicUsed by:490
Symbol 490 MovieClipUses:489Used by:498 579
Symbol 491 GraphicUsed by:498 579
Symbol 492 GraphicUsed by:493
Symbol 493 MovieClipUses:492Used by:498 579
Symbol 494 GraphicUsed by:495
Symbol 495 MovieClipUses:494Used by:498 579
Symbol 496 GraphicUsed by:497
Symbol 497 MovieClipUses:496Used by:498 579
Symbol 498 MovieClip {com.king.midasmahjong.TimeDisplay}Uses:164 165 167 174 175 179 181 182 192 194 196 198 200 202 204 206 207 209 211 212 213 215 217 219 220 222 224 225 227 229 231 235 236 237 238 239 240 241 242 244 251 252 256 258 259 269 271 273 275 277 279 281 283 285 286 288 290 292 294 296 297 299 301 303 304 306 313 314 318 320 321 331 333 335 337 339 341 343 345 347 348 350 352 353 355 357 359 360 362 364 366 367 369 376 377 381 383 384 394 396 398 400 402 404 406 408 410 411 413 415 416 418 420 422 424 426 428 430 431 433 440 441 445 447 448 459 461 463 465 467 469 471 473 475 477 478 479 481 483 485 486 488 490 491 493 495 497Used by:604
Symbol 499 MovieClip {com.king.midasmahjong.MahjongTiles}Used by:604
Symbol 500 BitmapUsed by:501
Symbol 501 GraphicUses:500Used by:505
Symbol 502 EditableTextUses:15 137Used by:505
Symbol 503 BitmapUsed by:504
Symbol 504 GraphicUses:503Used by:505
Symbol 505 MovieClip {com.king.midasmahjong.ShuffleButton}Uses:501 502 504Used by:604
Symbol 506 BitmapUsed by:507
Symbol 507 GraphicUses:506Used by:508
Symbol 508 MovieClip {Level1White}Uses:507Used by:512
Symbol 509 BitmapUsed by:510
Symbol 510 GraphicUses:509Used by:511
Symbol 511 MovieClip {Level1Color}Uses:510Used by:512
Symbol 512 MovieClip {LevelAnimation1}Uses:511 508Used by:604
Symbol 513 BitmapUsed by:514
Symbol 514 GraphicUses:513Used by:515
Symbol 515 MovieClip {Level2White}Uses:514Used by:519
Symbol 516 BitmapUsed by:517
Symbol 517 GraphicUses:516Used by:518
Symbol 518 MovieClip {Level2Color}Uses:517Used by:519
Symbol 519 MovieClip {LevelAnimation2}Uses:518 515Used by:604
Symbol 520 BitmapUsed by:521
Symbol 521 GraphicUses:520Used by:522
Symbol 522 MovieClip {Level3Color}Uses:521Used by:526
Symbol 523 BitmapUsed by:524
Symbol 524 GraphicUses:523Used by:525
Symbol 525 MovieClipUses:524Used by:526
Symbol 526 MovieClip {LevelAnimation3}Uses:522 525Used by:604
Symbol 527 BitmapUsed by:528
Symbol 528 GraphicUses:527Used by:529
Symbol 529 MovieClip {Level4White}Uses:528Used by:533
Symbol 530 BitmapUsed by:531
Symbol 531 GraphicUses:530Used by:532
Symbol 532 MovieClip {Level4Color}Uses:531Used by:533
Symbol 533 MovieClip {LevelAnimation4}Uses:532 529Used by:604
Symbol 534 BitmapUsed by:535
Symbol 535 GraphicUses:534Used by:536
Symbol 536 MovieClip {Level5White}Uses:535Used by:540
Symbol 537 BitmapUsed by:538
Symbol 538 GraphicUses:537Used by:539
Symbol 539 MovieClip {Level5Color}Uses:538Used by:540
Symbol 540 MovieClip {LevelAnimation5}Uses:539 536Used by:604
Symbol 541 BitmapUsed by:542
Symbol 542 GraphicUses:541Used by:543
Symbol 543 MovieClipUses:542Used by:604
Symbol 544 BitmapUsed by:545
Symbol 545 GraphicUses:544Used by:546
Symbol 546 MovieClipUses:545Used by:604
Symbol 547 BitmapUsed by:548
Symbol 548 GraphicUses:547Used by:549
Symbol 549 MovieClipUses:548Used by:604
Symbol 550 BitmapUsed by:551
Symbol 551 GraphicUses:550Used by:552
Symbol 552 MovieClipUses:551Used by:604
Symbol 553 BitmapUsed by:554
Symbol 554 GraphicUses:553Used by:555
Symbol 555 MovieClipUses:554Used by:604
Symbol 556 BitmapUsed by:557
Symbol 557 GraphicUses:556Used by:566
Symbol 558 BitmapUsed by:559
Symbol 559 GraphicUses:558Used by:566
Symbol 560 BitmapUsed by:561
Symbol 561 GraphicUses:560Used by:566
Symbol 562 BitmapUsed by:563
Symbol 563 GraphicUses:562Used by:566
Symbol 564 BitmapUsed by:565
Symbol 565 GraphicUses:564Used by:566
Symbol 566 MovieClipUses:557 559 561 563 565Used by:604
Symbol 567 GraphicUses:163Used by:579
Symbol 568 GraphicUsed by:579
Symbol 569 EditableTextUses:15 137Used by:579
Symbol 570 EditableTextUses:15Used by:579
Symbol 571 GraphicUsed by:579
Symbol 572 GraphicUsed by:579
Symbol 573 GraphicUsed by:579
Symbol 574 GraphicUsed by:579
Symbol 575 GraphicUsed by:579
Symbol 576 GraphicUsed by:579
Symbol 577 GraphicUsed by:579
Symbol 578 GraphicUsed by:579
Symbol 579 MovieClipUses:567 568 167 174 175 179 181 182 192 194 196 198 200 202 204 206 207 209 211 212 213 215 217 219 220 222 224 225 227 229 231 569 570 571 244 251 252 256 258 259 269 271 273 275 277 279 281 283 285 572 288 290 292 294 296 297 299 301 303 573 306 313 314 318 320 321 331 333 335 337 339 341 343 345 347 574 350 352 353 355 357 359 360 362 364 366 575 369 376 377 381 383 384 394 396 398 400 402 404 406 408 410 576 413 415 416 418 420 422 424 426 428 430 577 433 440 441 445 447 448 459 461 463 465 467 469 471 473 475 477 478 479 481 483 485 578 488 490 491 493 495 497Used by:604
Symbol 580 EditableTextUses:15 137Used by:581
Symbol 581 MovieClipUses:580Used by:589
Symbol 582 EditableTextUses:15 137Used by:588
Symbol 583 EditableTextUses:15 137Used by:588
Symbol 584 EditableTextUses:15 137Used by:588
Symbol 585 EditableTextUses:15 137Used by:588
Symbol 586 EditableTextUses:15 137Used by:588
Symbol 587 EditableTextUses:15 137Used by:588
Symbol 588 MovieClipUses:582 583 584 585 586 587Used by:589
Symbol 589 MovieClipUses:581 588Used by:590
Symbol 590 MovieClipUses:142 589Used by:604
Symbol 591 GraphicUsed by:592
Symbol 592 MovieClipUses:591Used by:604
Symbol 593 GraphicUsed by:594
Symbol 594 MovieClipUses:593Used by:604
Symbol 595 GraphicUsed by:599 603
Symbol 596 GraphicUsed by:599
Symbol 597 GraphicUsed by:599
Symbol 598 GraphicUsed by:599
Symbol 599 MovieClipUses:595 596 597 598Used by:604
Symbol 600 GraphicUsed by:603
Symbol 601 GraphicUsed by:603
Symbol 602 GraphicUsed by:603
Symbol 603 MovieClipUses:595 600 601 602Used by:604
Symbol 604 MovieClip {com.king.midasmahjong.Gui}Uses:543 546 549 552 555 540 533 526 519 512 505 566 499 498 579 162 159 590 153 592 140 594 136 599 603 133Used by:Timeline

Instance Names

"gui"Frame 1Symbol 604 MovieClip {com.king.midasmahjong.Gui}
"textField"Symbol 17 MovieClip {ScorePopup} Frame 1Symbol 16 EditableText
"selected"Symbol 110 MovieClip {com.king.midasmahjong.Brick} Frame 1Symbol 25 MovieClip
"missed"Symbol 110 MovieClip {com.king.midasmahjong.Brick} Frame 1Symbol 27 MovieClip
"rolledOver"Symbol 110 MovieClip {com.king.midasmahjong.Brick} Frame 1Symbol 22 MovieClip {RollOver}
"playBtn"Symbol 128 MovieClip {com.king.midasmahjong.notlive.ReplayControl} Frame 1Symbol 124 MovieClip {PlayBtn}
"stopTickTf"Symbol 128 MovieClip {com.king.midasmahjong.notlive.ReplayControl} Frame 1Symbol 126 EditableText
"speedTf"Symbol 128 MovieClip {com.king.midasmahjong.notlive.ReplayControl} Frame 1Symbol 127 EditableText
"textField"Symbol 139 MovieClip Frame 1Symbol 138 EditableText
"textMc"Symbol 140 MovieClip {com.king.midasmahjong.GlideInLabel} Frame 1Symbol 139 MovieClip
"countDownDigitTF"Symbol 153 MovieClip {Intro} Frame 1Symbol 143 EditableText
"introTf"Symbol 153 MovieClip {Intro} Frame 1Symbol 144 EditableText
"countDownText2"Symbol 153 MovieClip {Intro} Frame 1Symbol 145 EditableText
"countDownText1"Symbol 153 MovieClip {Intro} Frame 1Symbol 146 EditableText
"startButton"Symbol 153 MovieClip {Intro} Frame 1Symbol 151 Button
"startBtnTf"Symbol 153 MovieClip {Intro} Frame 1Symbol 152 EditableText
"textField"Symbol 156 MovieClip Frame 1Symbol 155 EditableText
"textField"Symbol 158 MovieClip Frame 1Symbol 157 EditableText
"textMc"Symbol 159 MovieClip {com.king.midasmahjong.EndReasonSign} Frame 1Symbol 156 MovieClip
"openGameTextMc"Symbol 159 MovieClip {com.king.midasmahjong.EndReasonSign} Frame 1Symbol 158 MovieClip
"glow"Symbol 498 MovieClip {com.king.midasmahjong.TimeDisplay} Frame 1Symbol 235 MovieClip
"seconds10"Symbol 498 MovieClip {com.king.midasmahjong.TimeDisplay} Frame 1Symbol 236 EditableText
"minutes1"Symbol 498 MovieClip {com.king.midasmahjong.TimeDisplay} Frame 1Symbol 237 EditableText
"minutes10"Symbol 498 MovieClip {com.king.midasmahjong.TimeDisplay} Frame 1Symbol 238 EditableText
"colon"Symbol 498 MovieClip {com.king.midasmahjong.TimeDisplay} Frame 1Symbol 239 EditableText
"seconds1"Symbol 498 MovieClip {com.king.midasmahjong.TimeDisplay} Frame 1Symbol 240 EditableText
"label"Symbol 498 MovieClip {com.king.midasmahjong.TimeDisplay} Frame 1Symbol 241 EditableText
"textField"Symbol 505 MovieClip {com.king.midasmahjong.ShuffleButton} Frame 1Symbol 502 EditableText
"color"Symbol 512 MovieClip {LevelAnimation1} Frame 1Symbol 511 MovieClip {Level1Color}
"outline"Symbol 512 MovieClip {LevelAnimation1} Frame 1Symbol 508 MovieClip {Level1White}
"glow"Symbol 512 MovieClip {LevelAnimation1} Frame 1Symbol 508 MovieClip {Level1White}
"color"Symbol 519 MovieClip {LevelAnimation2} Frame 1Symbol 518 MovieClip {Level2Color}
"outline"Symbol 519 MovieClip {LevelAnimation2} Frame 1Symbol 515 MovieClip {Level2White}
"glow"Symbol 519 MovieClip {LevelAnimation2} Frame 1Symbol 515 MovieClip {Level2White}
"color"Symbol 526 MovieClip {LevelAnimation3} Frame 1Symbol 522 MovieClip {Level3Color}
"outline"Symbol 526 MovieClip {LevelAnimation3} Frame 1Symbol 525 MovieClip
"glow"Symbol 526 MovieClip {LevelAnimation3} Frame 1Symbol 525 MovieClip
"color"Symbol 533 MovieClip {LevelAnimation4} Frame 1Symbol 532 MovieClip {Level4Color}
"outline"Symbol 533 MovieClip {LevelAnimation4} Frame 1Symbol 529 MovieClip {Level4White}
"glow"Symbol 533 MovieClip {LevelAnimation4} Frame 1Symbol 529 MovieClip {Level4White}
"color"Symbol 540 MovieClip {LevelAnimation5} Frame 1Symbol 539 MovieClip {Level5Color}
"outline"Symbol 540 MovieClip {LevelAnimation5} Frame 1Symbol 536 MovieClip {Level5White}
"glow"Symbol 540 MovieClip {LevelAnimation5} Frame 1Symbol 536 MovieClip {Level5White}
"score"Symbol 579 MovieClip Frame 1Symbol 569 EditableText
"label"Symbol 579 MovieClip Frame 1Symbol 570 EditableText
"gameOverLbl"Symbol 581 MovieClip Frame 1Symbol 580 EditableText
"scoreLbl"Symbol 588 MovieClip Frame 1Symbol 582 EditableText
"scoreDigitTf"Symbol 588 MovieClip Frame 1Symbol 583 EditableText
"timeBonusLbl"Symbol 588 MovieClip Frame 1Symbol 584 EditableText
"timeBonusDigitTf"Symbol 588 MovieClip Frame 1Symbol 585 EditableText
"totalScoreLbl"Symbol 588 MovieClip Frame 1Symbol 586 EditableText
"totalScoreDigitTf"Symbol 588 MovieClip Frame 1Symbol 587 EditableText
"gameOverLblMc"Symbol 589 MovieClip Frame 1Symbol 581 MovieClip
"gameOverSmallerTexts"Symbol 589 MovieClip Frame 1Symbol 588 MovieClip
"gameOverTextFields"Symbol 590 MovieClip Frame 1Symbol 589 MovieClip
"background4"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 543 MovieClip
"background3"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 546 MovieClip
"background2"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 549 MovieClip
"background1"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 552 MovieClip
"background0"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 555 MovieClip
"levelAnimation5"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 540 MovieClip {LevelAnimation5}
"levelAnimation4"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 533 MovieClip {LevelAnimation4}
"levelAnimation3"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 526 MovieClip {LevelAnimation3}
"levelAnimation2"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 519 MovieClip {LevelAnimation2}
"levelAnimation1"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 512 MovieClip {LevelAnimation1}
"shuffle"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 505 MovieClip {com.king.midasmahjong.ShuffleButton}
"top"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 566 MovieClip
"pileOfBricks"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 499 MovieClip {com.king.midasmahjong.MahjongTiles}
"timeDisplay"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 498 MovieClip {com.king.midasmahjong.TimeDisplay}
"scoreDisplay"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 579 MovieClip
"transitionGlow"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 162 MovieClip {Transitionglow}
"gameEnding"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 159 MovieClip {com.king.midasmahjong.EndReasonSign}
"endSign"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 590 MovieClip
"introSign"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 153 MovieClip {Intro}
"bigInvisibleButton"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 592 MovieClip
"exitGlideInLabel"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 140 MovieClip {com.king.midasmahjong.GlideInLabel}
"soundGlideInLabel"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 140 MovieClip {com.king.midasmahjong.GlideInLabel}
"musicGlideInLabel"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 140 MovieClip {com.king.midasmahjong.GlideInLabel}
"buttonPanel"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 136 MovieClip {ButtonPanel}
"musicToggleBtn"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 599 MovieClip
"soundToggleBtn"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 603 MovieClip
"exitBtn"Symbol 604 MovieClip {com.king.midasmahjong.Gui} Frame 1Symbol 133 MovieClip {ExitBtn}

Special Tags

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

Labels

"still"Symbol 124 MovieClip {PlayBtn} Frame 1
"running"Symbol 124 MovieClip {PlayBtn} Frame 2
"normal"Symbol 133 MovieClip {ExitBtn} Frame 1
"hoover"Symbol 133 MovieClip {ExitBtn} Frame 2
"down"Symbol 133 MovieClip {ExitBtn} Frame 3
"backgroundChange"Symbol 162 MovieClip {Transitionglow} Frame 105
"normal"Symbol 599 MovieClip Frame 1
"hoover"Symbol 599 MovieClip Frame 2
"off"Symbol 599 MovieClip Frame 3
"normal"Symbol 603 MovieClip Frame 1
"hoover"Symbol 603 MovieClip Frame 2
"off"Symbol 603 MovieClip Frame 3




https://swfchan.com/54/268277/info.shtml
Created: 15/6 -2026 21:06:04 Last modified: 15/6 -2026 21:06:04 Server time: 16/06 -2026 21:32:47