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

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

spongebob-spin-n-set.swf

This is the info page for
Flash #116383

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


Text
Real gaming challenge

Spongebob

Play

Arrange the pieces correctly to figure out
the image
To fix the position of a piece, just click
on that piece and change its
direction
The quicker you complete, the more you
score

Instructions

BACK

Score

Time

00000

00000

- for the real game -

!

Submit Score

More Games

Play Again

Congratulations

Game Over

Your Game Score

Submitting

ActionScript [AS3]

Section 1
//exel_122 (Copyofspinandsetspongebob_fla.exel_122) package Copyofspinandsetspongebob_fla { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.geom.*; import flash.net.*; import flash.media.*; import flash.ui.*; import flash.text.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.xml.*; public dynamic class exel_122 extends MovieClip { public function exel_122(){ addFrameScript(0, frame1, 104, frame105); } function frame105(){ stop(); MovieClip(this.parent).viewOnce = true; } function frame1(){ MovieClip(this.parent).viewOnce = false; } } }//package Copyofspinandsetspongebob_fla
Section 2
//g456t45611_133 (Copyofspinandsetspongebob_fla.g456t45611_133) package Copyofspinandsetspongebob_fla { import flash.display.*; import flash.text.*; public dynamic class g456t45611_133 extends MovieClip { public var Score_Txt:TextField; public var PlayAgain:SimpleButton; public var moreGames:SimpleButton; public var SubmitScore:SimpleButton; public var t:MovieClip; public var goverMc:MovieClip; public var congMc:MovieClip; } }//package Copyofspinandsetspongebob_fla
Section 3
//g456t45611copy_141 (Copyofspinandsetspongebob_fla.g456t45611copy_141) package Copyofspinandsetspongebob_fla { import flash.display.*; public dynamic class g456t45611copy_141 extends MovieClip { public var t:MovieClip; public var moreGames:SimpleButton; } }//package Copyofspinandsetspongebob_fla
Section 4
//ins_52 (Copyofspinandsetspongebob_fla.ins_52) package Copyofspinandsetspongebob_fla { import flash.display.*; public dynamic class ins_52 extends MovieClip { public function ins_52(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package Copyofspinandsetspongebob_fla
Section 5
//MainTimeline (Copyofspinandsetspongebob_fla.MainTimeline) package Copyofspinandsetspongebob_fla { import flash.display.*; import flash.events.*; import mochi.as3.*; import fl.transitions.*; import flash.utils.*; import fl.transitions.easing.*; import flash.geom.*; import flash.net.*; import flash.media.*; import flash.ui.*; import flash.text.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.xml.*; public dynamic class MainTimeline extends MovieClip { public var a2:MovieClip; public var mins1:String; public var secs1:String; public var a13:MovieClip; public var a14:MovieClip; public var a15:MovieClip; public var a16:MovieClip; public var a18:MovieClip; public var a19:MovieClip; public var a11:MovieClip; public var backbut:SimpleButton; public var a10:MovieClip; public var Mute:Boolean; public var a17:MovieClip; public var a21:MovieClip; public var a22:MovieClip; public var a23:MovieClip; public var intr:int; public var a20:MovieClip; public var a12:MovieClip; public var arr:Array; public var o:Object; public var instbut:SimpleButton; public var sndbut:MovieClip; public var wrongMusic:wrong; public var contestMenu:ContextMenu; public var reachMusic:reached; public var percentage:Number; public var boardID:String; public var Pallete:MovieClip; public var ScoreText:TextField; public var viewOnce:Boolean; public var McArr:Array; public var playbut:SimpleButton; public var resetbut:MovieClip; public var time:int; public var inter3:int; public var total_txt:TextField; public var sndon:SimpleButton; public var bullet:bg; public var mytimer:Timer; public var cong:Boolean; public var score_txt:TextField; public var timer:MovieClip; public var times:TextField; public var Level:int; public var sndoff:SimpleButton; public var levelScore:int; public var preloadMc:MovieClip; public var load_txt:TextField; public var GameScore:int; public var bulletChannel:SoundChannel; public var logo:SimpleButton; public var contextmenuItem:ContextMenuItem; public var img:MovieClip; public var preview:MovieClip; public var Pause:Boolean; public var SC1:SoundChannel; public var SC3:SoundChannel; public var SC2:SoundChannel; public var a0:MovieClip; public var a3:MovieClip; public var a4:MovieClip; public var a5:MovieClip; public var a6:MovieClip; public var a7:MovieClip; public var a8:MovieClip; public var a9:MovieClip; public var a1:MovieClip; public function MainTimeline(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7); } public function Pauseall(){ } public function submitfun(_arg1:MouseEvent){ gotoAndStop("submitpage"); } public function inst(_arg1:MouseEvent){ gotoAndStop("inst"); } function frame6(){ stop(); SoundMixer.stopAll(); if (cong){ Pallete.goverMc.visible = false; Pallete.congMc.visible = true; } else { Pallete.congMc.visible = false; Pallete.goverMc.visible = true; }; if (GameScore > 0){ Pallete.goverMc.visible = false; Pallete.congMc.visible = true; }; Pallete.PlayAgain.addEventListener(MouseEvent.CLICK, PlAgFun); Pallete.SubmitScore.addEventListener(MouseEvent.CLICK, submitfun); Pallete.moreGames.addEventListener(MouseEvent.CLICK, moregamesFunc); Pallete.Score_Txt.text = GameScore.toString(); } function frame7(){ stop(); MochiServices.connect("9d5fa924bdbc1956", root); ScoreText.text = GameScore.toString(); Pallete.moreGames.addEventListener(MouseEvent.CLICK, moregamesFunc); o = {n:[8, 9, 6, 5, 3, 0, 0, 4, 15, 4, 4, 5, 2, 9, 11, 1], f:function (_arg1:Number, _arg2:String):String{ if (_arg2.length == 16){ return (_arg2); }; return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16)))); }}; boardID = o.f(0, ""); MochiScores.showLeaderboard({boardID:boardID, score:GameScore.toString()}); } function frame1(){ stop(); preloadMc.logoload.addEventListener(MouseEvent.CLICK, logofnload); contestMenu = new ContextMenu(); contestMenu.hideBuiltInItems(); contextmenuItem = new ContextMenuItem("www.123chase.com"); contextmenuItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, Site); contestMenu.customItems.push(contextmenuItem); this.contextMenu = contestMenu; percentage = 0; total_txt.text = (String(100) + "%"); stage.addEventListener(Event.ENTER_FRAME, BeeMoving); } function frame3(){ backbut.addEventListener(MouseEvent.CLICK, backbutfun); } function frame4(){ MochiBot.track(this, "80e17bc6"); MochiBot.track(this, "179cc467"); McArr = new Array(); arr = new Array(); Mute = false; Pause = false; cong = false; GameScore = 0; inter3 = 1; mytimer = new Timer(1000, 0); bullet = new bg(); bulletChannel = bullet.play(0, int.MAX_VALUE); reachMusic = new reached(); wrongMusic = new wrong(); SC1 = new SoundChannel(); SC2 = new SoundChannel(); SC3 = new SoundChannel(); viewOnce = false; resetbut.addEventListener(MouseEvent.CLICK, viewonce); intr = 1; sndoff.addEventListener(MouseEvent.CLICK, sndop); sndon.addEventListener(MouseEvent.CLICK, sndst); logo.addEventListener(MouseEvent.CLICK, moregamesFunc); time = 120; levelScore = (time * 10); stop(); img.visible = false; McArr = new Array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23); time = 420; levelScore = (time * 10); AddEvent(McArr, currentFrame, img, false); } function frame5(){ stop(); img.visible = false; McArr = new Array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23); time = 420; levelScore = (time * 10); AddEvent(McArr, currentFrame, img, true); } public function viewonce(_arg1:MouseEvent){ if (viewOnce){ viewOnce = false; intr = setInterval(calforview, 2000); preview.visible = true; }; } function frame2(){ stop(); instbut.addEventListener(MouseEvent.CLICK, inst); playbut.addEventListener(MouseEvent.CLICK, playit); } public function AddEvent(_arg1:Array, _arg2:int, _arg3:MovieClip, _arg4:Boolean){ var _local5:*; var _local6:*; McArr = _arg1; preview = _arg3; Level = _arg2; cong = _arg4; arr.length = 0; cong = _arg4; stage.addEventListener(KeyboardEvent.KEY_DOWN, downfn); mytimer.addEventListener(TimerEvent.TIMER, time_fun); mytimer.start(); resetbut.gotoAndPlay(1); _local5 = 0; while (_local5 < 24) { _local6 = Math.floor((Math.random() * 4)); trace(_local6); McArr[_local5].rotation = (McArr[_local5].rotation + (_local6 * 90)); arr.push(_local6); McArr[_local5].addEventListener(MouseEvent.CLICK, rotateit); _local5++; }; } public function PlAgFun(_arg1:MouseEvent){ if (cong){ GameScore = 0; gotoAndStop("start"); } else { GameScore = (GameScore - levelScore); gotoAndStop(Level); }; } public function Muteall(){ if (((!(Mute)) && (!(Pause)))){ Mute = true; SC1.stop(); SC2.stop(); SC3.stop(); sndbut.gotoAndStop(2); } else { if (!Pause){ Mute = false; SC1.stop(); SC1 = bullet.play(0, int.MAX_VALUE); sndbut.gotoAndStop(1); }; }; } public function downfn(_arg1:KeyboardEvent){ if (_arg1.keyCode == 77){ Muteall(); }; if (_arg1.keyCode == 80){ Pauseall(); }; } public function time_fun(_arg1:TimerEvent):void{ var _local2:Number; var _local3:Number; if (time > 0){ time--; levelScore = (levelScore - 10); _local2 = Math.floor((time % 60)); _local3 = Math.floor((time / 60)); if (String(_local2).length == 1){ secs1 = ("0" + _local2); } else { secs1 = String(_local2); }; if (String(_local3).length == 1){ mins1 = ("0" + _local3); } else { mins1 = String(_local3); }; times.text = ((mins1 + ":") + secs1); score_txt.text = levelScore.toString(); } else { clearInterval(intr); mytimer.stop(); cong = false; mytimer.removeEventListener(TimerEvent.TIMER, time_fun); stage.removeEventListener(KeyboardEvent.KEY_DOWN, downfn); SoundMixer.stopAll(); gotoAndStop("gameover"); }; } public function Next(){ clearInterval(intr); clearInterval(inter3); mytimer.stop(); mytimer.removeEventListener(TimerEvent.TIMER, time_fun); stage.removeEventListener(KeyboardEvent.KEY_DOWN, downfn); GameScore = (GameScore + levelScore); gotoAndStop((Level + 1)); } public function backbutfun(_arg1:MouseEvent){ gotoAndStop("start"); } public function logofnload(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.123chase.com"), "_blank"); } public function sndop(_arg1:MouseEvent):void{ bulletChannel.stop(); sndon.visible = true; sndoff.visible = false; } public function BeeMoving(_arg1:Event):void{ var _local2:Number; var _local3:Number; _local2 = loaderInfo.bytesLoaded; _local3 = loaderInfo.bytesTotal; percentage = Math.round(((_local2 / _local3) * 100)); load_txt.text = (String(percentage) + "%"); preloadMc.preloadCar.gotoAndStop((percentage * 3)); if (_local2 == _local3){ gotoAndStop("start"); stage.removeEventListener(Event.ENTER_FRAME, BeeMoving); }; } public function playit(_arg1:MouseEvent){ this.gotoAndStop("Level1"); } public function Site(_arg1:Event):void{ var _local2:URLRequest; _local2 = new URLRequest("http://www.123chase.com"); navigateToURL(_local2, "_blank"); } public function calforview(){ clearInterval(intr); resetbut.gotoAndPlay(1); preview.visible = false; } public function moregamesFunc(_arg1:MouseEvent){ navigateToURL(new URLRequest("http://123chase.com"), "_blank"); } public function sndst(_arg1:MouseEvent):void{ bulletChannel = bullet.play(0, int.MAX_VALUE); sndoff.visible = true; sndon.visible = false; } public function rotateit(_arg1:MouseEvent){ var _local2:MovieClip; var _local3:int; var _local4:*; _local2 = (_arg1.target as MovieClip); _local2.rotation = (_local2.rotation + 90); _local3 = int(_local2.name.substring(1, 3)); arr[_local3] = (arr[_local3] + 1); if (arr[_local3] == 4){ arr[_local3] = 0; }; trace(arr); if ((((((((((((((((((((((((((((((((((((((((((((((((arr[0] == 0)) && ((arr[1] == 0)))) && ((arr[2] == 0)))) && ((arr[3] == 0)))) && ((arr[4] == 0)))) && ((arr[5] == 0)))) && ((arr[6] == 0)))) && ((arr[7] == 0)))) && ((arr[8] == 0)))) && ((arr[9] == 0)))) && ((arr[10] == 0)))) && ((arr[11] == 0)))) && ((arr[12] == 0)))) && ((arr[13] == 0)))) && ((arr[14] == 0)))) && ((arr[15] == 0)))) && ((arr[16] == 0)))) && ((arr[17] == 0)))) && ((arr[18] == 0)))) && ((arr[19] == 0)))) && ((arr[20] == 0)))) && ((arr[21] == 0)))) && ((arr[22] == 0)))) && ((arr[23] == 0)))){ viewOnce = false; stage.removeEventListener(KeyboardEvent.KEY_DOWN, downfn); _local4 = 0; while (_local4 < 24) { McArr[_local4].removeEventListener(MouseEvent.CLICK, rotateit); McArr[_local4].visible = false; _local4++; }; mytimer.stop(); preview.visible = true; inter3 = setInterval(Next, 2000); TransitionManager.start(preview, {type:Zoom, direction:Transition.IN, duration:1, easing:Bounce.easeOut}); trace("called"); }; } } }//package Copyofspinandsetspongebob_fla
Section 6
//pl_50 (Copyofspinandsetspongebob_fla.pl_50) package Copyofspinandsetspongebob_fla { import flash.display.*; public dynamic class pl_50 extends MovieClip { public function pl_50(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package Copyofspinandsetspongebob_fla
Section 7
//preloadsfsdf351_23 (Copyofspinandsetspongebob_fla.preloadsfsdf351_23) package Copyofspinandsetspongebob_fla { import flash.display.*; public dynamic class preloadsfsdf351_23 extends MovieClip { public function preloadsfsdf351_23(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package Copyofspinandsetspongebob_fla
Section 8
//preloadsfsdf352_1 (Copyofspinandsetspongebob_fla.preloadsfsdf352_1) package Copyofspinandsetspongebob_fla { import flash.display.*; public dynamic class preloadsfsdf352_1 extends MovieClip { public var preloadCar:MovieClip; public var logoload:SimpleButton; } }//package Copyofspinandsetspongebob_fla
Section 9
//timer_113 (Copyofspinandsetspongebob_fla.timer_113) package Copyofspinandsetspongebob_fla { import flash.display.*; public dynamic class timer_113 extends MovieClip { public function timer_113(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package Copyofspinandsetspongebob_fla
Section 10
//Bounce (fl.transitions.easing.Bounce) package fl.transitions.easing { public class Bounce { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); if (_arg1 < (1 / 2.75)){ return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2)); }; if (_arg1 < (2 / 2.75)){ _arg1 = (_arg1 - (1.5 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2)); }; if (_arg1 < (2.5 / 2.75)){ _arg1 = (_arg1 - (2.25 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2)); }; _arg1 = (_arg1 - (2.625 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg3 - easeOut((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < (_arg4 / 2)){ return (((easeIn((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2)); }; return ((((easeOut(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2)); } } }//package fl.transitions.easing
Section 11
//Transition (fl.transitions.Transition) package fl.transitions { import flash.display.*; import flash.events.*; import flash.geom.*; public class Transition extends EventDispatcher { protected var _progress:Number; public var ID:int; protected var _twn:Tween; protected var _direction:uint;// = 0 protected var _content:MovieClip; protected var _height:Number;// = NAN protected var _width:Number;// = NAN protected var _outerBounds:Rectangle; protected var _easing:Function; protected var _innerBounds:Rectangle; protected var _manager:TransitionManager; protected var _duration:Number;// = 2 public static const IN:uint = 0; public static const OUT:uint = 1; public function Transition(_arg1:MovieClip, _arg2:Object, _arg3:TransitionManager){ _direction = 0; _duration = 2; _width = NaN; _height = NaN; super(); this.content = _arg1; this.direction = _arg2.direction; this.duration = _arg2.duration; this.easing = _arg2.easing; this.manager = _arg3; this._innerBounds = this.manager._innerBounds; this._outerBounds = this.manager._outerBounds; this._width = this.manager._width; this._height = this.manager._height; this._resetTween(); } public function stop():void{ this._twn.fforward(); this._twn.stop(); } private function _resetTween():void{ if (this._twn){ this._twn.stop(); this._twn.removeEventListener(TweenEvent.MOTION_FINISH, this.onMotionFinished); }; this._twn = new Tween(this, "", this.easing, 0, 1, this.duration, true); this._twn.stop(); this._twn.prop = "progress"; this._twn.addEventListener(TweenEvent.MOTION_FINISH, this.onMotionFinished, false, 0, true); } public function onMotionFinished(_arg1:Object):void{ if (this.direction == Transition.OUT){ this.dispatchEvent(new Event("transitionOutDone")); } else { this.dispatchEvent(new Event("transitionInDone")); }; } public function get duration():Number{ return (this._duration); } public function set duration(_arg1:Number):void{ if (_arg1){ this._duration = _arg1; if (this._twn){ this._twn.duration = _arg1; }; }; } public function get easing():Function{ return (this._easing); } public function get progress():Number{ return (this._progress); } public function get manager():TransitionManager{ return (this._manager); } protected function _render(_arg1:Number):void{ } public function get type():Class{ return (Transition); } public function drawCircle(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:Number):void{ _arg1.graphics.moveTo((_arg2 + _arg4), _arg3); _arg1.graphics.curveTo((_arg4 + _arg2), ((Math.tan((Math.PI / 8)) * _arg4) + _arg3), ((Math.sin((Math.PI / 4)) * _arg4) + _arg2), ((Math.sin((Math.PI / 4)) * _arg4) + _arg3)); _arg1.graphics.curveTo(((Math.tan((Math.PI / 8)) * _arg4) + _arg2), (_arg4 + _arg3), _arg2, (_arg4 + _arg3)); _arg1.graphics.curveTo(((-(Math.tan((Math.PI / 8))) * _arg4) + _arg2), (_arg4 + _arg3), ((-(Math.sin((Math.PI / 4))) * _arg4) + _arg2), ((Math.sin((Math.PI / 4)) * _arg4) + _arg3)); _arg1.graphics.curveTo((-(_arg4) + _arg2), ((Math.tan((Math.PI / 8)) * _arg4) + _arg3), (-(_arg4) + _arg2), _arg3); _arg1.graphics.curveTo((-(_arg4) + _arg2), ((-(Math.tan((Math.PI / 8))) * _arg4) + _arg3), ((-(Math.sin((Math.PI / 4))) * _arg4) + _arg2), ((-(Math.sin((Math.PI / 4))) * _arg4) + _arg3)); _arg1.graphics.curveTo(((-(Math.tan((Math.PI / 8))) * _arg4) + _arg2), (-(_arg4) + _arg3), _arg2, (-(_arg4) + _arg3)); _arg1.graphics.curveTo(((Math.tan((Math.PI / 8)) * _arg4) + _arg2), (-(_arg4) + _arg3), ((Math.sin((Math.PI / 4)) * _arg4) + _arg2), ((-(Math.sin((Math.PI / 4))) * _arg4) + _arg3)); _arg1.graphics.curveTo((_arg4 + _arg2), ((-(Math.tan((Math.PI / 8))) * _arg4) + _arg3), (_arg4 + _arg2), _arg3); } public function cleanUp():void{ this.removeEventListener("transitionInDone", this._manager.transitionInDone); this.removeEventListener("transitionOutDone", this._manager.transitionOutDone); this.stop(); } public function set easing(_arg1:Function):void{ this._easing = _arg1; if (this._twn){ this._twn.func = _arg1; }; } public function set manager(_arg1:TransitionManager):void{ if (this._manager){ this.removeEventListener("transitionInDone", this._manager.transitionInDone); this.removeEventListener("transitionOutDone", this._manager.transitionOutDone); }; this._manager = _arg1; this.addEventListener("transitionInDone", this._manager.transitionInDone); this.addEventListener("transitionOutDone", this._manager.transitionOutDone); } public function set progress(_arg1:Number):void{ if (this._progress == _arg1){ return; }; this._progress = _arg1; if (this._direction){ this._render((1 - _arg1)); } else { this._render(_arg1); }; this.dispatchEvent(new Event("transitionProgress")); } public function start():void{ this.content.visible = true; this._twn.start(); } public function drawBox(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):void{ _arg1.graphics.moveTo(_arg2, _arg3); _arg1.graphics.lineTo((_arg2 + _arg4), _arg3); _arg1.graphics.lineTo((_arg2 + _arg4), (_arg3 + _arg5)); _arg1.graphics.lineTo(_arg2, (_arg3 + _arg5)); _arg1.graphics.lineTo(_arg2, _arg3); } public function set content(_arg1:MovieClip):void{ if (_arg1){ this._content = _arg1; if (this._twn){ this._twn.obj = _arg1; }; }; } private function _noEase(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public function get content():MovieClip{ return (this._content); } public function set direction(_arg1:Number):void{ this._direction = (_arg1) ? 1 : 0; } public function get direction():Number{ return (this._direction); } } }//package fl.transitions
Section 12
//TransitionManager (fl.transitions.TransitionManager) package fl.transitions { import flash.display.*; import flash.events.*; import flash.geom.*; public class TransitionManager extends EventDispatcher { public var _innerBounds:Rectangle; private var _visualPropList:Object; private var _triggerEvent:String; public var className:String;// = "TransitionManager" public var type:Object; private var _contentAppearance:Object; private var _content:MovieClip; public var _width:Number;// = NAN public var _height:Number;// = NAN public var _outerBounds:Rectangle; private var _transitions:Object; private static var IDCount:int = 0; public function TransitionManager(_arg1:MovieClip){ type = TransitionManager; className = "TransitionManager"; _width = NaN; _height = NaN; _visualPropList = {x:null, y:null, scaleX:null, scaleY:null, alpha:null, rotation:null}; super(); this.content = _arg1; this._transitions = {}; } public function get content():MovieClip{ return (this._content); } public function removeAllTransitions():void{ var _local1:Transition; for each (_local1 in this._transitions) { _local1.cleanUp(); this.removeTransition(_local1); }; } function transitionInDone(_arg1:Object):void{ var _local2:Boolean; this.removeTransition(_arg1.target); if (this.numInTransitions == 0){ _local2 = this._content.visible; if ((((this._triggerEvent == "hide")) || ((this._triggerEvent == "hideChild")))){ this._content.visible = false; }; if (_local2){ this.dispatchEvent(new Event("allTransitionsInDone")); }; }; } public function get numOutTransitions():Number{ var _local1:Number; var _local2:Object; var _local3:Transition; _local1 = 0; _local2 = this._transitions; for each (_local3 in _local2) { if (_local3.direction){ _local1++; }; }; return (_local1); } public function get contentAppearance():Object{ return (this._contentAppearance); } public function saveContentAppearance():void{ var _local1:MovieClip; var _local2:Object; var _local3:String; _local1 = this._content; if (!this._contentAppearance){ _local2 = (this._contentAppearance = {}); for (_local3 in this._visualPropList) { _local2[_local3] = _local1[_local3]; }; _local2.colorTransform = _local1.transform.colorTransform; }; this._innerBounds = _local1.getBounds(_local1); this._outerBounds = _local1.getBounds(_local1.parent); this._width = _local1.width; this._height = _local1.height; } public function addTransition(_arg1:Transition):Transition{ _arg1.ID = ++TransitionManager.IDCount; this._transitions[_arg1.ID] = _arg1; return (_arg1); } public function startTransition(_arg1:Object):Transition{ var _local2:Class; var _local3:Transition; this.removeTransition(this.findTransition(_arg1)); _local2 = _arg1.type; _local3 = new _local2(this._content, _arg1, this); this.addTransition(_local3); _local3.start(); return (_local3); } function transitionOutDone(_arg1:Object):void{ var _local2:Boolean; this.removeTransition(_arg1.target); if (this.numOutTransitions == 0){ this.restoreContentAppearance(); _local2 = this._content.visible; if (((_local2) && ((((_triggerEvent == "hide")) || ((_triggerEvent == "hideChild")))))){ this._content.visible = false; }; if (_local2){ this.dispatchEvent(new Event("allTransitionsOutDone")); }; }; } public function restoreContentAppearance():void{ var _local1:MovieClip; var _local2:Object; var _local3:String; _local1 = this._content; _local2 = this._contentAppearance; for (_local3 in this._visualPropList) { _local1[_local3] = _local2[_local3]; }; _local1.transform.colorTransform = _local2.colorTransform; } public function get numTransitions():Number{ var _local1:Number; var _local2:Transition; _local1 = 0; for each (_local2 in this._transitions) { _local1++; }; return (_local1); } public function findTransition(_arg1:Object):Transition{ var _local2:Transition; for each (_local2 in this._transitions) { if (_local2.type == _arg1.type){ return (_local2); }; }; return (null); } public function set content(_arg1:MovieClip):void{ this._content = _arg1; this.saveContentAppearance(); } public function get numInTransitions():Number{ var _local1:Number; var _local2:Object; var _local3:Transition; _local1 = 0; _local2 = this._transitions; for each (_local3 in _local2) { if (!_local3.direction){ _local1++; }; }; return (_local1); } public function removeTransition(_arg1:Transition):Boolean{ if (((((!(_arg1)) || (!(this._transitions)))) || (!(this._transitions[_arg1.ID])))){ return (false); }; _arg1.cleanUp(); return (delete this._transitions[_arg1.ID]); } public function get transitionsList():Object{ return (this._transitions); } public static function start(_arg1:MovieClip, _arg2:Object):Transition{ if (!_arg1.__transitionManager){ _arg1.__transitionManager = new TransitionManager(_arg1); }; if (_arg2.direction == 1){ _arg1.__transitionManager._triggerEvent = "hide"; } else { _arg1.__transitionManager._triggerEvent = "reveal"; }; return (_arg1.__transitionManager.startTransition(_arg2)); } } }//package fl.transitions
Section 13
//Tween (fl.transitions.Tween) package fl.transitions { import flash.display.*; import flash.events.*; import flash.utils.*; public class Tween extends EventDispatcher { private var _position:Number;// = NAN public var prevTime:Number;// = NAN public var prevPos:Number;// = NAN public var isPlaying:Boolean;// = false public var begin:Number;// = NAN private var _fps:Number;// = NAN private var _time:Number;// = NAN public var change:Number;// = NAN private var _finish:Number;// = NAN public var looping:Boolean;// = false private var _intervalID:uint;// = 0 public var func:Function; private var _timer:Timer;// = null private var _startTime:Number;// = NAN public var prop:String;// = "" private var _duration:Number;// = NAN public var obj:Object;// = null public var useSeconds:Boolean;// = false protected static var _mc:MovieClip = new MovieClip(); public function Tween(_arg1:Object, _arg2:String, _arg3:Function, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean=false){ isPlaying = false; obj = null; prop = ""; func = function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); }; begin = NaN; change = NaN; useSeconds = false; prevTime = NaN; prevPos = NaN; looping = false; _duration = NaN; _time = NaN; _fps = NaN; _position = NaN; _startTime = NaN; _intervalID = 0; _finish = NaN; _timer = null; super(); if (!arguments.length){ return; }; this.obj = _arg1; this.prop = _arg2; this.begin = _arg4; this.position = _arg4; this.duration = _arg6; this.useSeconds = _arg7; if ((_arg3 is Function)){ this.func = _arg3; }; this.finish = _arg5; this._timer = new Timer(100); this.start(); } public function continueTo(_arg1:Number, _arg2:Number):void{ this.begin = this.position; this.finish = _arg1; if (!isNaN(_arg2)){ this.duration = _arg2; }; this.start(); } public function stop():void{ this.stopEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_STOP, this._time, this._position)); } private function fixTime():void{ if (this.useSeconds){ this._startTime = (getTimer() - (this._time * 1000)); }; } public function set FPS(_arg1:Number):void{ var _local2:Boolean; _local2 = this.isPlaying; this.stopEnterFrame(); this._fps = _arg1; if (_local2){ this.startEnterFrame(); }; } public function get finish():Number{ return ((this.begin + this.change)); } public function get duration():Number{ return (this._duration); } protected function startEnterFrame():void{ var _local1:Number; if (isNaN(this._fps)){ _mc.addEventListener(Event.ENTER_FRAME, this.onEnterFrame, false, 0, true); } else { _local1 = (1000 / this._fps); this._timer.delay = _local1; this._timer.addEventListener(TimerEvent.TIMER, this.timerHandler, false, 0, true); this._timer.start(); }; this.isPlaying = true; } public function set time(_arg1:Number):void{ this.prevTime = this._time; if (_arg1 > this.duration){ if (this.looping){ this.rewind((_arg1 - this._duration)); this.update(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_LOOP, this._time, this._position)); } else { if (this.useSeconds){ this._time = this._duration; this.update(); }; this.stop(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_FINISH, this._time, this._position)); }; } else { if (_arg1 < 0){ this.rewind(); this.update(); } else { this._time = _arg1; this.update(); }; }; } protected function stopEnterFrame():void{ if (isNaN(this._fps)){ _mc.removeEventListener(Event.ENTER_FRAME, this.onEnterFrame); } else { this._timer.stop(); }; this.isPlaying = false; } public function getPosition(_arg1:Number=NaN):Number{ if (isNaN(_arg1)){ _arg1 = this._time; }; return (this.func(_arg1, this.begin, this.change, this._duration)); } public function set finish(_arg1:Number):void{ this.change = (_arg1 - this.begin); } public function set duration(_arg1:Number):void{ this._duration = ((_arg1)<=0) ? Infinity : _arg1; } public function setPosition(_arg1:Number):void{ this.prevPos = this._position; if (this.prop.length){ this.obj[this.prop] = (this._position = _arg1); }; this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_CHANGE, this._time, this._position)); } public function resume():void{ this.fixTime(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_RESUME, this._time, this._position)); } public function fforward():void{ this.time = this._duration; this.fixTime(); } protected function onEnterFrame(_arg1:Event):void{ this.nextFrame(); } public function get position():Number{ return (this.getPosition(this._time)); } public function yoyo():void{ this.continueTo(this.begin, this.time); } public function nextFrame():void{ if (this.useSeconds){ this.time = ((getTimer() - this._startTime) / 1000); } else { this.time = (this._time + 1); }; } protected function timerHandler(_arg1:TimerEvent):void{ this.nextFrame(); _arg1.updateAfterEvent(); } public function get FPS():Number{ return (this._fps); } public function rewind(_arg1:Number=0):void{ this._time = _arg1; this.fixTime(); this.update(); } public function set position(_arg1:Number):void{ this.setPosition(_arg1); } public function get time():Number{ return (this._time); } private function update():void{ this.setPosition(this.getPosition(this._time)); } public function start():void{ this.rewind(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_START, this._time, this._position)); } public function prevFrame():void{ if (!this.useSeconds){ this.time = (this._time - 1); }; } } }//package fl.transitions
Section 14
//TweenEvent (fl.transitions.TweenEvent) package fl.transitions { import flash.events.*; public class TweenEvent extends Event { public var time:Number;// = NAN public var position:Number;// = NAN public static const MOTION_START:String = "motionStart"; public static const MOTION_STOP:String = "motionStop"; public static const MOTION_LOOP:String = "motionLoop"; public static const MOTION_CHANGE:String = "motionChange"; public static const MOTION_FINISH:String = "motionFinish"; public static const MOTION_RESUME:String = "motionResume"; public function TweenEvent(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Boolean=false){ time = NaN; position = NaN; super(_arg1, _arg4, _arg5); this.time = _arg2; this.position = _arg3; } override public function clone():Event{ return (new TweenEvent(this.type, this.time, this.position, this.bubbles, this.cancelable)); } } }//package fl.transitions
Section 15
//Zoom (fl.transitions.Zoom) package fl.transitions { import flash.display.*; public class Zoom extends Transition { protected var _scaleXFinal:Number;// = 1 protected var _scaleYFinal:Number;// = 1 public function Zoom(_arg1:MovieClip, _arg2:Object, _arg3:TransitionManager){ _scaleXFinal = 1; _scaleYFinal = 1; super(_arg1, _arg2, _arg3); this._scaleXFinal = this.manager.contentAppearance.scaleX; this._scaleYFinal = this.manager.contentAppearance.scaleY; } override protected function _render(_arg1:Number):void{ if (_arg1 < 0){ _arg1 = 0; }; this._content.scaleX = (_arg1 * this._scaleXFinal); this._content.scaleY = (_arg1 * this._scaleYFinal); } override public function get type():Class{ return (Zoom); } } }//package fl.transitions
Section 16
//MochiCoins (mochi.as3.MochiCoins) package mochi.as3 { public class MochiCoins { public static const STORE_HIDE:String = "StoreHide"; public static const NO_USER:String = "NoUser"; public static const IO_ERROR:String = "IOError"; public static const ITEM_NEW:String = "ItemNew"; public static const ITEM_OWNED:String = "ItemOwned"; public static const STORE_ITEMS:String = "StoreItems"; public static const ERROR:String = "Error"; public static const STORE_SHOW:String = "StoreShow"; public static var _inventory:MochiInventory; public static function triggerEvent(_arg1:String, _arg2:Object):void{ MochiSocial.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ MochiSocial.removeEventListener(_arg1, _arg2); } public static function addEventListener(_arg1:String, _arg2:Function):void{ MochiSocial.addEventListener(_arg1, _arg2); } public static function getStoreItems():void{ MochiServices.send("coins_getStoreItems"); } public static function get inventory():MochiInventory{ return (_inventory); } public static function showStore(_arg1:Object=null):void{ MochiServices.bringToTop(); MochiServices.send("coins_showStore", {options:_arg1}, null, null); } public static function showItem(_arg1:Object=null):void{ if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){ trace("ERROR: showItem call must pass an Object with an item key"); return; }; MochiServices.bringToTop(); MochiServices.send("coins_showItem", {options:_arg1}, null, null); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function showVideo(_arg1:Object=null):void{ if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){ trace("ERROR: showVideo call must pass an Object with an item key"); return; }; MochiServices.bringToTop(); MochiServices.send("coins_showVideo", {options:_arg1}, null, null); } MochiSocial.addEventListener(MochiSocial.LOGGED_IN, function (_arg1:Object):void{ _inventory = new MochiInventory(); }); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, function (_arg1:Object):void{ _inventory = null; }); } }//package mochi.as3
Section 17
//MochiDigits (mochi.as3.MochiDigits) package mochi.as3 { public final class MochiDigits { private var Sibling:MochiDigits; private var Fragment:Number; private var Encoder:Number; public function MochiDigits(_arg1:Number=0, _arg2:uint=0):void{ Encoder = 0; setValue(_arg1, _arg2); } public function set value(_arg1:Number):void{ setValue(_arg1); } public function reencode():void{ var _local1:uint; _local1 = int((2147483647 * Math.random())); Fragment = (Fragment ^ (_local1 ^ Encoder)); Encoder = _local1; } public function toString():String{ var _local1:String; _local1 = String.fromCharCode((Fragment ^ Encoder)); if (Sibling != null){ _local1 = (_local1 + Sibling.toString()); }; return (_local1); } public function get value():Number{ return (Number(this.toString())); } public function setValue(_arg1:Number=0, _arg2:uint=0):void{ var _local3:String; _local3 = _arg1.toString(); var _temp1 = _arg2; _arg2 = (_arg2 + 1); Fragment = (_local3.charCodeAt(_temp1) ^ Encoder); if (_arg2 < _local3.length){ Sibling = new MochiDigits(_arg1, _arg2); } else { Sibling = null; }; reencode(); } public function addValue(_arg1:Number):void{ value = (value + _arg1); } } }//package mochi.as3
Section 18
//MochiEventDispatcher (mochi.as3.MochiEventDispatcher) package mochi.as3 { public class MochiEventDispatcher { private var eventTable:Object; public function MochiEventDispatcher():void{ eventTable = {}; } public function triggerEvent(_arg1:String, _arg2:Object):void{ var _local3:Object; if (eventTable[_arg1] == undefined){ return; }; for (_local3 in eventTable[_arg1]) { var _local6 = eventTable[_arg1]; _local6[_local3](_arg2); }; } public function removeEventListener(_arg1:String, _arg2:Function):void{ var _local3:Object; if (eventTable[_arg1] == undefined){ eventTable[_arg1] = []; return; }; for (_local3 in eventTable[_arg1]) { if (eventTable[_arg1][_local3] != _arg2){ } else { eventTable[_arg1].splice(Number(_local3), 1); }; }; } public function addEventListener(_arg1:String, _arg2:Function):void{ removeEventListener(_arg1, _arg2); eventTable[_arg1].push(_arg2); } } }//package mochi.as3
Section 19
//MochiEvents (mochi.as3.MochiEvents) package mochi.as3 { import flash.display.*; public class MochiEvents { public static const ALIGN_BOTTOM_LEFT:String = "ALIGN_BL"; public static const FORMAT_LONG:String = "LongForm"; public static const ALIGN_BOTTOM:String = "ALIGN_B"; public static const ACHIEVEMENT_RECEIVED:String = "AchievementReceived"; public static const FORMAT_SHORT:String = "ShortForm"; public static const ALIGN_TOP_RIGHT:String = "ALIGN_TR"; public static const ALIGN_BOTTOM_RIGHT:String = "ALIGN_BR"; public static const ALIGN_TOP:String = "ALIGN_T"; public static const ALIGN_LEFT:String = "ALIGN_L"; public static const ALIGN_RIGHT:String = "ALIGN_R"; public static const ALIGN_TOP_LEFT:String = "ALIGN_TL"; public static const ALIGN_CENTER:String = "ALIGN_C"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); private static var gameStart:Number; private static var levelStart:Number; public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function startSession(_arg1:String):void{ MochiServices.send("events_beginSession", {achievementID:_arg1}, null, null); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function setNotifications(_arg1:MovieClip, _arg2:Object):void{ var _local3:Object; var _local4:Object; _local3 = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; _local3.clip = _arg1; MochiServices.send("events_setNotifications", _local3, null, null); } public static function endGame():void{ var _local1:Number; _local1 = (new Date().time - gameStart); trigger("end_game", {time:_local1}); } public static function startGame():void{ gameStart = new Date().time; trigger("start_game"); } public static function trigger(_arg1:String, _arg2:Object=null):void{ if (_arg2 == null){ _arg2 = {}; } else { if (_arg2["kind"] != undefined){ trace("WARNING: optional arguments package contains key 'id', it will be overwritten"); _arg2["kind"] = _arg1; }; }; MochiServices.send("events_triggerEvent", {eventObject:_arg2}, null, null); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function startLevel():void{ levelStart = new Date().time; trigger("start_level"); } public static function endLevel():void{ var _local1:Number; _local1 = (new Date().time - levelStart); trigger("end_level", {time:_local1}); } } }//package mochi.as3
Section 20
//MochiInventory (mochi.as3.MochiInventory) package mochi.as3 { import flash.events.*; import flash.utils.*; public dynamic class MochiInventory extends Proxy { private var _timer:Timer; private var _names:Array; private var _consumableProperties:Object; private var _syncID:Number; private var _storeSync:Object; private var _outstandingID:Number; private var _syncPending:Boolean; public static const READY:String = "InvReady"; public static const ERROR:String = "Error"; public static const IO_ERROR:String = "IoError"; private static const KEY_SALT:String = " syncMaint"; public static const WRITTEN:String = "InvWritten"; public static const NOT_READY:String = "InvNotReady"; public static const VALUE_ERROR:String = "InvValueError"; private static const CONSUMER_KEY:String = "MochiConsumables"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public function MochiInventory():void{ MochiCoins.addEventListener(MochiCoins.ITEM_OWNED, itemOwned); MochiCoins.addEventListener(MochiCoins.ITEM_NEW, newItems); MochiSocial.addEventListener(MochiSocial.LOGGED_IN, loggedIn); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, loggedOut); _storeSync = new Object(); _syncPending = false; _outstandingID = 0; _syncID = 0; _timer = new Timer(1000); _timer.addEventListener(TimerEvent.TIMER, sync); _timer.start(); if (MochiSocial.loggedIn){ loggedIn(); } else { loggedOut(); }; } private function newItems(_arg1:Object):void{ if (!this[(_arg1.id + KEY_SALT)]){ this[(_arg1.id + KEY_SALT)] = 0; }; if (!this[_arg1.id]){ this[_arg1.id] = 0; }; this[(_arg1.id + KEY_SALT)] = (this[(_arg1.id + KEY_SALT)] + _arg1.count); this[_arg1.id] = (this[_arg1.id] + _arg1.count); if (_arg1.privateProperties.consumable){ if (!this[_arg1.privateProperties.tag]){ this[_arg1.privateProperties.tag] = 0; }; this[_arg1.privateProperties.tag] = (this[_arg1.privateProperties.tag] + (_arg1.privateProperties.inc * _arg1.count)); }; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){ if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return (-1); }; if (_consumableProperties[_arg1]){ return (MochiDigits(_consumableProperties[_arg1]).value); }; return (undefined); } public function release():void{ MochiCoins.removeEventListener(MochiCoins.ITEM_NEW, newItems); MochiSocial.removeEventListener(MochiSocial.LOGGED_IN, loggedIn); MochiSocial.removeEventListener(MochiSocial.LOGGED_OUT, loggedOut); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function hasProperty(_arg1):Boolean{ if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return (false); }; if (_consumableProperties[_arg1] == undefined){ return (false); }; return (true); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextNameIndex(_arg1:int):int{ return (((_arg1)>=_names.length) ? 0 : (_arg1 + 1)); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{ var _local3:MochiDigits; if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return; }; if (!(_arg2 is Number)){ triggerEvent(ERROR, {type:VALUE_ERROR, error:"Invalid type", arg:_arg2}); return; }; if (_consumableProperties[_arg1]){ _local3 = MochiDigits(_consumableProperties[_arg1]); if (_local3.value == _arg2){ return; }; _local3.value = _arg2; } else { _names.push(_arg1); _consumableProperties[_arg1] = new MochiDigits(_arg2); }; _syncID++; } private function sync(_arg1:Event=null):void{ var _local2:Object; var _local3:String; if (((_syncPending) || ((_syncID == _outstandingID)))){ return; }; _outstandingID = _syncID; _local2 = {}; for (_local3 in _consumableProperties) { _local2[_local3] = MochiDigits(_consumableProperties[_local3]).value; }; MochiUserData.put(CONSUMER_KEY, _local2, putConsumableBag); _syncPending = true; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextName(_arg1:int):String{ return (_names[(_arg1 - 1)]); } private function loggedIn(_arg1:Object=null):void{ MochiUserData.get(CONSUMER_KEY, getConsumableBag); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function deleteProperty(_arg1):Boolean{ if (!_consumableProperties[_arg1]){ return (false); }; _names.splice(_names.indexOf(_arg1), 1); delete _consumableProperties[_arg1]; return (true); } private function itemOwned(_arg1:Object):void{ _storeSync[_arg1.id] = {properties:_arg1.properties, count:_arg1.count}; } private function putConsumableBag(_arg1:MochiUserData):void{ _syncPending = false; if (_arg1.error){ triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error}); _outstandingID = -1; }; triggerEvent(WRITTEN, {}); } private function getConsumableBag(_arg1:MochiUserData):void{ var _local2:String; var _local3:Number; if (_arg1.error){ triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error}); return; }; _consumableProperties = {}; _names = new Array(); if (_arg1.data){ for (_local2 in _arg1.data) { _names.push(_local2); _consumableProperties[_local2] = new MochiDigits(_arg1.data[_local2]); }; }; for (_local2 in _storeSync) { _local3 = _storeSync[_local2].count; if (_consumableProperties[(_local2 + KEY_SALT)]){ _local3 = (_local3 - _consumableProperties[_local2]); }; if (_local3 == 0){ } else { newItems({id:_local2, count:_local3, properties:_storeSync[_local2].properties}); }; }; triggerEvent(READY, {}); } private function loggedOut(_arg1:Object=null):void{ _consumableProperties = null; } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } } }//package mochi.as3
Section 21
//MochiScores (mochi.as3.MochiScores) package mochi.as3 { import flash.display.*; import flash.text.*; public class MochiScores { private static var boardID:String; public static var onErrorHandler:Object; public static var onCloseHandler:Object; public static function showLeaderboard(_arg1:Object=null):void{ var n:Number; var options = _arg1; if (options != null){ delete options.clip; MochiServices.setContainer(); MochiServices.bringToTop(); if (options.name != null){ if ((options.name is TextField)){ if (options.name.text.length > 0){ options.name = options.name.text; }; }; }; if (options.score != null){ if ((options.score is TextField)){ if (options.score.text.length > 0){ options.score = options.score.text; }; } else { if ((options.score is MochiDigits)){ options.score = options.score.value; }; }; n = Number(options.score); if (isNaN(n)){ trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is 'Not a Number'")); } else { if ((((n == Number.NEGATIVE_INFINITY)) || ((n == Number.POSITIVE_INFINITY)))){ trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is an infinite")); } else { if (Math.floor(n) != n){ trace((("WARNING: Submitted score '" + options.score) + "' will be truncated")); }; options.score = n; }; }; }; if (options.onDisplay != null){ options.onDisplay(); } else { if (MochiServices.clip != null){ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; }; } else { options = {}; if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; if (options.onClose != null){ onCloseHandler = options.onClose; } else { onCloseHandler = function ():void{ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.gotoAndStop("start"); } else { trace("Warning: Container is not a MovieClip, cannot call default onClose."); }; }; }; if (options.onError != null){ onErrorHandler = options.onError; } else { onErrorHandler = null; }; if (options.boardID == null){ if (MochiScores.boardID != null){ options.boardID = MochiScores.boardID; }; }; MochiServices.warnID(options.boardID, true); trace("[MochiScores] NOTE: Security Sandbox Violation errors below are normal"); MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose); } public static function closeLeaderboard():void{ MochiServices.send("scores_closeLeaderboard"); } public static function getPlayerInfo(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_getPlayerInfo", null, _arg1, _arg2); } public static function requestList(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_requestList", null, _arg1, _arg2); } public static function scoresArrayToObjects(_arg1:Object):Object{ var _local2:Object; var _local3:Number; var _local4:Number; var _local5:Object; var _local6:Object; var _local7:String; var _local8:String; _local2 = {}; for (_local7 in _arg1) { if (typeof(_arg1[_local7]) == "object"){ if (((!((_arg1[_local7].cols == null))) && (!((_arg1[_local7].rows == null))))){ _local2[_local7] = []; _local5 = _arg1[_local7]; _local4 = 0; while (_local4 < _local5.rows.length) { _local6 = {}; _local3 = 0; while (_local3 < _local5.cols.length) { _local6[_local5.cols[_local3]] = _local5.rows[_local4][_local3]; _local3++; }; _local2[_local7].push(_local6); _local4++; }; } else { _local2[_local7] = {}; for (_local8 in _arg1[_local7]) { _local2[_local7][_local8] = _arg1[_local7][_local8]; }; }; } else { _local2[_local7] = _arg1[_local7]; }; }; return (_local2); } public static function submit(_arg1:Number, _arg2:String, _arg3:Object=null, _arg4:Object=null):void{ _arg1 = Number(_arg1); if (isNaN(_arg1)){ trace((("ERROR: Submitted score '" + String(_arg1)) + "' will be rejected, score is 'Not a Number'")); } else { if ((((_arg1 == Number.NEGATIVE_INFINITY)) || ((_arg1 == Number.POSITIVE_INFINITY)))){ trace((("ERROR: Submitted score '" + String(_arg1)) + "' will be rejected, score is an infinite")); } else { if (Math.floor(_arg1) != _arg1){ trace((("WARNING: Submitted score '" + String(_arg1)) + "' will be truncated")); }; _arg1 = Number(_arg1); }; }; MochiServices.send("scores_submit", {score:_arg1, name:_arg2}, _arg3, _arg4); } public static function onClose(_arg1:Object=null):void{ if (((((_arg1) && ((_arg1.error == true)))) && (onErrorHandler))){ if (_arg1.errorCode == null){ _arg1.errorCode = "IOError"; }; onErrorHandler(_arg1.errorCode); MochiServices.doClose(); return; }; onCloseHandler(); MochiServices.doClose(); } public static function setBoardID(_arg1:String):void{ MochiServices.warnID(_arg1, true); MochiScores.boardID = _arg1; MochiServices.send("scores_setBoardID", {boardID:_arg1}); } } }//package mochi.as3
Section 22
//MochiServices (mochi.as3.MochiServices) package mochi.as3 { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.geom.*; import flash.net.*; import flash.system.*; public class MochiServices { private static var _container:Object; private static var _connected:Boolean = false; private static var _swfVersion:String; private static var _preserved:Object; public static var netupAttempted:Boolean = false; private static var _sendChannel:LocalConnection; public static var servicesSync:MochiSync = new MochiSync(); private static var _clip:MovieClip; private static var _id:String; private static var _services:String = "services.swf"; private static var _servURL:String = "http://www.mochiads.com/static/lib/services/"; public static var widget:Boolean = false; private static var _timer:Timer; private static var _sendChannelName:String; private static var _loader:Loader; private static var _connecting:Boolean = false; private static var _mochiLocalConnection:MovieClip; private static var _listenChannelName:String = "__ms_"; public static var onError:Object; public static var netup:Boolean = true; private static var _mochiLC:String = "MochiLC.swf"; public static function isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function get connected():Boolean{ return (_connected); } private static function onReceive(_arg1:Object):void{ var cb:String; var cblst:Object; var method:*; var methodName:String; var obj:Object; var pkg = _arg1; cb = pkg.callbackID; cblst = _clip._callbacks[cb]; if (!cblst){ return; }; method = cblst.callbackMethod; methodName = ""; obj = cblst.callbackObject; if (((obj) && ((typeof(method) == "string")))){ methodName = method; if (obj[method] != null){ method = obj[method]; } else { trace((("Error: Method " + method) + " does not exist.")); }; }; if (method != undefined){ try { method.apply(obj, pkg.args); } catch(error:Error) { trace(((("Error invoking callback method '" + methodName) + "': ") + error.toString())); }; } else { if (obj != null){ try { obj(pkg.args); } catch(error:Error) { trace(("Error invoking method on object: " + error.toString())); }; }; }; delete _clip._callbacks[cb]; } public static function get childClip():Object{ return (_clip); } public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{ if (_connected){ _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); } else { if ((((_clip == null)) || (!(_connecting)))){ trace(("Error: MochiServices not connected. Please call MochiServices.connect(). Function: " + _arg1)); handleError(_arg2, _arg3, _arg4); flush(true); return; }; _clip._queue.push({methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); }; if (_clip != null){ if (((!((_clip._callbacks == null))) && (!((_clip._nextcallbackID == null))))){ _clip._callbacks[_clip._nextcallbackID] = {callbackObject:_arg3, callbackMethod:_arg4}; _clip._nextcallbackID++; }; }; } private static function init(_arg1:String, _arg2:Object):void{ _id = _arg1; if (_arg2 != null){ _container = _arg2; loadCommunicator(_arg1, _container); }; } private static function clickMovie(_arg1:String, _arg2:Function):MovieClip{ var _local3:Array; var _local4:int; var _local5:Array; var _local6:Array; var _local7:MovieClip; var _local8:LocalConnection; var _local9:String; var _local10:ByteArray; var _local11:ByteArray; var _local12:uint; var _local13:uint; var _local14:Loader; _local3 = [150, 21, 0, 7, 1, 0, 0, 0, 0, 98, 116, 110, 0, 7, 2, 0, 0, 0, 0, 116, 104, 105, 115, 0, 28, 150, 22, 0, 0, 99, 114, 101, 97, 116, 101, 69, 109, 112, 116, 121, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 82, 135, 1, 0, 0, 23, 150, 13, 0, 4, 0, 0, 111, 110, 82, 101, 108, 101, 97, 115, 101, 0, 142, 8, 0, 0, 0, 0, 2, 42, 0, 114, 0, 150, 17, 0, 0, 32, 0, 7, 1, 0, 0, 0, 8, 0, 0, 115, 112, 108, 105, 116, 0, 82, 135, 1, 0, 1, 23, 150, 7, 0, 4, 1, 7, 0, 0, 0, 0, 78, 150, 8, 0, 0, 95, 98, 108, 97, 110, 107, 0, 154, 1, 0, 0, 150, 7, 0, 0, 99, 108, 105, 99, 107, 0, 150, 7, 0, 4, 1, 7, 1, 0, 0, 0, 78, 150, 27, 0, 7, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 76, 111, 99, 97, 108, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 0, 64, 150, 6, 0, 0, 115, 101, 110, 100, 0, 82, 79, 150, 15, 0, 4, 0, 0, 95, 97, 108, 112, 104, 97, 0, 7, 0, 0, 0, 0, 79, 150, 23, 0, 7, 0xFF, 0, 0xFF, 0, 7, 1, 0, 0, 0, 4, 0, 0, 98, 101, 103, 105, 110, 70, 105, 108, 108, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 109, 111, 118, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 16, 0, 7, 0, 0, 0, 0, 4, 0, 0, 101, 110, 100, 70, 105, 108, 108, 0, 82, 23]; _local5 = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3]; _local6 = [0, 64, 0, 0, 0]; _local7 = new MovieClip(); _local8 = new LocalConnection(); _local9 = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().time)); _local8 = new LocalConnection(); _local7.lc = _local8; _local7.click = _arg2; _local8.client = _local7; _local8.connect(_local9); _local10 = new ByteArray(); _local11 = new ByteArray(); _local11.endian = Endian.LITTLE_ENDIAN; _local11.writeShort(1); _local11.writeUTFBytes(((_arg1 + " ") + _local9)); _local11.writeByte(0); _local12 = ((_local3.length + _local11.length) + 4); _local13 = (_local12 + 35); _local10.endian = Endian.LITTLE_ENDIAN; _local10.writeUTFBytes("FWS"); _local10.writeByte(8); _local10.writeUnsignedInt(_local13); for each (_local4 in _local5) { _local10.writeByte(_local4); }; _local10.writeUnsignedInt(_local12); _local10.writeByte(136); _local10.writeShort(_local11.length); _local10.writeBytes(_local11); for each (_local4 in _local3) { _local10.writeByte(_local4); }; for each (_local4 in _local6) { _local10.writeByte(_local4); }; _local14 = new Loader(); _local14.loadBytes(_local10); _local7.addChild(_local14); return (_local7); } public static function stayOnTop():void{ _container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true); if (_clip != null){ _clip.visible = true; }; } public static function addLinkEvent(_arg1:String, _arg2:String, _arg3:DisplayObjectContainer, _arg4:Function=null):void{ var vars:Object; var avm1Click:DisplayObject; var s:String; var i:Number; var x:String; var req:URLRequest; var loader:Loader; var setURL:Function; var err:Function; var complete:Function; var url = _arg1; var burl = _arg2; var btn = _arg3; var onClick = _arg4; vars = new Object(); vars["mav"] = getVersion(); vars["swfv"] = "9"; vars["swfurl"] = btn.loaderInfo.loaderURL; vars["fv"] = Capabilities.version; vars["os"] = Capabilities.os; vars["lang"] = Capabilities.language; vars["scres"] = ((Capabilities.screenResolutionX + "x") + Capabilities.screenResolutionY); s = "?"; i = 0; for (x in vars) { if (i != 0){ s = (s + "&"); }; i = (i + 1); s = (((s + x) + "=") + escape(vars[x])); }; req = new URLRequest("http://x.mochiads.com/linkping.swf"); loader = new Loader(); setURL = function (_arg1:String):void{ var _local2:Rectangle; if (avm1Click){ btn.removeChild(avm1Click); }; avm1Click = clickMovie(_arg1, onClick); _local2 = btn.getBounds(btn); btn.addChild(avm1Click); avm1Click.x = _local2.x; avm1Click.y = _local2.y; avm1Click.scaleX = (0.01 * _local2.width); avm1Click.scaleY = (0.01 * _local2.height); }; err = function (_arg1:Object):void{ netup = false; _arg1.target.removeEventListener(_arg1.type, arguments.callee); setURL(burl); }; complete = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; if (netup){ setURL((url + s)); } else { setURL(burl); }; if (!((netupAttempted) || (_connected))){ netupAttempted = true; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, err); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.load(req); }; } public static function warnID(_arg1:String, _arg2:Boolean):void{ var _local3:Number; _arg1 = _arg1.toLowerCase(); if (_arg1.length != 16){ trace((("WARNING: " + (_arg2) ? "board" : "game") + " ID is not the appropriate length")); return; } else { if (_arg1 == "1e113c7239048b3f"){ if (_arg2){ trace("WARNING: Using testing board ID"); } else { trace("WARNING: Using testing board ID as game ID"); }; return; } else { if (_arg1 == "84993a1de4031cd8"){ if (_arg2){ trace("WARNING: Using testing game ID as board ID"); } else { trace("WARNING: Using testing game ID"); }; return; }; }; }; _local3 = 0; while (_local3 < _arg1.length) { switch (_arg1.charAt(_local3)){ case "0": case "1": case "2": case "3": case "4": case "5": case "6": case "7": case "8": case "9": case "a": case "b": case "c": case "d": case "e": case "f": break; default: trace(("WARNING: Board ID contains illegal characters: " + _arg1)); return; }; _local3++; }; } public static function disconnect():void{ if (((_connected) || (_connecting))){ if (_clip != null){ if (_clip.parent != null){ if ((_clip.parent is Sprite)){ Sprite(_clip.parent).removeChild(_clip); _clip = null; }; }; }; _connecting = (_connected = false); flush(true); try { _mochiLocalConnection.close(); } catch(error:Error) { }; }; if (_timer != null){ try { _timer.stop(); } catch(error:Error) { }; }; } public static function allowDomains(_arg1:String):String{ var _local2:String; if (Security.sandboxType != "application"){ Security.allowDomain("*"); Security.allowInsecureDomain("*"); }; if (_arg1.indexOf("http://") != -1){ _local2 = _arg1.split("/")[2].split(":")[0]; if (Security.sandboxType != "application"){ Security.allowDomain(_local2); Security.allowInsecureDomain(_local2); }; }; return (_local2); } public static function getVersion():String{ return ("3.7 as3"); } public static function doClose():void{ _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); } private static function flush(_arg1:Boolean):void{ var _local2:Object; var _local3:Object; if (((_clip) && (_clip._queue))){ while (_clip._queue.length > 0) { _local2 = _clip._queue.shift(); _local3 = null; if (_local2 != null){ if (_local2.callbackID != null){ _local3 = _clip._callbacks[_local2.callbackID]; }; delete _clip._callbacks[_local2.callbackID]; if (((_arg1) && (!((_local3 == null))))){ handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod); }; }; }; }; } public static function get id():String{ return (_id); } private static function onEvent(_arg1:Object):void{ var _local2:String; var _local3:String; _local2 = _arg1.target; _local3 = _arg1.event; switch (_local2){ case "events": MochiEvents.triggerEvent(_arg1.event, _arg1.args); break; case "coins": MochiCoins.triggerEvent(_arg1.event, _arg1.args); break; case "sync": servicesSync.triggerEvent(_arg1.event, _arg1.args); break; }; } private static function urlOptions(_arg1:Object):Object{ var _local2:Object; var _local3:String; var _local4:Array; var _local5:Number; var _local6:Array; _local2 = {}; if (_arg1.stage){ _local3 = _arg1.stage.loaderInfo.parameters.mochiad_options; } else { _local3 = _arg1.loaderInfo.parameters.mochiad_options; }; if (_local3){ _local4 = _local3.split("&"); _local5 = 0; while (_local5 < _local4.length) { _local6 = _local4[_local5].split("="); _local2[unescape(_local6[0])] = unescape(_local6[1]); _local5++; }; }; return (_local2); } public static function setContainer(_arg1:Object=null, _arg2:Boolean=true):void{ if (_arg1 != null){ if ((_arg1 is Sprite)){ _container = _arg1; }; }; if (_arg2){ if ((_container is Sprite)){ Sprite(_container).addChild(_clip); }; }; } private static function handleError(_arg1:Object, _arg2:Object, _arg3:Object):void{ var args = _arg1; var callbackObject = _arg2; var callbackMethod = _arg3; if (args != null){ if (args.onError != null){ args.onError.apply(null, ["NotConnected"]); }; if (((!((args.options == null))) && (!((args.options.onError == null))))){ args.options.onError.apply(null, ["NotConnected"]); }; }; if (callbackMethod != null){ args = {}; args.error = true; args.errorCode = "NotConnected"; if (((!((callbackObject == null))) && ((callbackMethod is String)))){ try { var _local5 = callbackObject; _local5[callbackMethod](args); } catch(error:Error) { }; } else { if (callbackMethod != null){ try { callbackMethod.apply(args); } catch(error:Error) { }; }; }; }; } private static function loadError(_arg1:Object):void{ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load."); MochiServices.disconnect(); MochiServices.onError("IOError"); } private static function initComChannels():void{ if (!_connected){ trace("[SERVICES_API] connected!"); _connecting = false; _connected = true; _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"}); _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"registerGame", preserved:_preserved, id:_id, version:getVersion(), parentURL:_container.loaderInfo.loaderURL}); _clip.onReceive = onReceive; _clip.onEvent = onEvent; _clip.onError = function ():void{ MochiServices.onError("IOError"); }; while (_clip._queue.length > 0) { _mochiLocalConnection.send(_sendChannelName, "onReceive", _clip._queue.shift()); }; }; } private static function loadLCBridge(_arg1:Object):void{ var loader:Loader; var mochiLCURL:String; var req:URLRequest; var complete:Function; var clip = _arg1; loader = new Loader(); mochiLCURL = (_servURL + _mochiLC); req = new URLRequest(mochiLCURL); complete = function (_arg1:Object):void{ _mochiLocalConnection = MovieClip(loader.content); listen(); }; loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); loader.load(req); clip.addChild(loader); } private static function listen():void{ _mochiLocalConnection.connect(_listenChannelName); _clip.handshake = function (_arg1:Object):void{ MochiServices.comChannelName = _arg1.newChannel; }; trace("Waiting for MochiAds services to connect..."); } public static function get clip():Object{ return (_container); } public static function set comChannelName(_arg1:String):void{ if (_arg1 != null){ if (_arg1.length > 3){ _sendChannelName = (_arg1 + "_fromgame"); initComChannels(); }; }; } private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{ var _local3:String; var _local4:String; var _local5:URLRequest; var _local6:URLVariables; _local3 = ("_mochiservices_com_" + _arg1); if (_clip != null){ return (_clip); }; if (!MochiServices.isNetworkAvailable()){ return (null); }; if (urlOptions(_arg2).servURL){ _servURL = urlOptions(_arg2).servURL; }; _local4 = (_servURL + _services); if (urlOptions(_arg2).servicesURL){ _local4 = urlOptions(_arg2).servicesURL; }; _listenChannelName = (_listenChannelName + ((Math.floor(new Date().time) + "_") + Math.floor((Math.random() * 99999)))); MochiServices.allowDomains(_local4); _clip = createEmptyMovieClip(_arg2, _local3, 10336, false); loadLCBridge(_clip); _loader = new Loader(); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); _local5 = new URLRequest(_local4); _local6 = new URLVariables(); _local6.listenLC = _listenChannelName; _local6.mochiad_options = _arg2.loaderInfo.parameters.mochiad_options; _local6.api_version = getVersion(); if (widget){ _local6.widget = true; }; _local5.data = _local6; _loader.load(_local5); _clip.addChild(_loader); _clip._mochiservices_com = _loader; _sendChannel = new LocalConnection(); _clip._queue = []; _clip._nextcallbackID = 0; _clip._callbacks = {}; _timer = new Timer(10000, 1); _timer.addEventListener(TimerEvent.TIMER, connectWait); _timer.start(); return (_clip); } public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{ var id = _arg1; var clip = _arg2; var onError = _arg3; warnID(id, false); if ((clip is DisplayObject)){ if (clip.stage == null){ trace("MochiServices connect requires the containing clip be attached to the stage"); }; if (((!(_connected)) && ((_clip == null)))){ trace("MochiServices Connecting..."); _connecting = true; init(id, clip); }; } else { trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage."); }; if (onError != null){ MochiServices.onError = onError; } else { if (MochiServices.onError == null){ MochiServices.onError = function (_arg1:String):void{ trace(_arg1); }; }; }; } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Boolean=true):MovieClip{ var mc:MovieClip; var parent = _arg1; var name = _arg2; var depth = _arg3; var doAdd = _arg4; mc = new MovieClip(); if (doAdd){ if (((false) && (depth))){ parent.addChildAt(mc, depth); } else { parent.addChild(mc); }; }; try { parent[name] = mc; } catch(e:Error) { throw (new Error("MochiServices requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); }; mc["_name"] = name; return (mc); } public static function bringToTop(_arg1:Event=null):void{ var e = _arg1; if (((!((MochiServices.clip == null))) && (!((MochiServices.childClip == null))))){ try { if (MochiServices.clip.numChildren > 1){ MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1)); }; } catch(errorObject:Error) { trace("Warning: Depth sort error."); _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); }; }; } public static function connectWait(_arg1:TimerEvent):void{ if (!_connected){ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load. (timeout)"); MochiServices.disconnect(); MochiServices.onError("IOError"); }; } } }//package mochi.as3
Section 23
//MochiSocial (mochi.as3.MochiSocial) package mochi.as3 { public class MochiSocial { public static const LOGGED_IN:String = "LoggedIn"; public static const PROFILE_HIDE:String = "ProfileHide"; public static const NO_USER:String = "NoUser"; public static const PROPERTIES_SIZE:String = "PropertiesSize"; public static const IO_ERROR:String = "IOError"; public static const PROPERTIES_SAVED:String = "PropertySaved"; public static const WIDGET_LOADED:String = "WidgetLoaded"; public static const USER_INFO:String = "UserInfo"; public static const ERROR:String = "Error"; public static const LOGIN_SHOW:String = "LoginShow"; public static const LOGGED_OUT:String = "LoggedOut"; public static const PROFILE_SHOW:String = "ProfileShow"; public static const LOGIN_SHOWN:String = "LoginShown"; public static const LOGIN_HIDE:String = "LoginHide"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public static var _user_info:Object = null; public static function getVersion():String{ return (MochiServices.getVersion()); } public static function saveUserProperties(_arg1:Object):void{ MochiServices.send("coins_saveUserProperties", _arg1); } public static function get loggedIn():Boolean{ return (!((_user_info == null))); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function getUserInfo():void{ MochiServices.send("coins_getUserInfo"); } public static function showLoginWidget(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("coins_showLoginWidget", {options:_arg1}); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function requestLogin():void{ MochiServices.send("coins_requestLogin"); } public static function getAPIURL():String{ if (!_user_info){ return (null); }; return (_user_info.api_url); } public static function hideLoginWidget():void{ MochiServices.send("coins_hideLoginWidget"); } public static function getAPIToken():String{ if (!_user_info){ return (null); }; return (_user_info.api_token); } MochiSocial.addEventListener(MochiSocial.LOGGED_IN, function (_arg1:Object):void{ _user_info = _arg1; }); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, function (_arg1:Object):void{ _user_info = null; }); } }//package mochi.as3
Section 24
//MochiSync (mochi.as3.MochiSync) package mochi.as3 { import flash.utils.*; public dynamic class MochiSync extends Proxy { private var _syncContainer:Object; public static var SYNC_PROPERTY:String = "UpdateProperty"; public static var SYNC_REQUEST:String = "SyncRequest"; public function MochiSync():void{ _syncContainer = {}; } public function triggerEvent(_arg1:String, _arg2:Object):void{ switch (_arg1){ case SYNC_REQUEST: MochiServices.send("sync_syncronize", _syncContainer); break; case SYNC_PROPERTY: _syncContainer[_arg2.name] = _arg2.value; break; }; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){ return (_syncContainer[_arg1]); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{ var _local3:String; if (_syncContainer[_arg1] == _arg2){ return; }; _local3 = _arg1.toString(); _syncContainer[_local3] = _arg2; MochiServices.send("sync_propUpdate", {name:_local3, value:_arg2}); } } }//package mochi.as3
Section 25
//MochiUserData (mochi.as3.MochiUserData) package mochi.as3 { import flash.events.*; import flash.utils.*; import flash.net.*; public class MochiUserData extends EventDispatcher { public var callback:Function;// = null public var error:Event;// = null public var key:String;// = null public var operation:String;// = null public var data;// = null public var _loader:URLLoader; public function MochiUserData(_arg1:String="", _arg2:Function=null){ key = null; data = null; error = null; operation = null; callback = null; super(); this.key = _arg1; this.callback = _arg2; } public function securityErrorHandler(_arg1:SecurityErrorEvent):void{ errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + _arg1.toString()))); } public function putEvent(_arg1):void{ request("put", serialize(_arg1)); } public function request(_arg1:String, _arg2:ByteArray):void{ var api_url:String; var api_token:String; var args:URLVariables; var req:URLRequest; var _operation = _arg1; var _data = _arg2; operation = _operation; api_url = MochiSocial.getAPIURL(); api_token = MochiSocial.getAPIToken(); if ((((api_url == null)) || ((api_token == null)))){ errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, "not logged in")); return; }; _loader = new URLLoader(); args = new URLVariables(); args.op = _operation; args.key = key; req = new URLRequest((((MochiSocial.getAPIURL() + "/") + "MochiUserData?") + args.toString())); req.method = URLRequestMethod.POST; req.contentType = "application/x-mochi-userdata"; req.requestHeaders = [new URLRequestHeader("x-mochi-services-version", MochiServices.getVersion()), new URLRequestHeader("x-mochi-api-token", api_token)]; req.data = _data; _loader.dataFormat = URLLoaderDataFormat.BINARY; _loader.addEventListener(Event.COMPLETE, completeHandler); _loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); _loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); try { _loader.load(req); } catch(e:SecurityError) { errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + e.toString()))); }; } public function performCallback():void{ try { callback(this); } catch(e:Error) { trace(("[MochiUserData] exception during callback: " + e)); }; } public function serialize(_arg1):ByteArray{ var _local2:ByteArray; _local2 = new ByteArray(); _local2.objectEncoding = ObjectEncoding.AMF3; _local2.writeObject(_arg1); _local2.compress(); return (_local2); } public function errorHandler(_arg1:IOErrorEvent):void{ data = null; error = _arg1; if (callback != null){ performCallback(); } else { dispatchEvent(_arg1); }; close(); } public function completeHandler(_arg1:Event):void{ var event = _arg1; try { if (_loader.data.length){ data = deserialize(_loader.data); } else { data = null; }; } catch(e:Error) { errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("deserialize error: " + e.toString()))); return; }; if (callback != null){ performCallback(); } else { dispatchEvent(event); }; close(); } public function getEvent():void{ request("get", serialize(null)); } override public function toString():String{ return ((((((((("[MochiUserData operation=" + operation) + " key=\"") + key) + "\" data=") + data) + " error=\"") + error) + "\"]")); } public function close():void{ if (_loader){ _loader.removeEventListener(Event.COMPLETE, completeHandler); _loader.removeEventListener(IOErrorEvent.IO_ERROR, errorHandler); _loader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); _loader.close(); _loader = null; }; error = null; callback = null; } public function deserialize(_arg1:ByteArray){ _arg1.objectEncoding = ObjectEncoding.AMF3; _arg1.uncompress(); return (_arg1.readObject()); } public static function get(_arg1:String, _arg2:Function):void{ var _local3:MochiUserData; _local3 = new MochiUserData(_arg1, _arg2); _local3.getEvent(); } public static function put(_arg1:String, _arg2, _arg3:Function):void{ var _local4:MochiUserData; _local4 = new MochiUserData(_arg1, _arg3); _local4.putEvent(_arg2); } } }//package mochi.as3
Section 26
//bg (bg) package { import flash.media.*; public dynamic class bg extends Sound { } }//package
Section 27
//MochiBot (MochiBot) package { import flash.display.*; import flash.net.*; import flash.system.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ var _local3:MochiBot; var _local4:String; var _local5:URLVariables; var _local6:String; var _local7:URLRequest; var _local8:Loader; if (Security.sandboxType == "localWithFile"){ return (null); }; _local3 = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); _local4 = "http://core.mochibot.com/my/core.swf"; _local5 = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; _local6 = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; _local7 = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; _local8 = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package
Section 28
//reached (reached) package { import flash.media.*; public dynamic class reached extends Sound { } }//package
Section 29
//wrong (wrong) package { import flash.media.*; public dynamic class wrong extends Sound { } }//package

Library Items

Symbol 1 Sound {wrong}
Symbol 2 Sound {bg}
Symbol 3 Sound {reached}
Symbol 4 BitmapUsed by:5
Symbol 5 GraphicUses:4Used by:6
Symbol 6 MovieClipUses:5Used by:90
Symbol 7 GraphicUsed by:8
Symbol 8 MovieClipUses:7Used by:9
Symbol 9 MovieClipUses:8Used by:10
Symbol 10 MovieClipUses:9Used by:90
Symbol 11 GraphicUsed by:14 28 271 280
Symbol 12 GraphicUsed by:13 28 270 280
Symbol 13 MovieClipUses:12Used by:14
Symbol 14 MovieClipUses:11 13Used by:25
Symbol 15 GraphicUsed by:16 28 272 280
Symbol 16 MovieClipUses:15Used by:21
Symbol 17 GraphicUsed by:18 28 273 280
Symbol 18 MovieClipUses:17Used by:21
Symbol 19 GraphicUsed by:20 28 274 280
Symbol 20 MovieClipUses:19Used by:21
Symbol 21 MovieClipUses:16 18 20Used by:25
Symbol 22 BitmapUsed by:23
Symbol 23 GraphicUses:22Used by:24 28
Symbol 24 MovieClipUses:23Used by:25
Symbol 25 MovieClipUses:14 21 24Used by:28
Symbol 26 FontUsed by:27 276
Symbol 27 TextUses:26Used by:28
Symbol 28 ButtonUses:25 27 11 12 15 17 19 23Used by:90
Symbol 29 GraphicUsed by:90
Symbol 30 GraphicUsed by:31
Symbol 31 MovieClipUses:30Used by:90
Symbol 32 GraphicUsed by:33
Symbol 33 MovieClipUses:32Used by:43
Symbol 34 GraphicUsed by:35
Symbol 35 MovieClipUses:34Used by:40
Symbol 36 GraphicUsed by:37
Symbol 37 MovieClipUses:36Used by:40
Symbol 38 GraphicUsed by:39
Symbol 39 MovieClipUses:38Used by:40
Symbol 40 MovieClipUses:35 37 39Used by:43
Symbol 41 GraphicUsed by:42
Symbol 42 MovieClipUses:41Used by:43
Symbol 43 MovieClipUses:33 40 42Used by:90
Symbol 44 GraphicUsed by:45 60
Symbol 45 MovieClipUses:44Used by:55
Symbol 46 GraphicUsed by:47
Symbol 47 MovieClipUses:46Used by:48
Symbol 48 MovieClipUses:47Used by:49 61
Symbol 49 MovieClipUses:48Used by:55
Symbol 50 GraphicUsed by:51
Symbol 51 MovieClipUses:50Used by:55
Symbol 52 GraphicUsed by:55
Symbol 53 GraphicUsed by:54
Symbol 54 MovieClipUses:53Used by:55 65
Symbol 55 MovieClipUses:45 49 51 52 54Used by:59
Symbol 56 GraphicUsed by:57
Symbol 57 MovieClipUses:56Used by:58
Symbol 58 MovieClipUses:57Used by:59 66
Symbol 59 MovieClipUses:55 58Used by:89
Symbol 60 MovieClipUses:44Used by:65
Symbol 61 MovieClipUses:48Used by:65
Symbol 62 GraphicUsed by:63
Symbol 63 MovieClipUses:62Used by:65
Symbol 64 GraphicUsed by:65
Symbol 65 MovieClipUses:60 61 63 64 54Used by:66
Symbol 66 MovieClipUses:65 58Used by:89
Symbol 67 GraphicUsed by:68
Symbol 68 MovieClipUses:67Used by:89
Symbol 69 GraphicUsed by:70
Symbol 70 MovieClipUses:69Used by:89
Symbol 71 GraphicUsed by:72
Symbol 72 MovieClipUses:71Used by:89
Symbol 73 GraphicUsed by:74
Symbol 74 MovieClipUses:73Used by:89
Symbol 75 GraphicUsed by:76
Symbol 76 MovieClipUses:75Used by:89
Symbol 77 GraphicUsed by:78
Symbol 78 MovieClipUses:77Used by:89
Symbol 79 GraphicUsed by:80
Symbol 80 MovieClipUses:79Used by:89
Symbol 81 GraphicUsed by:82
Symbol 82 MovieClipUses:81Used by:89
Symbol 83 GraphicUsed by:84
Symbol 84 MovieClipUses:83Used by:89
Symbol 85 GraphicUsed by:86
Symbol 86 MovieClipUses:85Used by:89
Symbol 87 GraphicUsed by:88
Symbol 88 MovieClipUses:87Used by:89
Symbol 89 MovieClip {Copyofspinandsetspongebob_fla.preloadsfsdf351_23}Uses:59 66 68 70 72 74 76 78 80 82 84 86 88Used by:90
Symbol 90 MovieClip {Copyofspinandsetspongebob_fla.preloadsfsdf352_1}Uses:6 10 28 29 31 43 89Used by:Timeline
Symbol 91 FontUsed by:92 93
Symbol 92 EditableTextUses:91Used by:Timeline
Symbol 93 EditableTextUses:91Used by:Timeline
Symbol 94 GraphicUsed by:97 246
Symbol 95 GraphicUsed by:97 246
Symbol 96 GraphicUsed by:97 246
Symbol 97 MovieClipUses:94 95 96Used by:109 121 246
Symbol 98 GraphicUsed by:109
Symbol 99 GraphicUsed by:109
Symbol 100 GraphicUsed by:109
Symbol 101 GraphicUsed by:109
Symbol 102 GraphicUsed by:109
Symbol 103 GraphicUsed by:109
Symbol 104 GraphicUsed by:109
Symbol 105 GraphicUsed by:109
Symbol 106 GraphicUsed by:109
Symbol 107 GraphicUsed by:109
Symbol 108 GraphicUsed by:109
Symbol 109 MovieClip {Copyofspinandsetspongebob_fla.pl_50}Uses:97 98 99 100 101 102 103 104 105 106 107 108Used by:Timeline
Symbol 110 GraphicUsed by:121
Symbol 111 GraphicUsed by:121
Symbol 112 GraphicUsed by:121
Symbol 113 GraphicUsed by:121
Symbol 114 GraphicUsed by:121
Symbol 115 GraphicUsed by:121
Symbol 116 GraphicUsed by:121
Symbol 117 GraphicUsed by:121
Symbol 118 GraphicUsed by:121
Symbol 119 GraphicUsed by:121
Symbol 120 GraphicUsed by:121
Symbol 121 MovieClip {Copyofspinandsetspongebob_fla.ins_52}Uses:97 110 111 112 113 114 115 116 117 118 119 120Used by:Timeline
Symbol 122 BitmapUsed by:123
Symbol 123 GraphicUses:122Used by:238  Timeline
Symbol 124 BitmapUsed by:125 127 129 131 133 135 137 139 141 143 145 147 149 151 153 155 157 159 161 163 165 167 169 171
Symbol 125 GraphicUses:124Used by:126
Symbol 126 MovieClipUses:125Used by:173 247  Timeline
Symbol 127 GraphicUses:124Used by:128
Symbol 128 MovieClipUses:127Used by:173 247  Timeline
Symbol 129 GraphicUses:124Used by:130
Symbol 130 MovieClipUses:129Used by:173 247  Timeline
Symbol 131 GraphicUses:124Used by:132
Symbol 132 MovieClipUses:131Used by:173 247  Timeline
Symbol 133 GraphicUses:124Used by:134
Symbol 134 MovieClipUses:133Used by:173 247  Timeline
Symbol 135 GraphicUses:124Used by:136
Symbol 136 MovieClipUses:135Used by:173 247  Timeline
Symbol 137 GraphicUses:124Used by:138
Symbol 138 MovieClipUses:137Used by:173 247  Timeline
Symbol 139 GraphicUses:124Used by:140
Symbol 140 MovieClipUses:139Used by:173 247  Timeline
Symbol 141 GraphicUses:124Used by:142
Symbol 142 MovieClipUses:141Used by:173 247  Timeline
Symbol 143 GraphicUses:124Used by:144
Symbol 144 MovieClipUses:143Used by:173 247  Timeline
Symbol 145 GraphicUses:124Used by:146
Symbol 146 MovieClipUses:145Used by:173 247  Timeline
Symbol 147 GraphicUses:124Used by:148
Symbol 148 MovieClipUses:147Used by:173 247  Timeline
Symbol 149 GraphicUses:124Used by:150
Symbol 150 MovieClipUses:149Used by:173 247  Timeline
Symbol 151 GraphicUses:124Used by:152
Symbol 152 MovieClipUses:151Used by:173 247  Timeline
Symbol 153 GraphicUses:124Used by:154
Symbol 154 MovieClipUses:153Used by:173 247  Timeline
Symbol 155 GraphicUses:124Used by:156
Symbol 156 MovieClipUses:155Used by:173 247  Timeline
Symbol 157 GraphicUses:124Used by:158
Symbol 158 MovieClipUses:157Used by:173 247  Timeline
Symbol 159 GraphicUses:124Used by:160
Symbol 160 MovieClipUses:159Used by:173 247  Timeline
Symbol 161 GraphicUses:124Used by:162
Symbol 162 MovieClipUses:161Used by:173 247  Timeline
Symbol 163 GraphicUses:124Used by:164
Symbol 164 MovieClipUses:163Used by:173 247  Timeline
Symbol 165 GraphicUses:124Used by:166
Symbol 166 MovieClipUses:165Used by:173 247  Timeline
Symbol 167 GraphicUses:124Used by:168
Symbol 168 MovieClipUses:167Used by:173 247  Timeline
Symbol 169 GraphicUses:124Used by:170
Symbol 170 MovieClipUses:169Used by:173 247  Timeline
Symbol 171 GraphicUses:124Used by:172
Symbol 172 MovieClipUses:171Used by:173 247  Timeline
Symbol 173 MovieClipUses:126 128 130 132 134 136 138 140 142 144 146 148 150 152 154 156 158 160 162 164 166 168 170 172Used by:Timeline
Symbol 174 BitmapUsed by:175 177 179 181 183 185 187 189 191 193 195 197 199 201 203 205 207 209 211 213 215 217 219 221
Symbol 175 GraphicUses:174Used by:176
Symbol 176 MovieClipUses:175Used by:223 303  Timeline
Symbol 177 GraphicUses:174Used by:178
Symbol 178 MovieClipUses:177Used by:223 303  Timeline
Symbol 179 GraphicUses:174Used by:180
Symbol 180 MovieClipUses:179Used by:223 303  Timeline
Symbol 181 GraphicUses:174Used by:182
Symbol 182 MovieClipUses:181Used by:223 303  Timeline
Symbol 183 GraphicUses:174Used by:184
Symbol 184 MovieClipUses:183Used by:223 303  Timeline
Symbol 185 GraphicUses:174Used by:186
Symbol 186 MovieClipUses:185Used by:223 303  Timeline
Symbol 187 GraphicUses:174Used by:188
Symbol 188 MovieClipUses:187Used by:223 303  Timeline
Symbol 189 GraphicUses:174Used by:190
Symbol 190 MovieClipUses:189Used by:223 303  Timeline
Symbol 191 GraphicUses:174Used by:192
Symbol 192 MovieClipUses:191Used by:223 303  Timeline
Symbol 193 GraphicUses:174Used by:194
Symbol 194 MovieClipUses:193Used by:223 303  Timeline
Symbol 195 GraphicUses:174Used by:196
Symbol 196 MovieClipUses:195Used by:223 303  Timeline
Symbol 197 GraphicUses:174Used by:198
Symbol 198 MovieClipUses:197Used by:223 303  Timeline
Symbol 199 GraphicUses:174Used by:200
Symbol 200 MovieClipUses:199Used by:223 303  Timeline
Symbol 201 GraphicUses:174Used by:202
Symbol 202 MovieClipUses:201Used by:223 303  Timeline
Symbol 203 GraphicUses:174Used by:204
Symbol 204 MovieClipUses:203Used by:223 303  Timeline
Symbol 205 GraphicUses:174Used by:206
Symbol 206 MovieClipUses:205Used by:223 303  Timeline
Symbol 207 GraphicUses:174Used by:208
Symbol 208 MovieClipUses:207Used by:223 303  Timeline
Symbol 209 GraphicUses:174Used by:210
Symbol 210 MovieClipUses:209Used by:223 303  Timeline
Symbol 211 GraphicUses:174Used by:212
Symbol 212 MovieClipUses:211Used by:223 303  Timeline
Symbol 213 GraphicUses:174Used by:214
Symbol 214 MovieClipUses:213Used by:223 303  Timeline
Symbol 215 GraphicUses:174Used by:216
Symbol 216 MovieClipUses:215Used by:223 303  Timeline
Symbol 217 GraphicUses:174Used by:218
Symbol 218 MovieClipUses:217Used by:223 303  Timeline
Symbol 219 GraphicUses:174Used by:220
Symbol 220 MovieClipUses:219Used by:223 303  Timeline
Symbol 221 GraphicUses:174Used by:222
Symbol 222 MovieClipUses:221Used by:223 303  Timeline
Symbol 223 MovieClipUses:176 178 180 182 184 186 188 190 192 194 196 198 200 202 204 206 208 210 212 214 216 218 220 222Used by:Timeline
Symbol 224 BitmapUsed by:225
Symbol 225 GraphicUses:224Used by:Timeline
Symbol 226 FontUsed by:227
Symbol 227 TextUses:226Used by:Timeline
Symbol 228 GraphicUsed by:234 237
Symbol 229 FontUsed by:230 243
Symbol 230 TextUses:229Used by:231 234
Symbol 231 MovieClipUses:230Used by:234
Symbol 232 GraphicUsed by:234 237
Symbol 233 GraphicUsed by:234 237
Symbol 234 ButtonUses:228 231 232 233 230Used by:Timeline
Symbol 235 GraphicUsed by:236 237
Symbol 236 MovieClipUses:235Used by:237
Symbol 237 ButtonUses:228 236 232 233 235Used by:Timeline
Symbol 238 MovieClipUses:123Used by:Timeline
Symbol 239 GraphicUsed by:240
Symbol 240 MovieClipUses:239Used by:Timeline
Symbol 241 FontUsed by:242
Symbol 242 TextUses:241Used by:Timeline
Symbol 243 TextUses:229Used by:Timeline
Symbol 244 FontUsed by:245
Symbol 245 TextUses:244Used by:246
Symbol 246 ButtonUses:97 245 94 95 96Used by:Timeline
Symbol 247 MovieClipUses:126 128 130 132 134 136 138 140 142 144 146 148 150 152 154 156 158 160 162 164 166 168 170 172Used by:Timeline
Symbol 248 GraphicUsed by:251
Symbol 249 FontUsed by:250 253
Symbol 250 TextUses:249Used by:251
Symbol 251 MovieClipUses:248 250Used by:Timeline
Symbol 252 GraphicUsed by:254
Symbol 253 TextUses:249Used by:254
Symbol 254 MovieClipUses:252 253Used by:Timeline
Symbol 255 FontUsed by:256 257
Symbol 256 EditableTextUses:255Used by:Timeline
Symbol 257 EditableTextUses:255Used by:Timeline
Symbol 258 GraphicUsed by:269
Symbol 259 GraphicUsed by:269
Symbol 260 GraphicUsed by:269
Symbol 261 GraphicUsed by:269
Symbol 262 GraphicUsed by:269
Symbol 263 GraphicUsed by:269
Symbol 264 GraphicUsed by:269
Symbol 265 GraphicUsed by:269
Symbol 266 GraphicUsed by:269
Symbol 267 GraphicUsed by:269
Symbol 268 GraphicUsed by:269
Symbol 269 MovieClip {Copyofspinandsetspongebob_fla.timer_113}Uses:258 259 260 261 262 263 264 265 266 267 268Used by:Timeline
Symbol 270 MovieClipUses:12Used by:271
Symbol 271 MovieClipUses:11 270Used by:280
Symbol 272 MovieClipUses:15Used by:275
Symbol 273 MovieClipUses:17Used by:275
Symbol 274 MovieClipUses:19Used by:275
Symbol 275 MovieClipUses:272 273 274Used by:280
Symbol 276 TextUses:26Used by:280
Symbol 277 BitmapUsed by:278
Symbol 278 GraphicUses:277Used by:279 280
Symbol 279 MovieClipUses:278Used by:280
Symbol 280 ButtonUses:271 275 276 279 11 12 15 17 19 278Used by:Timeline
Symbol 281 GraphicUsed by:282
Symbol 282 MovieClipUses:281Used by:288
Symbol 283 GraphicUsed by:288
Symbol 284 GraphicUsed by:285
Symbol 285 MovieClipUses:284Used by:288
Symbol 286 FontUsed by:287
Symbol 287 TextUses:286Used by:288
Symbol 288 MovieClip {Copyofspinandsetspongebob_fla.exel_122}Uses:282 283 285 287Used by:Timeline
Symbol 289 BitmapUsed by:290
Symbol 290 GraphicUses:289Used by:291
Symbol 291 MovieClipUses:290Used by:Timeline
Symbol 292 GraphicUsed by:294 299 300
Symbol 293 GraphicUsed by:294 299 300
Symbol 294 MovieClipUses:292 293Used by:299 300
Symbol 295 GraphicUsed by:296 299 300
Symbol 296 MovieClipUses:295Used by:299 300
Symbol 297 GraphicUsed by:298 299
Symbol 298 MovieClipUses:297Used by:299
Symbol 299 ButtonUses:294 296 298 292 293 295 297Used by:Timeline
Symbol 300 ButtonUses:294 296 292 293 295Used by:Timeline
Symbol 301 GraphicUsed by:302
Symbol 302 MovieClipUses:301Used by:Timeline
Symbol 303 MovieClipUses:176 178 180 182 184 186 188 190 192 194 196 198 200 202 204 206 208 210 212 214 216 218 220 222Used by:Timeline
Symbol 304 BitmapUsed by:305 308
Symbol 305 GraphicUses:304Used by:306
Symbol 306 MovieClipUses:305Used by:325 328
Symbol 307 GraphicUsed by:325 328
Symbol 308 GraphicUses:304Used by:311 313 315
Symbol 309 FontUsed by:310 312 314
Symbol 310 TextUses:309Used by:311
Symbol 311 ButtonUses:308 310Used by:325
Symbol 312 TextUses:309Used by:313
Symbol 313 ButtonUses:308 312Used by:325 328
Symbol 314 TextUses:309Used by:315
Symbol 315 ButtonUses:308 314Used by:325
Symbol 316 FontUsed by:317
Symbol 317 EditableTextUses:316Used by:325
Symbol 318 FontUsed by:319 321 323 326
Symbol 319 TextUses:318Used by:320
Symbol 320 MovieClipUses:319Used by:325
Symbol 321 TextUses:318Used by:322
Symbol 322 MovieClipUses:321Used by:325
Symbol 323 TextUses:318Used by:324
Symbol 324 MovieClipUses:323Used by:325 328
Symbol 325 MovieClip {Copyofspinandsetspongebob_fla.g456t45611_133}Uses:306 307 311 313 315 317 320 322 324Used by:Timeline
Symbol 326 TextUses:318Used by:327
Symbol 327 MovieClipUses:326Used by:328
Symbol 328 MovieClip {Copyofspinandsetspongebob_fla.g456t45611copy_141}Uses:306 307 313 324 327Used by:Timeline
Symbol 329 FontUsed by:330
Symbol 330 EditableTextUses:329Used by:Timeline

Instance Names

"preloadMc"Frame 1Symbol 90 MovieClip {Copyofspinandsetspongebob_fla.preloadsfsdf352_1}
"load_txt"Frame 1Symbol 92 EditableText
"total_txt"Frame 1Symbol 93 EditableText
"playbut"Frame 2Symbol 234 Button
"instbut"Frame 2Symbol 237 Button
"backbut"Frame 3Symbol 246 Button
"a0"Frame 4Symbol 126 MovieClip
"a1"Frame 4Symbol 128 MovieClip
"a2"Frame 4Symbol 130 MovieClip
"a3"Frame 4Symbol 132 MovieClip
"a4"Frame 4Symbol 134 MovieClip
"a5"Frame 4Symbol 136 MovieClip
"a6"Frame 4Symbol 138 MovieClip
"a7"Frame 4Symbol 140 MovieClip
"a8"Frame 4Symbol 142 MovieClip
"a9"Frame 4Symbol 144 MovieClip
"a10"Frame 4Symbol 146 MovieClip
"a11"Frame 4Symbol 148 MovieClip
"a12"Frame 4Symbol 150 MovieClip
"a13"Frame 4Symbol 152 MovieClip
"a14"Frame 4Symbol 154 MovieClip
"a15"Frame 4Symbol 156 MovieClip
"a16"Frame 4Symbol 158 MovieClip
"a17"Frame 4Symbol 160 MovieClip
"a18"Frame 4Symbol 162 MovieClip
"a19"Frame 4Symbol 164 MovieClip
"a20"Frame 4Symbol 166 MovieClip
"a21"Frame 4Symbol 168 MovieClip
"a22"Frame 4Symbol 170 MovieClip
"a23"Frame 4Symbol 172 MovieClip
"img"Frame 4Symbol 247 MovieClip
"score_txt"Frame 4Symbol 256 EditableText
"times"Frame 4Symbol 257 EditableText
"timer"Frame 4Symbol 269 MovieClip {Copyofspinandsetspongebob_fla.timer_113}
"logo"Frame 4Symbol 280 Button
"resetbut"Frame 4Symbol 288 MovieClip {Copyofspinandsetspongebob_fla.exel_122}
"sndon"Frame 4Symbol 299 Button
"sndoff"Frame 4Symbol 300 Button
"sndbut"Frame 4Symbol 302 MovieClip
"a0"Frame 5Symbol 176 MovieClip
"a1"Frame 5Symbol 178 MovieClip
"a2"Frame 5Symbol 180 MovieClip
"a3"Frame 5Symbol 182 MovieClip
"a4"Frame 5Symbol 184 MovieClip
"a5"Frame 5Symbol 186 MovieClip
"a6"Frame 5Symbol 188 MovieClip
"a7"Frame 5Symbol 190 MovieClip
"a8"Frame 5Symbol 192 MovieClip
"a9"Frame 5Symbol 194 MovieClip
"a10"Frame 5Symbol 196 MovieClip
"a11"Frame 5Symbol 198 MovieClip
"a12"Frame 5Symbol 200 MovieClip
"a13"Frame 5Symbol 202 MovieClip
"a14"Frame 5Symbol 204 MovieClip
"a15"Frame 5Symbol 206 MovieClip
"a16"Frame 5Symbol 208 MovieClip
"a17"Frame 5Symbol 210 MovieClip
"a18"Frame 5Symbol 212 MovieClip
"a19"Frame 5Symbol 214 MovieClip
"a20"Frame 5Symbol 216 MovieClip
"a21"Frame 5Symbol 218 MovieClip
"a22"Frame 5Symbol 220 MovieClip
"a23"Frame 5Symbol 222 MovieClip
"img"Frame 5Symbol 303 MovieClip
"Pallete"Frame 6Symbol 325 MovieClip {Copyofspinandsetspongebob_fla.g456t45611_133}
"Pallete"Frame 7Symbol 328 MovieClip {Copyofspinandsetspongebob_fla.g456t45611copy_141}
"ScoreText"Frame 7Symbol 330 EditableText
"logoload"Symbol 90 MovieClip {Copyofspinandsetspongebob_fla.preloadsfsdf352_1} Frame 1Symbol 28 Button
"preloadCar"Symbol 90 MovieClip {Copyofspinandsetspongebob_fla.preloadsfsdf352_1} Frame 1Symbol 89 MovieClip {Copyofspinandsetspongebob_fla.preloadsfsdf351_23}
"SubmitScore"Symbol 325 MovieClip {Copyofspinandsetspongebob_fla.g456t45611_133} Frame 1Symbol 311 Button
"moreGames"Symbol 325 MovieClip {Copyofspinandsetspongebob_fla.g456t45611_133} Frame 1Symbol 313 Button
"PlayAgain"Symbol 325 MovieClip {Copyofspinandsetspongebob_fla.g456t45611_133} Frame 1Symbol 315 Button
"Score_Txt"Symbol 325 MovieClip {Copyofspinandsetspongebob_fla.g456t45611_133} Frame 1Symbol 317 EditableText
"congMc"Symbol 325 MovieClip {Copyofspinandsetspongebob_fla.g456t45611_133} Frame 1Symbol 320 MovieClip
"goverMc"Symbol 325 MovieClip {Copyofspinandsetspongebob_fla.g456t45611_133} Frame 1Symbol 322 MovieClip
"t"Symbol 325 MovieClip {Copyofspinandsetspongebob_fla.g456t45611_133} Frame 1Symbol 324 MovieClip
"moreGames"Symbol 328 MovieClip {Copyofspinandsetspongebob_fla.g456t45611copy_141} Frame 1Symbol 313 Button
"t"Symbol 328 MovieClip {Copyofspinandsetspongebob_fla.g456t45611copy_141} Frame 1Symbol 324 MovieClip
"t"Symbol 328 MovieClip {Copyofspinandsetspongebob_fla.g456t45611copy_141} Frame 1Symbol 327 MovieClip

Special Tags

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

Labels

"Loader"Frame 1
"start"Frame 2
"inst"Frame 3
"Level1"Frame 4
"Level2"Frame 5
"gameover"Frame 6
"submitpage"Frame 7




http://swfchan.com/24/116383/info.shtml
Created: 8/3 -2019 23:17:37 Last modified: 8/3 -2019 23:17:37 Server time: 14/11 -2024 17:21:49