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

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

Entropy - 3D Pong Game.swf

This is the info page for
Flash #77013

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


Text
Fastest Curve :
Upgrade Target Hits :
Upgrade Points :
Number of Misses :
Ending Ball Velocity :

34.233

34.233

34.233

34.233

34.233

100%

100%

1000000

YOUR SCORE

POINTS:

0

TIME BONUS:

Loading

UPGRADE:

0

TOTAL TIME:

Loading

Play Game

I CAN DO IT!

Read Tutorial

I NEED HELP!!!

See More...

NOT HAD ENOUGH?

1000000

19000

322

3224333

TIME BONUS :

ROUND POINTS :

TOTAL SCORE :

The Upgrade Menu

Upgrades are extremely
important to Entropy.   There
are 3 upgrades you can
choose from. Increasing Curve
Power gives you more control
of the ball.  Increasing Paddle
size gives you a larger hit
area. And increasing Return
speed will cause balls hit from
your paddle to more quicker.

Gameplay Basics

Your goal in Entropy is to
cause your opponent to miss
hitting the ball more than
yourself. Look at the
Scoreboard at top center.
When you miss the ball, the
score moves towards the
computer, when the computer
misses the scores moves
towards you.  When 3 green
balls are filled you win.
The yellow dots and lines show
the current position of the ball
to help you follow its position.

Curving the Ball

This game is all about curving
the ball.  If you can't curve the
ball, you won't win.  In order to
curve the ball, you must move
the paddle into the ball. The
faster you move the paddle,
the more spin you apply and
therefore more curve. The ball
will curve in the opposite
direction of the movement of
your paddle.  You should
upgrade your curve power as
much as you need in order to
better curve the ball.

It takes practice... keep trying!

Upgrade Targets

Random translucent blue
blocks stretching across the
walls serve as targets that give
you upgrade points upon
hitting them.   The smaller the
target the more points you'll
receive.  If you hit the target a
chime will play and it will turn
green and fade away.  To
better hit the targets you will
need to practive your skills at
curving the ball.
Good luck.

147

45

45

45

Increase Return Speed

ActionScript [AS3]

Section 1
//DebugDispatcher (com.blitzagency.xray.logger.events.DebugDispatcher) package com.blitzagency.xray.logger.events { import flash.events.*; public class DebugDispatcher extends EventDispatcher { public static var TRACE:String = "trace"; public function  (_arg1:String, _arg2:Object):void{ dispatchEvent(new DebugEvent(DebugDispatcher.TRACE, false, false, _arg2)); } } }//package com.blitzagency.xray.logger.events
Section 2
//DebugEvent (com.blitzagency.xray.logger.events.DebugEvent) package com.blitzagency.xray.logger.events { import flash.events.*; public class DebugEvent extends Event { public var obj:Object; public function DebugEvent(_arg1:String, _arg2:Boolean, _arg3:Boolean, _arg4:Object):void{ obj = new Object(); super(_arg1, _arg2, _arg3); obj = _arg4; } } }//package com.blitzagency.xray.logger.events
Section 3
//ObjectTools (com.blitzagency.xray.logger.util.ObjectTools) package com.blitzagency.xray.logger.util { import com.blitzagency.xray.logger.*; import flash.utils.*; public class ObjectTools { private static var log:XrayLog = new XrayLog(); public function  (_arg1:Object):String{ return (""); } public static function getImmediateClassPath(_arg1:Object):String{ var _local2:String; var _local3:String; _local2 = getQualifiedClassName(_arg1); _local3 = getQualifiedSuperclassName(_arg1); _local2 = ((_local2.indexOf("::") > -1)) ? _local2.split("::").join(".") : _local2; if (_local3 == null){ return (_local2); }; _local3 = ((_local3.indexOf("::") > -1)) ? _local3.split("::").join(".") : _local3; return (((_local3 + ".") + _local2)); } public static function getFullClassPath(_arg1:Object):String{ var _local2:XML; var _local3:Array; var _local4:String; var _local5:XML; var _local6:String; _local2 = describeType(_arg1); _local3 = []; _local4 = getQualifiedClassName(_arg1); _local4 = ((_local4.indexOf("::") > -1)) ? _local4.split("::").join(".") : _local4; _local3.push(_local4); for each (_local5 in _local2.extendsClass) { _local6 = ((_local5.@type.toString().indexOf("::") > -1)) ? _local5.@type.toString().split("::")[1] : _local5.@type.toString(); _local3.push(_local6); }; return (_local3.join(".")); } } }//package com.blitzagency.xray.logger.util
Section 4
//PropertyTools (com.blitzagency.xray.logger.util.PropertyTools) package com.blitzagency.xray.logger.util { import flash.utils.*; public class PropertyTools { private static function getVariables():void{ } public static function getProperties(_arg1:Object):Array{ var ary:Array; var xmlDoc:XML; var item:XML; var name:String; var type:String; var value:Object; var obj = _arg1; ary = []; try { xmlDoc = describeType(obj); for each (item in xmlDoc.variable) { name = item.@name.toString(); type = item.@type.toString(); value = ((obj[name])!=null) ? obj[name] : ""; ary.push({name:name, type:type, value:value}); }; } catch(e:Error) { }; return (ary); } private static function getMethods():void{ } } }//package com.blitzagency.xray.logger.util
Section 5
//Debug (com.blitzagency.xray.logger.Debug) package com.blitzagency.xray.logger { import flash.events.*; import flash.utils.*; import com.blitzagency.xray.logger.events.*; import flash.net.*; public class Debug { private static var connected:Boolean = false; private static var xrayLC:LocalConnection; private static var ed:DebugDispatcher = new DebugDispatcher(); public static function traceObject(_arg1:Object, _arg2:Number=254, _arg3:Number=0, _arg4:String="", _arg5:Number=0):void{ var recurseDepth:Number; var indent:Number; var prop:String; var lead:String; var i:Number; var obj:String; var o = _arg1; var pRecurseDepth = _arg2; var pIndent = _arg3; var pPackage = _arg4; var pLevel = _arg5; try { recurseDepth = pRecurseDepth; indent = pIndent; for (prop in o) { lead = ""; i = 0; while (i < indent) { lead = (lead + " "); i = (i + 1); }; obj = o[prop].toString(); if ((o[prop] is Array)){ obj = "[Array]"; }; if (obj == "[object Object]"){ obj = "[Object]"; }; Debug.trace((((lead + prop) + ": ") + obj), pPackage, pLevel); if (recurseDepth > 0){ Debug.traceObject(o[prop], (recurseDepth - 1), (indent + 1), pPackage, pLevel); }; }; } catch(e:Error) { }; } public static function trace(_arg1:Object, _arg2:String="", _arg3:Number=0):void{ var msg:String; var pMsg = _arg1; var pPackage = _arg2; var pLevel = _arg3; ed. (DebugDispatcher.TRACE, {message:pMsg, classPackage:pPackage}); if (!connected){ makeConnection(); }; if (connected){ try { msg = ((String(pMsg).length >= 39995)) ? (String(pMsg).substr(0, 39995) + "...") : String(pMsg); xrayLC.send("_xray_view_conn", "setTrace", msg, pLevel, pPackage); } catch(e:LogError) { LogError("No Xray Interface running"); }; }; } private static function makeConnection():void{ var err:LogError; xrayLC = new LocalConnection(); xrayLC.addEventListener("status", statusHandler); xrayLC.allowDomain("*"); try { xrayLC.connect(("_xray_standAlone_debug" + getTimer())); connected = true; } catch(e:Error) { err = new LogError("log"); setTimeout(makeConnection, 1000); }; } public static function addEventListener(_arg1:String, _arg2:Function):void{ ed.addEventListener(_arg1, _arg2); } private static function initialize():Boolean{ ed = new DebugDispatcher(); return (true); } private static function statusHandler(_arg1:StatusEvent):void{ if ((((((_arg1.code == null)) && ((_arg1.level == "error")))) && (connected))){ connected = false; } else { if ((((_arg1.level == "status")) && ((_arg1.code == null)))){ connected = true; }; }; } } }//package com.blitzagency.xray.logger class LogError extends Error { private function LogError(_arg1:String){ super(_arg1); } }
Section 6
//Log (com.blitzagency.xray.logger.Log) package com.blitzagency.xray.logger { import com.blitzagency.xray.logger.util.*; public class Log { private var level:Number; private var  :String;// = "" private var classPackage:String; private var  :Object; private var message:String; public function Log(_arg1:String, _arg2:Object, _arg3:Number, ... _args){ var err:LogError; var nullArray:Array; var str:String; var p_message = _arg1; var p_dump = _arg2; var p_level = _arg3; var rest = _args;  = ""; super(); try { nullArray.push("bogus"); } catch(e:Error) { err = new LogError("log"); } finally { if (err.hasOwnProperty("getStackTrace")){ str = err.getStackTrace();  ((str)); } else {  (""); };  (p_message); (p_dump); setLevel(p_level);  (p_dump); }; } public function setLevel(_arg1:Number):void{ level = _arg1; } public function getCaller():String{ return ( ); } public function  (_arg1:String):void{ message = _arg1; } public function getLevel():Number{ return (level); } public function getDump():Object{ return ( ); } public function  (_arg1:String):void{  = _arg1; } public function  (_arg1:Object):void{ classPackage = ObjectTools.getImmediateClassPath(_arg1); } public function getMessage():String{ return (message); } public function getClassPackage():String{ return (classPackage); } public function (_arg1:Object):void{   = _arg1; } private function (_arg1:String):String{ var ary:Array; var str = _arg1; ary = []; try { str = str.split("\n").join(""); ary = str.split("\tat "); str = ary[3]; } catch(e:Error) { } finally { str = ""; }; return (str); } } }//package com.blitzagency.xray.logger class LogError extends Error { private function LogError(_arg1:String){ super(_arg1); } }
Section 7
//Logger (com.blitzagency.xray.logger.Logger) package com.blitzagency.xray.logger { public interface Logger { function setLevel(_arg1:Number=0):void; function debug(_arg1:Log):void; function fatal(_arg1:Log):void; function warn(_arg1:Log):void; function error(_arg1:Log):void; function log(_arg1:String, _arg2:String, _arg3:String, _arg4:Number, _arg5:Object=null):void; function info(_arg1:Log):void; } }//package com.blitzagency.xray.logger
Section 8
//XrayLog (com.blitzagency.xray.logger.XrayLog) package com.blitzagency.xray.logger { public class XrayLog { private var  :XrayLogger; public function XrayLog(){   = XrayLogger.getInstance(); } public function debug(_arg1:String, ... _args):void{ var _local3:Number; if (_args.length == 0){  .debug(new Log(_arg1, null, XrayLogger.DEBUG)); }; _local3 = 0; while (_local3 < _args.length) { if (_local3 > 0){ _arg1 = ""; };  .debug(new Log(_arg1, _args[_local3], XrayLogger.DEBUG)); _local3++; }; } public function fatal(_arg1:String, ... _args):void{ var _local3:Number; if (_args.length == 0){  .fatal(new Log(_arg1, null, XrayLogger.FATAL)); }; _local3 = 0; while (_local3 < _args.length) { if (_local3 > 0){ _arg1 = ""; };  .fatal(new Log(_arg1, _args[_local3], XrayLogger.FATAL)); _local3++; }; } public function info(_arg1:String, ... _args):void{ var _local3:Number; if (_args.length == 0){  .info(new Log(_arg1, null, XrayLogger.INFO)); }; _local3 = 0; while (_local3 < _args.length) { if (_local3 > 0){ _arg1 = ""; };  .info(new Log(_arg1, _args[_local3], XrayLogger.INFO)); _local3++; }; } public function warn(_arg1:String, ... _args):void{ var _local3:Number; if (_args.length == 0){  .warn(new Log(_arg1, null, XrayLogger.WARN)); }; _local3 = 0; while (_local3 < _args.length) { if (_local3 > 0){ _arg1 = ""; };  .warn(new Log(_arg1, _args[_local3], XrayLogger.WARN)); _local3++; }; } public function error(_arg1:String, ... _args):void{ var _local3:Number; if (_args.length == 0){  .error(new Log(_arg1, null, XrayLogger.ERROR)); }; _local3 = 0; while (_local3 < _args.length) { if (_local3 > 0){ _arg1 = ""; };  .error(new Log(_arg1, _args[_local3], XrayLogger.ERROR)); _local3++; }; } } }//package com.blitzagency.xray.logger
Section 9
//XrayLogger (com.blitzagency.xray.logger.XrayLogger) package com.blitzagency.xray.logger { import flash.events.*; import flash.utils.*; import com.blitzagency.xray.logger.util.*; public class XrayLogger extends EventDispatcher implements Logger { private var :Number;// = 3 private var level:Number;// = 0 private var :Number;// = 0 private var :Number;// = 254 private var :Array; public static var FATAL:Number = 4; public static var WARN:Number = 2; public static var ERROR:Number = 3; public static var INFO:Number = 1; public static var DEBUG:Number = 0; private static var _instance:XrayLogger = null; public static var NONE:Number = 5; public function XrayLogger(){ level = 0;  = 3;  = 254;  = 0;  = []; super(); } public function ():Boolean{ var _local1:uint; if (.length == 0){ return (true); }; _local1 = 0; while (_local1 < .length) { _local1++; }; return (true); } public function debug(_arg1:Log):void{ if (_arg1.getLevel() == level){ log(_arg1.getMessage(), _arg1.getCaller(), _arg1.getClassPackage(), 0, _arg1.getDump()); }; } public function (_arg1:Number=0):void{  = _arg1; } public function error(_arg1:Log):void{ if (_arg1.getLevel() >= level){ log(_arg1.getMessage(), _arg1.getCaller(), _arg1.getClassPackage(), 3, _arg1.getDump()); }; } public function setLevel(_arg1:Number=0):void{ level = _arg1; } public function fatal(_arg1:Log):void{ if (_arg1.getLevel() >= level){ log(_arg1.getMessage(), _arg1.getCaller(), _arg1.getClassPackage(), 4, _arg1.getDump()); }; } public function warn(_arg1:Log):void{ if (_arg1.getLevel() >= level){ log(_arg1.getMessage(), _arg1.getCaller(), _arg1.getClassPackage(), 2, _arg1.getDump()); }; } public function (_arg1:Number):void{  = _arg1; } public function (_arg1:Number):void{  = _arg1; } public function info(_arg1:Log):void{ if (_arg1.getLevel() >= level){ log(_arg1.getMessage(), _arg1.getCaller(), _arg1.getClassPackage(), 1, _arg1.getDump()); }; } public function log(_arg1:String, _arg2:String, _arg3:String, _arg4:Number, _arg5:Object=null):void{ var _local6:String; var _local7:String; var _local8:String; var _local9:Object; _local6 = (("(" + getTimer()) + ") "); if (_arg3.length > 0){ _local6 = (_local6 + (_arg2 + "\n")); }; _local6 = (_local6 + _arg1); if (_arg1.length > 0){ Debug.trace(_local6, _arg3, _arg4); }; if (_arg5 == null){ return; }; _local7 = typeof(_arg5); if ((((((((((_local7 == "string")) || ((_local7 == "number")))) || ((_local7 == "boolean")))) || ((_local7 == "undefined")))) || ((_local7 == "null")))){ Debug.trace(_arg5, _arg3, _arg4); } else { if (_local7 == "xml"){ Debug.trace(_arg5.toString(), _arg3, _arg4); } else { _local8 = ObjectTools.getImmediateClassPath(_arg5); if ((((_local8 == "Object")) || ((_local8 == "Object.Array")))){ Debug.traceObject(_arg5, , , _arg3, _arg4); } else { _local9 = PropertyTools.getProperties(_arg5); Debug.traceObject(_local9, , , _arg3, _arg4); }; }; }; } public function (_arg1:Array):void{  = _arg1; } public static function getInstance():XrayLogger{ if (_instance == null){ _instance = new (XrayLogger); }; return (_instance); } public static function resolveLevelAsName(_arg1:Number):String{ switch (_arg1){ case 0: return ("debug"); case 1: return ("info"); case 2: return ("warn"); case 3: return ("error"); case 4: return ("fatal"); default: return ("debug"); }; } } }//package com.blitzagency.xray.logger
Section 10
//gameOver_animationIn_8 (engine_fla.gameOver_animationIn_8) package engine_fla { import flash.display.*; public dynamic class gameOver_animationIn_8 extends MovieClip { public function gameOver_animationIn_8(){ addFrameScript(10,  ); } function  (){ stop(); } } }//package engine_fla
Section 11
//greenflash_21 (engine_fla.greenflash_21) package engine_fla { import flash.display.*; public dynamic class greenflash_21 extends MovieClip { public function greenflash_21(){ addFrameScript(17, frame18); } function frame18(){ stop(); } } }//package engine_fla
Section 12
//greenLoadIn_61 (engine_fla.greenLoadIn_61) package engine_fla { import flash.display.*; public dynamic class greenLoadIn_61 extends MovieClip { public function greenLoadIn_61(){ addFrameScript(24, ); } function (){ stop(); } } }//package engine_fla
Section 13
//holdEVERYTHING_2 (engine_fla.holdEVERYTHING_2) package engine_fla { import flash.display.*; public dynamic class holdEVERYTHING_2 extends MovieClip { public function holdEVERYTHING_2(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package engine_fla
Section 14
//levelComplete_37 (engine_fla.levelComplete_37) package engine_fla { import flash.display.*; public dynamic class levelComplete_37 extends MovieClip { public function levelComplete_37(){ addFrameScript(59, frame60); } function frame60(){ stop(); } } }//package engine_fla
Section 15
//logo_blurin_6 (engine_fla.logo_blurin_6) package engine_fla { import flash.display.*; public dynamic class logo_blurin_6 extends MovieClip { public function logo_blurin_6(){ addFrameScript(20,  ); } function  (){ stop(); } } }//package engine_fla
Section 16
//MainTimeline (engine_fla.MainTimeline) package engine_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import mochi.*; import net.amp3d.entropy.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.ui.*; import flash.net.*; import flash.system.*; import flash.filters.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.xml.*; public dynamic class MainTimeline extends MovieClip { public var  :ContextMenu; public var movie:MovieClip; public var lock:Boolean; public var preloader:MovieClip; public var :Array; public var :ContextMenuItem; public var :Engine; public function MainTimeline(){ addFrameScript(0, frame1, 1, , 3, , 4, ); } public function  (_arg1:ProgressEvent):void{ var _local2:Number; var _local3:Number; _local2 = _arg1.target.bytesLoaded; _local3 = _arg1.target.bytesTotal; trace((_local2 / _local3)); preloader.loadingText.text = (Math.ceil(((_local2 / _local3) * 100)) + "%"); preloader.loadingText2.text = (Math.ceil(((_local2 / _local3) * 100)) + "%"); } public function  (_arg1:Event):void{ play(); } function frame1(){  = new ContextMenu();  .hideBuiltInItems();  = new ContextMenuItem("www.amp3d.net");  .customItems.push(); this.contextMenu =  ; MochiAd.showPreGameAd({clip:root, id:"73ba7c5ee9e1569c", res:"550x400", background:1400157, color:2141367, outline:13033727, no_bg:false}); } function (){ stop(); if (!lock){  = new Engine(stage); }; } function (){ stop(); movie.addEventListener("playon", ); movie.addEventListener(MouseEvent.MOUSE_DOWN, ); movie.buttonMode = true; } function (){ stop(); lock = false;  = ["www.amp3d.net", "www.flashgamelicense.com", "flashgamelicense.com"];  (); MochiBot.track(this, "7354f46e"); MochiServices.connect("73ba7c5ee9e1569c", root); this.loaderInfo.addEventListener(ProgressEvent.PROGRESS,  ); this.loaderInfo.addEventListener(Event.COMPLETE,  ); if ((loaderInfo.bytesLoaded / loaderInfo.bytesTotal) > 0.99){ play(); }; } public function (_arg1:MouseEvent){ navigateToURL(new URLRequest("http://amp3d.net"), "_blank"); } public function (_arg1:Event){ movie.removeEventListener("playon", ); play(); } public function  (_arg1:Array){ var _local2:Array; var _local3:Array; var _local4:int; trace("here"); _local2 = this.loaderInfo.url.split("://"); _local3 = _local2[1].split("/"); _local4 = 0; while (_local4 < _arg1.length) { if (_arg1[_local4] == _local3[0]){ lock = false; }; _local4++; }; if (lock){ trace("HERE HERE"); root.alpha = 0; this.loaderInfo.removeEventListener(Event.COMPLETE,  ); }; } } }//package engine_fla
Section 17
//parLogo_63 (engine_fla.parLogo_63) package engine_fla { import flash.display.*; import flash.events.*; import flash.utils.*; public dynamic class parLogo_63 extends MovieClip { public var  :Timer; public function parLogo_63(){ addFrameScript(34,  , 48,  ); } function  (){ stop();  = new Timer(700);  .addEventListener("timer",  );  .start(); } function  (){ dispatchEvent(new Event("playon")); } public function  (_arg1:TimerEvent){ play();  .stop();  .removeEventListener("timer",  ); } } }//package engine_fla
Section 18
//preloader_1 (engine_fla.preloader_1) package engine_fla { import flash.display.*; import flash.text.*; public dynamic class preloader_1 extends MovieClip { public var loadingText:TextField; public var loadingText2:TextField; } }//package engine_fla
Section 19
//redflash_18 (engine_fla.redflash_18) package engine_fla { import flash.display.*; public dynamic class redflash_18 extends MovieClip { public function redflash_18(){ addFrameScript(17, frame18); } function frame18(){ stop(); } } }//package engine_fla
Section 20
//upgrade_levels_60 (engine_fla.upgrade_levels_60) package engine_fla { import flash.display.*; public dynamic class upgrade_levels_60 extends MovieClip { public function upgrade_levels_60(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package engine_fla
Section 21
//MochiScores (mochi.MochiScores) package mochi { 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 options = _arg1; if (options != null){ if (options.clip != null){ if ((options.clip is Sprite)){ MochiServices.setContainer(options.clip); }; delete options.clip; } else { MochiServices.setContainer(); }; MochiServices.stayOnTop(); 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; }; }; }; 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.play(); } 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.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{ MochiServices.send("scores_submit", {score:_arg1, name:_arg2}, _arg3, _arg4); } public static function onClose(_arg1:Object=null):void{ if (_arg1 != null){ if (_arg1.error != null){ if (_arg1.error == true){ if (onErrorHandler != null){ if (_arg1.errorCode == null){ _arg1.errorCode = "IOError"; }; onErrorHandler(_arg1.errorCode); MochiServices.doClose(); return; }; }; }; }; onCloseHandler(); MochiServices.doClose(); } public static function setBoardID(_arg1:String):void{ MochiScores.boardID = _arg1; MochiServices.send("scores_setBoardID", {boardID:_arg1}); } } }//package mochi
Section 22
//MochiServices (mochi.MochiServices) package mochi { import flash.display.*; import flash.events.*; import flash.utils.*; 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 _sendChannel:LocalConnection; private static var _rcvChannelName:String; private static var _gatewayURL:String = "http://www.mochiads.com/static/lib/services/services.swf"; private static var _clip:MovieClip; private static var _loader:Loader; private static var _id:String; private static var _listenChannel:LocalConnection; private static var _timer:Timer; private static var _sendChannelName:String; private static var _startTime:Number; private static var _connecting:Boolean = false; public static var onError:Object; private static var _listenChannelName:String = "__mochiservices"; private static var _rcvChannel:LocalConnection; public static function isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{ if (_connected){ _sendChannel.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); } else { if ((((_clip == null)) || (!(_connecting)))){ onError("NotConnected"); 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++; }; }; } public static function get connected():Boolean{ return (_connected); } private static function flush(_arg1:Boolean):void{ var _local2:Object; var _local3:Object; if (_clip != null){ if (_clip._queue != null){ 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); }; }; }; }; }; } private static function init(_arg1:String, _arg2:Object):void{ _id = _arg1; if (_arg2 != null){ _container = _arg2; loadCommunicator(_arg1, _container); }; } public static function get childClip():Object{ return (_clip); } public static function get id():String{ return (_id); } public static function stayOnTop():void{ _container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true); if (_clip != null){ _clip.visible = true; }; } public static function getVersion():String{ return ("1.32"); } 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 { _listenChannel.close(); _rcvChannel.close(); } catch(error:Error) { }; }; if (_timer != null){ try { _timer.stop(); } catch(error:Error) { }; }; } public static function allowDomains(_arg1:String):String{ var _local2:String; Security.allowDomain("*"); Security.allowInsecureDomain("*"); if (_arg1.indexOf("http://") != -1){ _local2 = _arg1.split("/")[2].split(":")[0]; Security.allowDomain(_local2); Security.allowInsecureDomain(_local2); }; return (_local2); } public static function doClose():void{ _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); if (_clip.parent != null){ Sprite(_clip.parent).removeChild(_clip); }; } 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 onStatus(_arg1:StatusEvent):void{ switch (_arg1.level){ case "error": _connected = false; _listenChannel.connect(_listenChannelName); break; }; } private static function initComChannels():void{ if (!_connected){ _sendChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus); _sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"}); _sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", id:_id, clip:_container, version:getVersion()}); _rcvChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus); _clip.onReceive = function (_arg1:Object):void{ var cb:String; var cblst:Object; var method:*; var methodName:String; var obj:Object; var pkg = _arg1; cb = pkg.callbackID; cblst = this.client._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 this.client._callbacks[cb]; }; _clip.onError = function ():void{ MochiServices.onError("IOError"); }; _rcvChannel.connect(_rcvChannelName); trace("connected!"); _connecting = false; _connected = true; _listenChannel.close(); while (_clip._queue.length > 0) { _sendChannel.send(_sendChannelName, "onReceive", _clip._queue.shift()); }; }; } private static function listen():void{ _listenChannel = new LocalConnection(); _listenChannel.client = _clip; _clip.handshake = function (_arg1:Object):void{ MochiServices.comChannelName = _arg1.newChannel; }; _listenChannel.allowDomain("*", "localhost"); _listenChannel.allowInsecureDomain("*", "localhost"); _listenChannel.connect(_listenChannelName); trace("Waiting for MochiAds services to connect..."); } 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) { }; }; }; }; } 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"); _rcvChannelName = _arg1; initComChannels(); }; }; } private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{ var clipname:String; var f:Function; var req:URLRequest; var id = _arg1; var clip = _arg2; clipname = ("_mochiservices_com_" + id); if (_clip != null){ return (_clip); }; if (!MochiServices.isNetworkAvailable()){ return (null); }; MochiServices.allowDomains(_gatewayURL); _clip = createEmptyMovieClip(clip, clipname, 10336, false); _loader = new Loader(); _timer = new Timer(1000, 0); _startTime = getTimer(); _timer.addEventListener(TimerEvent.TIMER, connectWait); _timer.start(); f = function (_arg1:Object):void{ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load."); MochiServices.disconnect(); MochiServices.onError("IOError"); }; _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f); req = new URLRequest(_gatewayURL); _loader.load(req); _clip.addChild(_loader); _clip._mochiservices_com = _loader; _sendChannel = new LocalConnection(); _clip._queue = []; _rcvChannel = new LocalConnection(); _rcvChannel.allowDomain("*", "localhost"); _rcvChannel.allowInsecureDomain("*", "localhost"); _rcvChannel.client = _clip; _clip._nextcallbackID = 0; _clip._callbacks = {}; listen(); return (_clip); } public static function bringToTop(_arg1:Event):void{ var e = _arg1; if (MochiServices.clip != null){ if (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 connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{ var id = _arg1; var clip = _arg2; var onError = _arg3; if ((clip is DisplayObject)){ 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 connectWait(_arg1:TimerEvent):void{ if ((getTimer() - _startTime) > 10000){ if (!_connected){ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load."); MochiServices.disconnect(); MochiServices.onError("IOError"); }; _timer.stop(); }; } } }//package mochi
Section 23
//assetLevelComplete (net.amp3d.assets.assetLevelComplete) package net.amp3d.assets { import flash.display.*; import flash.events.*; import mochi.*; import net.amp3d.entropy.*; import flash.text.*; public class assetLevelComplete extends MovieClip { private var  :levelCompleteStats; private var  :Number; private var :Number; public var tRoundScore:MovieClip; public var tTimeBonus:MovieClip; public var roundbonus:TextField; public var sUpgrades:SimpleButton; private var  :Number; private var  :Number;// = 0 private var  :Number;// = 0 public var timebonus:TextField; private var :int; private var  :Boolean;// = false private var roundScore:Number; private var :Stage; private var :int; private var  :Number;// = 0 public var totalscore:TextField; private var  :int;// = 0 public var sHighScore:SimpleButton; public var a2:assetLevelCompleteBar; public var tRoundPoints:MovieClip; public var a1:assetLevelCompleteBar; public function assetLevelComplete(_arg1:Stage=null, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:int=0, _arg6:int=0, _arg7:Number=0){  = 0;   = 0;   = false;   = 0;  = 0; super(); this. = _arg1; this. = (Math.ceil(_arg2) * 1250); trace(this. ); this.roundScore = _arg3; this. = _arg4; this. = _arg5; this.  = _arg7; this. = _arg6; tTimeBonus.x = -900; tRoundPoints.x = -900; timebonus.x = 900; roundbonus.x = 900; tRoundScore.x = -900; totalscore.x = 900; sUpgrades.addEventListener(MouseEvent.MOUSE_UP, gotoUpgrades); sHighScore.addEventListener(MouseEvent.MOUSE_UP,  ); Global.userScore = (Global.userScore + this. ); totalscore.text = String(Global.userScore); addEventListener(Event.ENTER_FRAME, loop, false, 0, true); } private function  (_arg1:Event){ if ( .alpha < 1){  .y = ( .y - 0.6);  .alpha = ( .alpha + 0.06); }; } private function  (_arg1:Event){ var _local2:assetLevelCompleteBar;  = ( + 5.4); totalscore.x = (roundbonus.x = (timebonus.x = (timebonus.x +  ))); tRoundScore.x = (tTimeBonus.x = (tRoundPoints.x = (tRoundPoints.x -  ))); getChildByName("a3").alpha = (a2.alpha = (a1.alpha = (a1.alpha - 0.05))); if (totalscore.x > 600){ removeChild(a1); removeChild(a2); removeChild(getChildByName("a3")); _local2 = new assetLevelCompleteBar(); _local2.x = 128; _local2.y = 185; _local2.scaleY = 3.8; addChild(_local2); removeEventListener(Event.ENTER_FRAME,  ); addEventListener(Event.ENTER_FRAME,  );  = 0;   = new levelCompleteStats();  .x = 159;  .y = 217;  .alpha = 0; addChild( );  .tFastestCurve.text = String(.toFixed(2));  .tTargetHits.text = String();  .tUpgradePoints.text = String(Global.roundMoney);  .tMisses.text = String();  .tBallVelocity.text = String( .toFixed(2)); }; } private function gotoUpgrades(_arg1:MouseEvent){ dispatchEvent(new EntropyEvent(EntropyEvent.GOTO_UPGRADES)); } public function loop(_arg1:Event){ var _local2:assetLevelCompleteBar; tTimeBonus.x = (tTimeBonus.x - ((tTimeBonus.x - 178) / 4)); tRoundPoints.x = (tRoundPoints.x - ((tRoundPoints.x - 159) / 4)); roundbonus.x = (timebonus.x = (timebonus.x - ((timebonus.x - 302) / 4)));  = ( - (( -  ) / 11)); if (( + 1) >  ){  =  ; }; this.timebonus.text = String(Math.ceil( ));   = (  - ((  - roundScore) / 11)); if (((((  + 1) > roundScore)) && (!((  == roundScore))))){   = roundScore;   = true; _local2 = new assetLevelCompleteBar(); _local2.x = 128; _local2.y = 286.5; _local2.name = "a3"; this.addChildAt(_local2, 5); }; this.roundbonus.text = String(Math.ceil( )); if ( ){ tRoundScore.x = (tRoundScore.x - ((tRoundScore.x - 160) / 4)); totalscore.x = (totalscore.x - ((totalscore.x - 302) / 4));  ++; }; if (  > 180){ removeEventListener(Event.ENTER_FRAME, loop); addEventListener(Event.ENTER_FRAME,  ); }; } private function  (_arg1:MouseEvent){ var _local2:MovieClip; _local2 = new MovieClip(); .addChild(_local2); MochiScores.showLeaderboard({boardID:"9e43059c9a5d8907", score:Global.userScore, clip:_local2}); } } }//package net.amp3d.assets
Section 24
//EntropyEvent (net.amp3d.assets.EntropyEvent) package net.amp3d.assets { import flash.events.*; public class EntropyEvent extends Event { public static var GOTO_WIN:String = "gotoWin"; public static var GOTO_GAMEOVER:String = "gotoGameOver"; public static var ROUND_COMPLETE:String = "roundComplete"; public static var GOTO_UPGRADES:String = "gotoUpgrades"; public static var GOTO_NEXTLEVEL:String = "gotoNextLevel"; public static var GOTO_MENU:String = "gotoMenu"; public function EntropyEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } } }//package net.amp3d.assets
Section 25
//Whiteflash (net.amp3d.assets.Whiteflash) package net.amp3d.assets { import flash.display.*; import flash.events.*; import flash.geom.*; public class Whiteflash extends MovieClip { private var  :Number;// = 0 private var :Stage; public function Whiteflash(_arg1:Stage=null, _arg2:Number=0xFFFFFF){ var _local3:ColorTransform;   = 0; super(); this. = _arg1; addEventListener(Event.ENTER_FRAME, loop, false, 0, true); _local3 = new ColorTransform(); _local3.color = _arg2; this.transform.colorTransform = _local3; } public function loop(_arg1:Event){   = (  + 0.01); alpha = (alpha -  ); if (alpha < 0){ removeEventListener(Event.ENTER_FRAME, loop); if ( != null){ .removeChild(this); }; }; } } }//package net.amp3d.assets
Section 26
//Engine (net.amp3d.entropy.Engine) package net.amp3d.entropy { import flash.display.*; import flash.events.*; import net.amp3d.assets.*; import flash.media.*; import flash.net.*; public class Engine extends MovieClip { var :Tutorial; var :Array; var :sndMiss; var :Menu; var :SoundChannel; var  :GameWin; var :int;// = 0 var :Boolean;// = false var :UpgradeMenu; var :Stage; var :sndBG2; var :sndBG3; var :sndBG4; var :sndBG5; var :GameOver; var :Main; public function Engine(_arg1:Stage){  = 0;  = new SoundChannel();  = new sndBG2();  = new sndBG3();  = new sndBG4();  = new sndBG5();  = new sndMiss();  = false; super(); this. = _arg1;  = [[10, 30, 1.003, 3, 0.6, 0, 120], [9, 30, 1.003, 4, 0.9, 2, 120], [8, 30, 1.003, 11, 0.2, -1, 120], [7, 30, 1.003, 6, 0.7, 3, 130], [6, 32, 1.003, 4, 0.7, 2, 130], [6, 32, 1.003, 3, 1.6, 0, 120], [5.5, 32, 1.003, 4, 0.9, 3, 135], [5.2, 32, 1.003, 5, 1, 3, 150], [4.9, 32, 1.003, 3, 1, 13, 180], [4.8, 33, 1.003, 7, 1, 5, 180], [4.6, 35, 1.003, 8, 1.1, 7, 180], [4.4, 32, 1.004, 7, 1.5, 9, 180], [4.2, 33, 1.005, 8, 1.7, 10, 180]]; Global.userMoney = 40;  = .play(0, 99, new SoundTransform(0.2));  = new Menu(); _arg1.addChild(); .btnPlayGame.addEventListener(MouseEvent.MOUSE_UP,  ); .btnTutorial.addEventListener(MouseEvent.MOUSE_UP,  ); .btnMore.addEventListener(MouseEvent.MOUSE_UP, ); } private function (_arg1:EntropyEvent){ var _local2:Whiteflash; _local2 = new Whiteflash(); .addChild(_local2); .removeEventListener(EntropyEvent.GOTO_MENU, ); .removeChild();  = null; } private function  (_arg1:MouseEvent){ var _local2:Whiteflash;  = new Tutorial(); .addChild(); _local2 = new Whiteflash(); .addChild(_local2); .addEventListener(EntropyEvent.GOTO_MENU, , false, 0, true); } function gotoGameOver(_arg1:EntropyEvent){ var _local2:Whiteflash; .stop();  = .play();  = .play(0, 99, new SoundTransform(0.2)); _local2 = new Whiteflash(, 0xFF0000); .addChild(_local2); if ( != null){ .kill2(); };  = new GameOver(); .addEventListener(EntropyEvent.GOTO_MENU, ); .addChildAt(, 0); } private function gotoUpgrades(_arg1:EntropyEvent){ var _local2:Whiteflash; _local2 = new Whiteflash(); .addChild(_local2); if (((!(( == null))) && (!()))){ .kill(); } else {  = false; };  = new UpgradeMenu(); .addEventListener(EntropyEvent.GOTO_NEXTLEVEL, ); .addChildAt(, 0); } private function  (_arg1:MouseEvent){ var _local2:Whiteflash; _local2 = new Whiteflash(); .addChild(_local2); .removeChild(); gotoUpgrades(new EntropyEvent(EntropyEvent.GOTO_UPGRADES)); } private function gotoWin(_arg1:EntropyEvent){ var _local2:Whiteflash; .stop();  = .play();  = .play(0, 99, new SoundTransform(0.2)); _local2 = new Whiteflash(, 43775); .addChild(_local2); if ( != null){ .kill2(); };  = new GameWin();  .addEventListener(EntropyEvent.GOTO_MENU, ); .addChildAt( , 0); } private function (_arg1:EntropyEvent){ var _local2:Array; var _local3:Whiteflash; .stop();  = .play(0, 99, new SoundTransform(0.1)); _local2 = []; ++; _local3 = new Whiteflash(); .addChild(_local3); .removeChild(); if ( != null){ .newGame(_local2[0], _local2[1], _local2[2], _local2[3], _local2[4], _local2[5], _local2[6], ); } else {  = new Main(, _local2[0], _local2[1], _local2[2], _local2[3], _local2[4], _local2[5], _local2[6], 1); }; if ( == .length){ .addEventListener(EntropyEvent.GOTO_UPGRADES, gotoWin); .addEventListener(EntropyEvent.ROUND_COMPLETE, gotoWin); .isFinalLevel = true; } else { .addEventListener(EntropyEvent.GOTO_UPGRADES, gotoUpgrades); .addEventListener(EntropyEvent.ROUND_COMPLETE, roundComplete); }; .addEventListener(EntropyEvent.GOTO_GAMEOVER, gotoGameOver); } function (_arg1:EntropyEvent){ .stop();  = .play();  = .play(0, 99, new SoundTransform(0.2));  = true; .removeChild(); .addChild();  = 0; Global.userScore = 0; Global.userMoney = 40; Global.ugCurvePower = 1; Global.ugPaddleSize = 1; Global.ugReturnSpeed = 1; } private function (_arg1:MouseEvent){ navigateToURL(new URLRequest("http://amp3d.net"), "_blank"); } private function roundComplete(_arg1:EntropyEvent){ .stop();  = .play();  = .play(0, 99, new SoundTransform(0.2)); } } }//package net.amp3d.entropy
Section 27
//GameOver (net.amp3d.entropy.GameOver) package net.amp3d.entropy { import flash.display.*; import flash.events.*; import net.amp3d.assets.*; import mochi.*; import flash.text.*; public class GameOver extends MovieClip { public var btnHS:SimpleButton; public var userScore:TextField; private var :Stage; public var btnMenu:SimpleButton; public function GameOver(_arg1:Stage=null){ addFrameScript(59, frame60); this. = _arg1; userScore.text = String(Global.userScore); btnMenu.addEventListener(MouseEvent.MOUSE_UP, exit, false, 0, true); btnHS.addEventListener(MouseEvent.MOUSE_UP,  , false, 0, true); } public function exit(_arg1:MouseEvent){ dispatchEvent(new EntropyEvent(EntropyEvent.GOTO_MENU)); } public function loop(_arg1:Event){ } private function  (_arg1:MouseEvent){ var _local2:MovieClip; _local2 = new MovieClip(); .addChild(_local2); MochiScores.showLeaderboard({boardID:"9e43059c9a5d8907", score:Global.userScore, clip:_local2}); } function frame60(){ stop(); } } }//package net.amp3d.entropy
Section 28
//GameWin (net.amp3d.entropy.GameWin) package net.amp3d.entropy { import flash.display.*; import flash.events.*; import net.amp3d.assets.*; import mochi.*; import flash.text.*; public class GameWin extends MovieClip { public var yourScore:TextField; private var :Stage; public var sHighScore:SimpleButton; public function GameWin(_arg1:Stage=null){ addFrameScript(29,  ); this. = _arg1; yourScore.text = String(Global.userScore); sHighScore.addEventListener(MouseEvent.MOUSE_UP,  ); } public function exit(_arg1:MouseEvent){ dispatchEvent(new EntropyEvent(EntropyEvent.GOTO_MENU)); } function  (){ stop(); } public function loop(_arg1:Event){ } private function  (_arg1:MouseEvent){ var _local2:MovieClip; _local2 = new MovieClip(); .addChild(_local2); MochiScores.showLeaderboard({boardID:"9e43059c9a5d8907", score:Global.userScore, clip:_local2}); } } }//package net.amp3d.entropy
Section 29
//Global (net.amp3d.entropy.Global) package net.amp3d.entropy { import flash.display.*; public class Global { public static var ugReturnSpeed:int = 1; public static var userScore:Number = 0; public static var cameraYank:Number = 0.4; public static var pWallWidth:Number = 20; public static var ugCurvePower:int = 1; public static var ballWallSize:Number = 10; public static var missFriction:Number = 0.25; public static var curveDepreciation:Number = 1.75; public static var epaddleHeight:Number = 114; public static var uhitFriction:Number = 0.6; public static var enemyHitSpeed:Number = 4; public static var roundScore:Number = 0; public static var curveGrowth:Number = 1; public static var enemySpeed:Number = 2.6; public static var ehitFriction:Number = 0.6; public static var basePaddleHeight:Number = 92; public static var paddleHeight:Number = 92; public static var userMoney:Number = 0; public static var vSpace:Number = 300; public static var totalTime:int = 0; public static var mouseSensitivity:Number = 2.2; public static var ugPaddleSize:int = 1; public static var curveReduction:Number = 35; public static var defaultBallSpeed:Number = 24; public static var paddlePadding:Number = 24; public static var wallLength:Number = 1900; public static var roundMoney:Number = 0; public static var paddleWall:Number = 725; public static var hitPoints:Number = 100; public static var wallFriction:Number = 0.92; public static var speedGain:Number = 1.002; public static var basePaddleWidth:Number = 146; public static var ballBlockSize:Number = 20; public static var curveBonus:Number = 1.75; public static var epaddleWidth:Number = 180; public static var paddleWidth:Number = 146; public static var hSpace:Number = 400; public static function updateMoney(_arg1:MovieClip, _arg2:Number){ roundMoney = (roundMoney + _arg2); _arg1.upgrade.text = Global.roundMoney; } public static function updateScore(_arg1:MovieClip, _arg2:Number){ roundScore = (roundScore + _arg2); userScore = (userScore + _arg2); _arg1.points.text = Global.userScore; } public static function chooseSign():int{ var _local1:Number; _local1 = Math.floor((Math.random() * 2)); if (_local1 == 0){ return (-1); }; return (1); } } }//package net.amp3d.entropy
Section 30
//LineWave (net.amp3d.entropy.LineWave) package net.amp3d.entropy { import flash.display.*; import flash.events.*; public class LineWave extends MovieClip { public var  :Number; public var  :Number; public var  :Number; public var  :Number; public var  :Number; public var  :Number; public var w1:MovieClip; public var w4:MovieClip; public var w6:MovieClip; public var w2:MovieClip; public var w3:MovieClip; public var w5:MovieClip; public function LineWave(){ addEventListener(Event.ENTER_FRAME, loop, false, 0, true); w1.alpha = Math.random(); w2.alpha = Math.random(); w3.alpha = Math.random(); w4.alpha = Math.random(); w5.alpha = Math.random(); w6.alpha = Math.random(); w1.x = (Math.random() * 550); w2.x = (Math.random() * 550); w3.x = (Math.random() * 550); w4.x = (Math.random() * 550); w5.x = (Math.random() * 550); w6.x = (Math.random() * 550);   = (Math.random() * 10);   = (Math.random() * 10);  = (Math.random() * 10);   = (Math.random() * 10);   = (Math.random() * 10);   = (Math.random() * 10); } public function loop(_arg1:Event){ w1.x = (w1.x +  ); w2.x = (w2.x +  ); w3.x = (w3.x +  ); w4.x = (w4.x +  ); w5.x = (w5.x +  ); w6.x = (w6.x +  ); if (w2.x > 600){ w2.x = -215; w2.alpha = Math.random(); }; if (w3.x > 600){ w3.x = -215; w3.alpha = Math.random(); }; if (w1.x > 600){ w1.x = -215; w1.alpha = Math.random(); }; if (w4.x > 600){ w4.x = -215; w4.alpha = Math.random(); }; if (w5.x > 600){ w5.x = -215; w5.alpha = Math.random(); }; if (w6.x > 600){ w6.x = -215; w6.alpha = Math.random(); }; } } }//package net.amp3d.entropy
Section 31
//Main (net.amp3d.entropy.Main) package net.amp3d.entropy { import flash.display.*; import flash.events.*; import org.papervision3d.objects.*; import org.papervision3d.core.proto.*; import org.papervision3d.materials.*; import net.amp3d.assets.*; import flash.utils.*; import flash.media.*; import org.papervision3d.scenes.*; import org.papervision3d.cameras.*; import flash.ui.*; import flash.filters.*; import com.hydrotik.utils.*; public class Main extends Sprite { private var  :Timer; private var :DisplayObject3D; private var totalTime:assetTotalTime; private var :Array; private var :int;// = 0 private var :Number;// = 0 public var isFinalLevel:Boolean;// = false private var  :int;// = 90 private var  :Boolean;// = false private var  :assetShowLevels; private var scene:MovieScene3D; private var container:Sprite; private var stats:assetStats; private var :assetReport; private var :Stage; private var :Number; private var :ColorMaterial; private var  :Array; private var  :Array; private var  :sndDing; private var  :sndSpawn; private var :Timer; private var :assetEnemy; private var :Number;// = 0 private var :Number;// = 0 private var :Number;// = 0 private var :Number;// = 0 private var :Camera3D; private var :assetLevelComplete; private var  :Number;// = 0 private var  :DisplayObject3D; private var  :Number;// = 0 private var :sndHitRing; private var :Number;// = 0 private var :Number;// = 0 private var :SoundChannel; private var :sndMiss; private var :Number;// = 0 private var :DisplayObject3D; private var  :int;// = 0 private var  :assetTally; private var  :sndBG2; private var :sndBeep; private var :Array; private var :assetRoundStart; private var :Array; private var :int;// = 0 private var :String; private var :Number;// = 3.1415926 private var :DisplayObject3D; private var  :MovieClip; private var :assetPaddle; private var :Dictionary; private var :Plane; private var :DisplayObject3D; public function Main(_arg1:Stage, _arg2:Number=5, _arg3:Number=24, _arg4:Number=1.005, _arg5:Number=3, _arg6:Number=0.6, _arg7:Number=2, _arg8:Number=120, _arg9:int=0){  = new Dictionary();  = false;  = new Array();  = new SoundChannel();  = new sndBeep();  = new sndMiss();  = new sndDing();  = new sndBG2();  = new sndHitRing();  = new sndSpawn();  = 0;  = 0;  = 0;  = 0;  = 0;  = 0;  = 0;  = 0;  = 0;  = 0;  = 0;  = 0;  = 90;  = 3.1415926;  = 0; isFinalLevel = false; super(); this. = _arg1;  = new MovieClip(); _arg1.addChild( );  = new Array(_arg5);  = new Array(_arg5);  = new Array((Global.ugCurvePower + 2));  = new Array((Global.ugCurvePower + 2)); this. = _arg8; Global.enemySpeed = _arg2; Global.defaultBallSpeed = _arg3; Global.speedGain = _arg4; Global.ehitFriction = _arg6; Global.roundScore = 0; Global.roundMoney = 0; Global.enemyHitSpeed = _arg7; (); (); Mouse.hide();  = _arg3;  = new Timer(1000);  .addEventListener("timer", , false, 0, true);  .start();  = new assetRoundStart();  .addChild(); .gotoAndPlay(1); .x = (_arg1.stageWidth / 2); .y = (_arg1.stageHeight / 2); .scaleX = (.scaleY = 0.6); scene.renderCamera(this.); addEventListener(Event.ENTER_FRAME,  , false, 0, true); } private function  (_arg1:Boolean):void{  = ( * Global.missFriction);  = ( * Global.missFriction); .fillAlpha = 1; if (_arg1){ .z = .z;  .nextFrame();  = .play(0, 0, new SoundTransform(0.25)); } else { .z = .z; Global.updateScore(stats, -2500); ++;  .prevFrame();  = .play(); }; if ( .currentFrame == 7){ addEventListener(Event.ENTER_FRAME, , false, 0, true); removeEventListener(Event.ENTER_FRAME, loop);  .removeEventListener("timer", );  .stop(); roundComplete(); }; if ( .currentFrame == 1){ Mouse.show(); removeEventListener(Event.ENTER_FRAME, loop);  .removeEventListener("timer", );  .stop(); dispatchEvent(new EntropyEvent(EntropyEvent.GOTO_GAMEOVER)); trace("here"); }; } private function (_arg1:Event){  = ( + 0.005);  = ( + 2); if (.alpha > 0){ .alpha = (.alpha - 0.05); }; if (stats.alpha > 0.1){ stats.alpha = (stats.alpha - 0.05); stats.upgrade.text = ""; stats.time.text = ""; stats.points.text = ""; }; if ( < 750){ .x = (Math.sin() * (1000 +  )); .y = (Math.sin() * (1000 +  )); .z = (Math.cos() * (1000 +  )); }; scene.renderCamera(); } private function gotoUpgrades(_arg1:EntropyEvent){ .removeEventListener(EntropyEvent.GOTO_UPGRADES, gotoUpgrades); dispatchEvent(new EntropyEvent(EntropyEvent.GOTO_UPGRADES)); } private function (){ var _local1:MovieMaterial; var _local2:Plane; _local1 = new MovieMaterial(new assetFader(), true, false); _local1.doubleSided = true; _local2 = new Plane(_local1, Global.wallLength, (Global.vSpace * 2), 9, 3); _local2.rotationY = 90; _local2.moveBackward(Global.hSpace); scene.addChild(_local2, "Wall"); _local2 = new Plane(_local1, Global.wallLength, (Global.vSpace * 2), 9, 3); _local2.rotationY = 90; _local2.moveForward(Global.hSpace); scene.addChild(_local2, "Wall2"); _local2 = new Plane(_local1, Global.wallLength, (Global.hSpace * 2), 9, 4); _local2.rotationZ = 90; _local2.rotationY = 90; _local2.moveForward(Global.vSpace); scene.addChild(_local2, "Wall3"); _local2 = new Plane(_local1, Global.wallLength, (Global.hSpace * 2), 9, 4); _local2.rotationZ = 90; _local2.rotationY = 90; _local2.moveBackward(Global.vSpace); scene.addChild(_local2, "Wall4");  = new ColorMaterial(0xCC0000, 0.8); .doubleSided = false; .fillAlpha = 0; _local2 = new Plane(, (Global.hSpace * 2), (Global.vSpace * 2));  = _local2; scene.addChild(_local2); } private function (_arg1:Array, _arg2:Array):Array{ var _local3:Number; var _local4:Number; _local3 = ((_arg1[(_arg1.length - 1)] - _arg1[0]) / 2); _local4 = ((_arg2[(_arg2.length - 1)] - _arg2[0]) / 2); return ([_local3, _local4]); } public function kill2(){ .z = (.y = (.x = 1)); .fillAlpha = 0;  .gotoAndStop(4); .copyTransform(.extra.startPosition); .removeChild( ); } private function loop(_arg1:Event):void{ (, , mouseX, mouseY); ( ,  , .x, .y); (); ();  (); } private function (_arg1:Boolean=false){ .stop(); .removeEventListener("timer", );  = true;  = new Timer(30); .start(); if (_arg1){ .extra.mat.fillColor = 0xFF00; ++;  = .play(); } else { .extra.mat.fillColor = 0xFF0000; }; .addEventListener("timer", , false, 0, true); } private function (_arg1:MovieClip, _arg2:Array, _arg3:Array, _arg4:Boolean=false):void{ var _local5:Array; _arg1.gotoAndPlay(61); _local5 = (_arg2, _arg3); if (_arg4){  = Math.sqrt(((_local5[0] * _local5[0]) + (_local5[1] * _local5[1])));  = (((Math.atan2(_local5[1], _local5[0]) * 180) / Math.PI) + 180); .arrow.rotation = ; if ( > ){  = ; }; if ( > 10){ .alpha = ( / 10); };  = ( + );  = (Global.ugReturnSpeed * 2);  = ( - );  = ( * Global.uhitFriction);  = ( * Global.uhitFriction); } else {  = ( - );  = (Global.enemyHitSpeed * 2);  = ( + );  = ( * Global.ehitFriction);  = ( * Global.ehitFriction); };  = .play();  = ((_local5[0] / Global.curveReduction) * ( / Global.defaultBallSpeed));  = ((_local5[1] / Global.curveReduction) * ( / Global.defaultBallSpeed)); } private function (_arg1:TimerEvent){ var _local2:Number; var _local3:String; var _local4:Number; var _local5:Number;  ++; _local2 = ( -  ); _local3 = ""; _local4 = Math.floor((_local2 / 60)); _local5 = (_local2 % 60); if (_local5 < 10){ _local3 = "0"; }; if ((_local5)){ stats.time.text = (((_local4 + ":") + _local3) + _local5); }; Global.totalTime++; _local3 = ""; _local4 = Math.floor((Global.totalTime / 60)); _local5 = (Global.totalTime % 60); if (_local5 < 10){ _local3 = "0"; }; totalTime.time.text = (((_local4 + ":") + _local3) + _local5); } private function roundComplete(){ var _local1:Whiteflash; .stop(); dispatchEvent(new EntropyEvent(EntropyEvent.ROUND_COMPLETE)); _local1 = new Whiteflash(); .addChild(_local1); if (!isFinalLevel){  = new assetLevelComplete(, ( -  ), Global.roundScore, , , , ); .name = "LevelComplete"; .addEventListener(EntropyEvent.GOTO_UPGRADES, gotoUpgrades, false, 0, true); Global.userMoney = (Global.userMoney + Global.roundMoney); .addChild(); }; Mouse.show(); } private function ():void{ .x = (container.mouseX * Global.mouseSensitivity); .y = (container.mouseY * -(Global.mouseSensitivity)); .x = (.x - ((.x - .x) / Global.enemySpeed)); .y = (.y - ((.y - .y) / Global.enemySpeed)); if ((((((( ) && (( > 0)))) && ((.z < (.z + ( / 2)))))) && ((.z > (.z - ( / 2)))))){ if (((((( == "tall")) && ((.x > (.x - ( / 2)))))) && ((.x < (.x + ( / 2)))))){ (true); Global.updateScore(stats, Math.floor(((500 / ) * 750))); Global.updateMoney(stats, Math.ceil((1000 / ))); } else { if (((((( == "wide")) && ((.y > (.y - ( / 2)))))) && ((.y < (.y + ( / 2)))))){ (true); Global.updateScore(stats, Math.floor(((500 / ) * 750))); Global.updateMoney(stats, Math.ceil((1000 / ))); }; }; };  = ( +  );  = ( - ); if (.fillAlpha > 0){ .fillAlpha = (.fillAlpha - 0.05); .z = (.z - 14); }; if (.alpha > 0){ .alpha = (.alpha - 0.04); }; if (.x > Global.hSpace){ .x = Global.hSpace; } else { if (.x < -(Global.hSpace)){ .x = -(Global.hSpace); }; }; if (.y > Global.vSpace){ .y = Global.vSpace; } else { if (.y < -(Global.vSpace)){ .y = -(Global.vSpace); }; }; [0].z = ([1].z = ([2].z = ([3].z = (.z = (.z + ))))); [4].x = ([5].x = (.x = (.x + ))); [6].y = ([7].y = (.y = (.y + ))); if (.z < -(Global.paddleWall)){ if ((((((((((.x - (Global.paddleWidth / 2)) - Global.paddlePadding) < .x)) && ((((.x + (Global.paddleWidth / 2)) + Global.paddlePadding) > .x)))) && ((((.y - (Global.paddleHeight / 2)) - Global.paddlePadding) < .y)))) && ((((.y + (Global.paddleHeight / 2)) + Global.paddlePadding) > .y)))){ (, , , true); Global.updateScore(stats, ((Math.floor() * 10) + (Global.hitPoints * Math.floor(Math.abs(( / 2)))))); } else {  (false); };  = ( * -1);  = ( * Global.speedGain); .z = (.z + ((-1 * (.z / Math.abs(.z))) * (Math.abs(.z) - (Global.paddleWall - 5)))); }; if (.z > Global.paddleWall){ if ((((((((((.x - (Global.epaddleWidth / 2)) - Global.paddlePadding) < .x)) && ((((.x + (Global.epaddleWidth / 2)) + Global.paddlePadding) > .x)))) && ((((.y - (Global.epaddleHeight / 2)) - Global.paddlePadding) < .y)))) && ((((.y + (Global.epaddleHeight / 2)) + Global.paddlePadding) > .y)))){ (,  ,  ); } else {  (true); };  = ( * -1);  = ( * Global.speedGain); .z = (.z + ((-1 * (.z / Math.abs(.z))) * (Math.abs(.z) - (Global.paddleWall - 5)))); }; if ((((.y > Global.vSpace)) || ((.y < -(Global.vSpace))))){  = ( * -(Global.wallFriction)); .y = (.y + ((-1 * (.y / Math.abs(.y))) * (Math.abs(.y) - (Global.vSpace - 5))));  = ( / Global.curveDepreciation);  =  .play(0, 0, new SoundTransform(0.4)); }; if ((((.x > Global.hSpace)) || ((.x < -(Global.hSpace))))){  = ( * -(Global.wallFriction));  = ( / Global.curveDepreciation); .x = (.x + ((-1 * (.x / Math.abs(.x))) * (Math.abs(.x) - (Global.hSpace - 5))));  =  .play(0, 0, new SoundTransform(0.4)); }; scene.renderCamera(this.); } private function (){ var _local1:MovieMaterial; var _local2:Plane; var _local3:ColorMaterial; var _local4:Plane; _local1 = new MovieMaterial(new assetBall(), true, true); _local1.doubleSided = false; _local2 = new Plane(_local1, 1); scene.addChild(_local2, "Ball");  = _local2; _local3 = new ColorMaterial(0xFFFF00, 1); _local3.doubleSided = false; _local4 = new Plane(_local3, Global.ballWallSize, (((Global.vSpace * 2) + Global.pWallWidth) + Global.ballWallSize)); _local4.moveLeft((Global.hSpace + (2 * Global.ballWallSize))); _local4.z = .z; scene.addChild(_local4); .push(_local4); _local4 = new Plane(_local3, Global.ballWallSize, (((Global.vSpace * 2) + Global.pWallWidth) + Global.ballWallSize)); _local4.moveRight((Global.hSpace + (2 * Global.ballWallSize))); _local4.z = .z; scene.addChild(_local4); .push(_local4); _local4 = new Plane(_local3, (((Global.hSpace * 2) + Global.pWallWidth) + Global.ballWallSize), Global.ballWallSize); _local4.moveUp((Global.vSpace + (2 * Global.ballWallSize))); _local4.z = .z; scene.addChild(_local4); .push(_local4); _local4 = new Plane(_local3, (((Global.hSpace * 2) + Global.pWallWidth) + Global.ballWallSize), Global.ballWallSize); _local4.moveDown((Global.vSpace + (2 * Global.ballWallSize))); _local4.z = .z; scene.addChild(_local4); .push(_local4); _local4 = new Plane(_local3, Global.ballBlockSize, Global.ballBlockSize); _local4.moveDown(Global.vSpace); _local4.z = (.z - 1); scene.addChild(_local4); .push(_local4); _local4 = new Plane(_local3, Global.ballBlockSize, Global.ballBlockSize); _local4.moveUp(Global.vSpace); _local4.z = (.z - 1); scene.addChild(_local4); .push(_local4); _local4 = new Plane(_local3, Global.ballBlockSize, Global.ballBlockSize); _local4.moveRight(Global.hSpace); _local4.z = (.z - 1); scene.addChild(_local4); .push(_local4); _local4 = new Plane(_local3, Global.ballBlockSize, Global.ballBlockSize); _local4.moveLeft(Global.hSpace); _local4.z = (.z - 1); scene.addChild(_local4); .push(_local4); } private function  (){ var _local1:ColorMaterial; var _local2:Number; var _local3:Number; if (! ){ _local1 = new ColorMaterial(43775, 0.35);  =  .play(0, 0, new SoundTransform(0.05)); if (Global.chooseSign() == 1){ _local2 = (15 + ((Global.vSpace - 15) * Math.random()));  = new Plane(_local1, (Global.hSpace * 2), _local2); .y = (Global.chooseSign() * ((Math.random() * Global.vSpace) - (_local2 / 2)));  = _local2;  = "wide"; } else { _local3 = (15 + ((Global.hSpace - 15) * Math.random()));  = new Plane(_local1, _local3, (Global.vSpace * 2)); .x = (Global.chooseSign() * ((Math.random() * Global.hSpace) - (_local3 / 2)));  = _local3;  = "tall"; }; .z = (100 + (((Math.random() * Global.paddleWall) - 150) * Global.chooseSign())); scene.addChild(); .extra = {mat:_local1};  = true;  = new Timer(12000); .start(); .addEventListener("timer", , false, 0, true); }; } private function ():void{ .x = (container.mouseX * Global.cameraYank); .y = (container.mouseY * -(Global.cameraYank)); } private function (_arg1:Number){ if (_arg1 >= 0){ return (true); }; return (false); } private function ():void{ stats = new assetStats(); stats.name = "stats"; stats.y = (.stageHeight - 29);  .addChild(stats); totalTime = new assetTotalTime(); totalTime.y = 4; totalTime.x = ((.width - totalTime.width) - 10);  .addChild(totalTime);  = new assetTally();  .y = 10;  .x = ((.stageWidth -  .width) / 2);  .addChild( );  .gotoAndStop(4);  = new assetReport(); .y = 280; .scaleY = (.scaleX = 0.3); .x = ((.stageWidth - .width) / 2); .alpha = 0;  .addChild();  = new assetShowLevels();  .y = 10;  .x = 16;  .addChild( ); } public function kill(){ .z = (.y = (.x = 0)); .fillAlpha = 0;  .gotoAndStop(4); .copyTransform(.extra.startPosition); removeEventListener(Event.ENTER_FRAME, ); .removeChild(); .removeChild( ); } private function ():void{ var _local1:DisplayObject3D; container = new Sprite();  .addChildAt(container, 0); container.x = (.stageWidth / 2); container.y = (.stageHeight / 2); scene = new MovieScene3D(container);  = new Camera3D(); _local1 = new DisplayObject3D(); _local1.copyTransform(); .extra = {startPosition:_local1}; (); .lookAt( ()); (); (); } private function (_arg1:Array, _arg2:Array, _arg3:Number, _arg4:Number):void{ _arg1.shift(); _arg1.push(_arg3); _arg2.shift(); _arg2.push(_arg4); } private function  (){ var _local1:MovieMaterial; var _local2:Plane; var _local3:Sprite; var _local4:ColorMaterial; var _local5:Plane; Global.paddleHeight = (Global.basePaddleHeight * (1 + (Global.ugPaddleSize / 12))); Global.paddleWidth = (Global.basePaddleWidth * (1 + (Global.ugPaddleSize / 12)));  = new assetPaddle(); _local1 = new MovieMaterial(, true, true); _local1.doubleSided = true; _local2 = new Plane(_local1, Global.paddleWidth, Global.paddleHeight); _local2.moveBackward(Global.paddleWall); trace(((((_local2.x + ":") + _local2.y) + ":") + _local2.z));  = _local2; .gotoAndPlay(61); scene.addChild(_local2, "Paddle"); _local3 = _local2.container; [_local3] = _local2; _local4 = new ColorMaterial(0xFF00, 0.6); _local4.doubleSided = true; _local5 = new Plane(_local4, Global.pWallWidth, (Global.pWallWidth + (Global.vSpace * 2))); _local5.moveLeft(Global.hSpace); _local5.z = .z; scene.addChild(_local5); _local5 = new Plane(_local4, Global.pWallWidth, (Global.pWallWidth + (Global.vSpace * 2))); _local5.moveRight(Global.hSpace); _local5.z = .z; scene.addChild(_local5); _local5 = new Plane(_local4, (Global.pWallWidth + (Global.hSpace * 2)), Global.pWallWidth); _local5.moveUp(Global.vSpace); _local5.z = .z; scene.addChild(_local5); _local5 = new Plane(_local4, (Global.pWallWidth + (Global.hSpace * 2)), Global.pWallWidth); _local5.moveDown(Global.vSpace); _local5.z = .z; scene.addChild(_local5); return (_local2); } private function  (){ if (Math.floor((Math.random() * 100)) == 57){  (); }; } public function newGame(_arg1:Number=5, _arg2:Number=24, _arg3:Number=1.005, _arg4:Number=3, _arg5:Number=0.6, _arg6:Number=2, _arg7:Number=120, _arg8:int=0){  .gotoAndStop(_arg8); .addChild( );  = new Array(_arg4);  = new Array(_arg4);  = new Array((Global.ugCurvePower + 2));  = new Array((Global.ugCurvePower + 2)); this. = _arg7; Global.enemySpeed = _arg1; Global.defaultBallSpeed = _arg2; Global.speedGain = _arg3; Global.ehitFriction = _arg5; Global.roundScore = 0; Global.roundMoney = 0; Global.enemyHitSpeed = _arg6; stats.alpha = 1; stats.points.text = String(Global.userScore); stats.upgrade.text = String(Global.roundMoney);  = 0;  = 0; Mouse.hide(); .x = (.z = (.y = 0));  = 0;  = 0;  = _arg2;  = 0;  = 0;  = Math.PI; .copyTransform(.extra.startPosition);  = new Timer(1000);  .addEventListener("timer", , false, 0, true);  .start();  = new assetRoundStart();  .addChild(); .gotoAndPlay(1); .x = (.stageWidth / 2); .y = (.stageHeight / 2); .scaleX = (.scaleY = 0.6); trace(("ballVZ: " + )); scene.renderCamera(this.); addEventListener(Event.ENTER_FRAME,  , false, 0, true); } private function  (_arg1:Event):void{ if (.currentFrame == 25){ addEventListener(Event.ENTER_FRAME, loop); }; if (.currentFrame == 40){ removeEventListener(Event.ENTER_FRAME,  );  .removeChild(); }; .x = (container.mouseX * Global.mouseSensitivity); .y = (container.mouseY * -(Global.mouseSensitivity)); (); scene.renderCamera(this.); } private function (_arg1:TimerEvent){ (false); } private function (){ var _local1:MovieMaterial; var _local2:Sprite; var _local3:ColorMaterial; var _local4:Plane;  = new assetEnemy(); _local1 = new MovieMaterial(, true, true); _local1.smooth = true; _local1.doubleSided = false;  = new Plane(_local1, Global.epaddleWidth, Global.epaddleHeight); .moveForward(Global.paddleWall); .x = (Math.random() * Global.hSpace); .y = (Math.random() * Global.vSpace); .gotoAndPlay(61); scene.addChild(, "Enemy"); _local2 = .container; [_local2] = ; _local3 = new ColorMaterial(0x9900FF, 0.6); _local3.doubleSided = false; _local4 = new Plane(_local3, Global.pWallWidth, (Global.pWallWidth + (Global.vSpace * 2))); _local4.moveLeft(Global.hSpace); _local4.z = .z; scene.addChild(_local4); _local4 = new Plane(_local3, Global.pWallWidth, (Global.pWallWidth + (Global.vSpace * 2))); _local4.moveRight(Global.hSpace); _local4.z = .z; scene.addChild(_local4); _local4 = new Plane(_local3, (Global.pWallWidth + (Global.hSpace * 2)), Global.pWallWidth); _local4.moveUp(Global.vSpace); _local4.z = .z; scene.addChild(_local4); _local4 = new Plane(_local3, (Global.pWallWidth + (Global.hSpace * 2)), Global.pWallWidth); _local4.moveDown(Global.vSpace); _local4.z = .z; scene.addChild(_local4); _local4 = new Plane(_local3, (Global.pWallWidth + (Global.hSpace * 2)), Global.pWallWidth); _local4.moveDown(Global.vSpace); _local4.z = .z; scene.addChild(_local4); return (); } private function (_arg1:TimerEvent){ if ( == "tall"){ .container.width = (.container.width - 3.2); } else { .container.height = (.container.height - 3.2); }; .extra.mat.fillAlpha = (.extra.mat.fillAlpha - 0.045); if ((((((.container.width < 3)) || ((.container.height < 3)))) || ((.extra.mat.fillAlpha < 0)))){ scene.removeChild();  = false;  = null; .stop(); .removeEventListener("timer", ); }; } } }//package net.amp3d.entropy
Section 32
//Tutorial (net.amp3d.entropy.Tutorial) package net.amp3d.entropy { import flash.display.*; import flash.events.*; import net.amp3d.assets.*; public class Tutorial extends MovieClip { public var btncurve:SimpleButton; public var btntargets:SimpleButton; public var btnupgrade:SimpleButton; public var btngameplay:SimpleButton; public var btnexit:SimpleButton; public function Tutorial(){ addFrameScript(0, frame1); btnupgrade.addEventListener(MouseEvent.MOUSE_UP, , false, 0, true); btngameplay.addEventListener(MouseEvent.MOUSE_UP, , false, 0, true); btncurve.addEventListener(MouseEvent.MOUSE_UP,  , false, 0, true); btntargets.addEventListener(MouseEvent.MOUSE_UP, , false, 0, true); btnexit.addEventListener(MouseEvent.MOUSE_UP, exit, false, 0, true); } public function exit(_arg1:MouseEvent){ dispatchEvent(new EntropyEvent(EntropyEvent.GOTO_MENU)); } public function (_arg1:MouseEvent){ var _local2:Whiteflash; _local2 = new Whiteflash(stage); stage.addChild(_local2); gotoAndStop(2); } public function (_arg1:MouseEvent){ var _local2:Whiteflash; _local2 = new Whiteflash(stage); stage.addChild(_local2); gotoAndStop(4); } public function (_arg1:MouseEvent){ var _local2:Whiteflash; _local2 = new Whiteflash(stage); stage.addChild(_local2); gotoAndStop(1); } function frame1(){ stop(); } public function loop(_arg1:Event){ } public function  (_arg1:MouseEvent){ var _local2:Whiteflash; _local2 = new Whiteflash(stage); stage.addChild(_local2); gotoAndStop(3); } } }//package net.amp3d.entropy
Section 33
//UpgradeMenu (net.amp3d.entropy.UpgradeMenu) package net.amp3d.entropy { import flash.display.*; import flash.events.*; import net.amp3d.assets.*; import flash.text.*; public class UpgradeMenu extends MovieClip { public var rSpeed:MovieClip; public var btnCurve:SimpleButton; var :Array; public var cCurve:TextField; public var btnSpeed:SimpleButton; public var btnNextLevel:SimpleButton; public var rPaddle:MovieClip; public var pointsLeft:TextField; var :Array; public var nep:notEnoughPoints; var  :Array; public var rCurve:MovieClip; public var cSpeed:TextField; public var cPaddle:TextField; public var btnPaddle:SimpleButton; public function UpgradeMenu(){  = new Array();  = new Array();  = new Array(); super();  = [5, 10, 15, 20, 25, 30, 40, 50, "MAX"];  = [5, 10, 15, 20, 25, 30, 40, 50, "MAX"];  = [5, 10, 15, 20, 25, 30, 40, 50, "MAX"]; btnNextLevel.addEventListener(MouseEvent.MOUSE_UP, ); cPaddle.text = String([Global.ugPaddleSize]); cCurve.text = String([Global.ugCurvePower]); cSpeed.text = String( [Global.ugReturnSpeed]); pointsLeft.text = String(Global.userMoney); rPaddle.gotoAndStop((Global.ugPaddleSize + 1)); rCurve.gotoAndStop((Global.ugCurvePower + 1)); rSpeed.gotoAndStop((Global.ugReturnSpeed + 1)); btnPaddle.enabled = false; btnCurve.enabled = false; btnSpeed.enabled = false; if (Global.ugPaddleSize != 8){ btnPaddle.addEventListener(MouseEvent.MOUSE_UP, , false, 0, true); btnPaddle.enabled = true; }; if (Global.ugCurvePower != 8){ btnCurve.addEventListener(MouseEvent.MOUSE_UP, , false, 0, true); btnCurve.enabled = true; }; if (Global.ugReturnSpeed != 8){ btnSpeed.addEventListener(MouseEvent.MOUSE_UP, , false, 0, true); btnSpeed.enabled = true; }; } private function (){ nep.alpha = 1.5; nep.x = 0; addEventListener(Event.ENTER_FRAME, loop, false, 0, true); } private function (_arg1:String):Boolean{ var _local2:Array; switch (_arg1){ case "Paddle": if ([Global.ugPaddleSize] <= Global.userMoney){ Global.userMoney = (Global.userMoney - [Global.ugPaddleSize]); cPaddle.text = [Global.ugPaddleSize]; } else { (); return (false); }; break; case "Curve": if ([Global.ugCurvePower] <= Global.userMoney){ Global.userMoney = (Global.userMoney - [Global.ugCurvePower]); cCurve.text = [Global.ugCurvePower]; } else { (); return (false); }; break; case "Speed": if ( [Global.ugReturnSpeed] <= Global.userMoney){ Global.userMoney = (Global.userMoney -  [Global.ugReturnSpeed]); cSpeed.text =  [Global.ugReturnSpeed]; } else { (); return (false); }; break; }; pointsLeft.text = String(Global.userMoney); return (true); } private function (_arg1:MouseEvent){ if (("Curve")){ rCurve.nextFrame(); Global.ugCurvePower++; if (Global.ugCurvePower == 8){ btnCurve.removeEventListener(MouseEvent.MOUSE_UP, ); }; cCurve.text = String([Global.ugCurvePower]); }; } private function (_arg1:MouseEvent){ if (("Speed")){ rSpeed.nextFrame(); Global.ugReturnSpeed++; if (Global.ugReturnSpeed == 8){ btnSpeed.removeEventListener(MouseEvent.MOUSE_UP, ); }; cSpeed.text = String( [Global.ugReturnSpeed]); }; } private function (_arg1:MouseEvent){ if (("Paddle")){ rPaddle.nextFrame(); Global.ugPaddleSize++; if (Global.ugPaddleSize == 8){ btnPaddle.removeEventListener(MouseEvent.MOUSE_UP, ); }; cPaddle.text = String([Global.ugPaddleSize]); }; } private function (_arg1:MouseEvent){ dispatchEvent(new EntropyEvent(EntropyEvent.GOTO_NEXTLEVEL)); } private function loop(_arg1:Event){ if (nep.x == 0){ nep.alpha = (nep.alpha - 0.05); }; if (nep.alpha <= 0){ nep.x = 560; }; } } }//package net.amp3d.entropy
Section 34
//Camera3D (org.papervision3d.cameras.Camera3D) package org.papervision3d.cameras { import org.papervision3d.objects.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.*; public class Camera3D extends CameraObject3D { public var :Number3D; public var target:DisplayObject3D; public function Camera3D(_arg1:DisplayObject3D=null, _arg2:Number=2, _arg3:Number=100, _arg4:Object=null){ super(_arg2, _arg3, _arg4); this.target = ((_arg1) || (DisplayObject3D.ZERO)); this. = new Number3D(this.x, this.y, this.z); } override public function transformView(_arg1:Matrix3D=null):void{ this.lookAt(this.target); super.transformView(); } public function  (_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:DisplayObject3D; var _local5:Number3D; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local4 = this.target; _local5 = this.; _local6 = 8; switch (_arg1){ case 0: _local7 = (_local5.x - _local4.x); _local8 = (_local5.z - _local4.z); _local9 = Math.atan2(_local8, _local7); _local10 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local11 = (0.5 * _arg2); _local12 = (_local10 * Math.cos((_local9 - _local11))); _local13 = (_local10 * Math.sin((_local9 - _local11))); _local14 = (_local5.y - (300 * _arg3)); this.x = (this.x - ((this.x - _local12) / _local6)); this.y = (this.y - ((this.y - _local14) / _local6)); this.z = (this.z - ((this.z - _local13) / _local6)); break; case 1: this.x = (this.x - ((this.x - (1000 * _arg2)) / _local6)); this.y = (this.y - ((this.y - (1000 * _arg3)) / _local6)); break; }; } } }//package org.papervision3d.cameras
Section 35
//DefaultTriangleCuller (org.papervision3d.core.culling.DefaultTriangleCuller) package org.papervision3d.core.culling { import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; import org.papervision3d.core.proto.*; public class DefaultTriangleCuller implements ITriangleCuller { private static var y2:Number; private static var y1:Number; private static var y0:Number; private static var x0:Number; private static var x1:Number; private static var x2:Number; public function testFace(_arg1:DisplayObject3D, _arg2:Face3DInstance, _arg3:Vertex2D, _arg4:Vertex2D, _arg5:Vertex2D):Boolean{ var _local6:MaterialObject3D; if (((((_arg3.visible) && (_arg4.visible))) && (_arg5.visible))){ _local6 = (_arg2.face.material) ? _arg2.face.material : _arg1.material; if (_local6.invisible){ return (false); }; x0 = _arg3.x; y0 = _arg3.y; x1 = _arg4.x; y1 = _arg4.y; x2 = _arg5.x; y2 = _arg5.y; if (_local6.oneSide){ if (_local6.opposite){ if ((((x2 - x0) * (y1 - y0)) - ((y2 - y0) * (x1 - x0))) > 0){ return (false); }; } else { if ((((x2 - x0) * (y1 - y0)) - ((y2 - y0) * (x1 - x0))) < 0){ return (false); }; }; }; return (true); }; return (false); } } }//package org.papervision3d.core.culling
Section 36
//ITriangleCuller (org.papervision3d.core.culling.ITriangleCuller) package org.papervision3d.core.culling { import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; public interface ITriangleCuller { function testFace(_arg1:DisplayObject3D, _arg2:Face3DInstance, _arg3:Vertex2D, _arg4:Vertex2D, _arg5:Vertex2D):Boolean; } }//package org.papervision3d.core.culling
Section 37
//IFaceDrawer (org.papervision3d.core.draw.IFaceDrawer) package org.papervision3d.core.draw { import flash.display.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; public interface IFaceDrawer { function drawFace3D(_arg1:DisplayObject3D, _arg2:Face3D, _arg3:Graphics, _arg4:Vertex2D, _arg5:Vertex2D, _arg6:Vertex2D):int; } }//package org.papervision3d.core.draw
Section 38
//Face3D (org.papervision3d.core.geom.Face3D) package org.papervision3d.core.geom { import flash.display.*; import org.papervision3d.objects.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.*; public class Face3D { public var vertices:Array; public var face3DInstance:Face3DInstance; public var id:Number; public var uv:Array; public var material:MaterialObject3D; private var :MaterialObject3D; public var faceNormal:Number3D; public var screenZ:Number; public var :String; public var visible:Boolean; public var v0:Vertex3D; public var v1:Vertex3D; public var v2:Vertex3D; private static var _totalFaces:Number = 0; public function Face3D(_arg1:Array, _arg2:MaterialObject3D=null, _arg3:Array=null){ this.vertices = _arg1; v0 = _arg1[0]; v1 = _arg1[1]; v2 = _arg1[2]; this.material = _arg2; this.uv = _arg3; this.id = _totalFaces++; face3DInstance = new Face3DInstance(this);  (); } protected function  ():void{ var _local1:Number3D; var _local2:Number3D; var _local3:Number3D; var _local4:Number3D; var _local5:Number3D; _local1 = v0.toNumber3D(); _local2 = v1.toNumber3D(); _local3 = v2.toNumber3D(); _local4 = Number3D.sub(_local2, _local1); _local5 = Number3D.sub(_local3, _local1); faceNormal = Number3D.cross(_local5, _local4); faceNormal.normalize(); } public function render(_arg1:DisplayObject3D, _arg2:Sprite):Number{  = (material) ? material : _arg1.material; return (.drawFace3D(_arg1, this, _arg2.graphics, v0.vertex2DInstance, v1.vertex2DInstance, v2.vertex2DInstance)); } } }//package org.papervision3d.core.geom
Section 39
//Face3DInstance (org.papervision3d.core.geom.Face3DInstance) package org.papervision3d.core.geom { import flash.display.*; import org.papervision3d.objects.*; import org.papervision3d.core.*; public class Face3DInstance { public var container:Sprite; public var faceNormal:Number3D; public var screenZ:Number; public var visible:Boolean;// = false public var instance:DisplayObject3D; public var face:Face3D; public function Face3DInstance(_arg1:Face3D, _arg2:DisplayObject3D=null){ visible = false; super(); this.face = _arg1; this.instance = _arg2; faceNormal = new Number3D(); } } }//package org.papervision3d.core.geom
Section 40
//Mesh3D (org.papervision3d.core.geom.Mesh3D) package org.papervision3d.core.geom { import org.papervision3d.objects.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.*; import flash.utils.*; import org.papervision3d.core.culling.*; public class Mesh3D extends Vertices3D { public function Mesh3D(_arg1:MaterialObject3D, _arg2:Array, _arg3:Array, _arg4:String=null, _arg5:Object=null){ super(_arg2, _arg4, _arg5); this.geometry.faces = ((_arg3) || (new Array())); this.material = ((_arg1) || (MaterialObject3D.DEFAULT)); } override public function project(_arg1:DisplayObject3D, _arg2:CameraObject3D, _arg3:Array=null):Number{ var _local4:Array; var _local5:Number; var _local6:Number; var _local7:ITriangleCuller; var _local8:Vertex2D; var _local9:Vertex2D; var _local10:Vertex2D; var _local11:Face3DInstance; var _local12:Face3D; var _local13:MaterialObject3D; super.project(_arg1, _arg2, _arg3); if (!_arg3){ _arg3 = this._sorted; }; _local4 = this.geometry.faces; _local5 = 0; _local6 = 0; _local7 = scene.triangleCuller; for each (_local12 in _local4) { _local13 = (_local12.material) ? _local12.material : material; _local11 = _local12.face3DInstance; _local11.instance = this; _local8 = _local12.v0.vertex2DInstance; _local9 = _local12.v1.vertex2DInstance; _local10 = _local12.v2.vertex2DInstance; if ((_local11.visible = _local7.testFace(this, _local11, _local8, _local9, _local10))){ if (_local13.needsFaceNormals){ _local12.faceNormal.copyTo(_local11.faceNormal); Matrix3D.multiplyVector3x3(this.view, _local11.faceNormal); }; if (_local13.needsVertexNormals){ _local12.v0.normal.copyTo(_local12.v0.vertex2DInstance.normal); Matrix3D.multiplyVector3x3(this.view, _local12.v0.vertex2DInstance.normal); _local12.v1.normal.copyTo(_local12.v1.vertex2DInstance.normal); Matrix3D.multiplyVector3x3(this.view, _local12.v1.vertex2DInstance.normal); _local12.v2.normal.copyTo(_local12.v2.vertex2DInstance.normal); Matrix3D.multiplyVector3x3(this.view, _local12.v2.vertex2DInstance.normal); }; switch (meshSort){ case DisplayObject3D.MESH_SORT_CENTER: _local5 = (_local5 + (_local11.screenZ = (((_local8.z + _local9.z) + _local10.z) * 0.333))); break; case DisplayObject3D.MESH_SORT_FAR: _local5 = (_local5 + (_local11.screenZ = Math.max(_local8.z, _local9.z, _local10.z))); break; case DisplayObject3D.MESH_SORT_CLOSE: _local5 = (_local5 + (_local11.screenZ = Math.min(_local8.z, _local9.z, _local10.z))); break; }; _local6++; _arg3.push(_local11); } else { scene.stats.culledTriangles++; }; }; return ((this.screenZ = (_local5 / _local6))); } public function ():void{ var _local1:Dictionary; var _local2:Array; var _local3:Vertex3D; var _local4:Face3D; var _local5:Vertex3D; _local1 = new Dictionary(); _local2 = new Array(); for each (_local3 in this.geometry.vertices) { for each (_local5 in _local1) { if ((((((_local3.x == _local5.x)) && ((_local3.y == _local5.y)))) && ((_local3.z == _local5.z)))){ _local1[_local3] = _local5; break; }; }; if (!_local1[_local3]){ _local1[_local3] = _local3; _local2.push(_local3); }; }; this.geometry.vertices = _local2; for each (_local4 in this.geometry.faces) { _local4.v0 = _local1[_local4.v0]; _local4.v1 = _local1[_local4.v1]; _local4.v2 = _local1[_local4.v2]; }; } public function (_arg1:String="x", _arg2:String="y"):void{ var _local3:Array; var _local4:Object; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:MaterialObject3D; var _local10:String; var _local11:Face3D; var _local12:Array; var _local13:Vertex3D; var _local14:Vertex3D; var _local15:Vertex3D; var _local16:NumberUV; var _local17:NumberUV; var _local18:NumberUV; _local3 = this.geometry.faces; _local4 = this.boundingBox(); _local5 = _local4.min[_arg1]; _local6 = _local4.size[_arg1]; _local7 = _local4.min[_arg2]; _local8 = _local4.size[_arg2]; _local9 = this.material; for (_local10 in _local3) { _local11 = _local3[Number(_local10)]; _local12 = _local11.vertices; _local13 = _local12[0]; _local14 = _local12[1]; _local15 = _local12[2]; _local16 = new NumberUV(((_local13[_arg1] - _local5) / _local6), ((_local13[_arg2] - _local7) / _local8)); _local17 = new NumberUV(((_local14[_arg1] - _local5) / _local6), ((_local14[_arg2] - _local7) / _local8)); _local18 = new NumberUV(((_local15[_arg1] - _local5) / _local6), ((_local15[_arg2] - _local7) / _local8)); _local11.uv = [_local16, _local17, _local18]; }; } } }//package org.papervision3d.core.geom
Section 41
//Vertex2D (org.papervision3d.core.geom.Vertex2D) package org.papervision3d.core.geom { import org.papervision3d.core.*; public class Vertex2D { public var visible:Boolean; public var normal:Number3D; public var extra:Object; public var x:Number; public var y:Number; public var z:Number; public function Vertex2D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; this.visible = false; this.normal = new Number3D(); } public function clone():Vertex2D{ var _local1:Vertex2D; _local1 = new Vertex2D(x, y, z); _local1.visible = visible; _local1.extra = extra; return (_local1); } } }//package org.papervision3d.core.geom
Section 42
//Vertex3D (org.papervision3d.core.geom.Vertex3D) package org.papervision3d.core.geom { import org.papervision3d.core.*; import flash.utils.*; public class Vertex3D { public var vertex2DInstance:Vertex2D; public var connectedFaces:Dictionary; public var normal:Number3D; public var extra:Object; public var x:Number; public var y:Number; public var z:Number; public function Vertex3D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; this.vertex2DInstance = new Vertex2D(); this.normal = new Number3D(); this.connectedFaces = new Dictionary(); } public function calculateNormal():void{ var _local1:Face3D; normal = new Number3D(); for each (_local1 in connectedFaces) { normal = Number3D.add(_local1.faceNormal, normal); }; normal.normalize(); } public function toNumber3D():Number3D{ return (new Number3D(x, y, z)); } public function clone():Vertex3D{ var _local1:Vertex3D; _local1 = new Vertex3D(x, y, z); _local1.extra = extra; _local1.vertex2DInstance = vertex2DInstance.clone(); _local1.normal = normal.clone(); return (_local1); } } }//package org.papervision3d.core.geom
Section 43
//Vertices3D (org.papervision3d.core.geom.Vertices3D) package org.papervision3d.core.geom { import org.papervision3d.objects.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.*; import org.papervision3d.scenes.*; public class Vertices3D extends DisplayObject3D { public function Vertices3D(_arg1:Array, _arg2:String=null, _arg3:Object=null){ super(_arg2, new GeometryObject3D(), _arg3); this.geometry.vertices = ((_arg1) || (new Array())); } override public function project(_arg1:DisplayObject3D, _arg2:CameraObject3D, _arg3:Array=null):Number{ var _local4:Matrix3D; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Vertex3D; var _local21:Vertex2D; var _local22:Number; var _local23:Array; var _local24:int; var _local25:Number; var _local26:Number; super.project(_arg1, _arg2, _arg3); _local4 = this.view; _local5 = _local4.n11; _local6 = _local4.n12; _local7 = _local4.n13; _local8 = _local4.n21; _local9 = _local4.n22; _local10 = _local4.n23; _local11 = _local4.n31; _local12 = _local4.n32; _local13 = _local4.n33; _local23 = this.geometry.vertices; _local24 = _local23.length; _local25 = _arg2.focus; _local26 = (_local25 * _arg2.zoom); while ((_local20 = _local23[--_local24])) { _local14 = _local20.x; _local15 = _local20.y; _local16 = _local20.z; _local19 = ((((_local14 * _local11) + (_local15 * _local12)) + (_local16 * _local13)) + _local4.n34); _local21 = _local20.vertex2DInstance; if ((_local21.visible = (_local19 > 0))){ _local17 = ((((_local14 * _local5) + (_local15 * _local6)) + (_local16 * _local7)) + _local4.n14); _local18 = ((((_local14 * _local8) + (_local15 * _local9)) + (_local16 * _local10)) + _local4.n24); _local22 = (_local26 / (_local25 + _local19)); _local21.x = (_local17 * _local22); _local21.y = (_local18 * _local22); _local21.z = _local19; }; }; return (0); } public function transformVertices(_arg1:Matrix3D):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Array; var _local15:int; var _local16:Vertex3D; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; _local2 = _arg1.n11; _local3 = _arg1.n12; _local4 = _arg1.n13; _local5 = _arg1.n21; _local6 = _arg1.n22; _local7 = _arg1.n23; _local8 = _arg1.n31; _local9 = _arg1.n32; _local10 = _arg1.n33; _local11 = _arg1.n14; _local12 = _arg1.n24; _local13 = _arg1.n34; _local14 = this.geometry.vertices; _local15 = _local14.length; while ((_local16 = _local14[--_local15])) { _local17 = _local16.x; _local18 = _local16.y; _local19 = _local16.z; _local20 = ((((_local17 * _local2) + (_local18 * _local3)) + (_local19 * _local4)) + _local11); _local21 = ((((_local17 * _local5) + (_local18 * _local6)) + (_local19 * _local7)) + _local12); _local22 = ((((_local17 * _local8) + (_local18 * _local9)) + (_local19 * _local10)) + _local13); _local16.x = _local20; _local16.y = _local21; _local16.z = _local22; }; } public function boundingBox():Object{ var _local1:Object; var _local2:Object; var _local3:String; var _local4:Vertex3D; _local1 = this.geometry.vertices; _local2 = new Object(); _local2.min = new Number3D(); _local2.max = new Number3D(); _local2.size = new Number3D(); for (_local3 in _local1) { _local4 = _local1[Number(_local3)]; _local2.min.x = ((_local2.min.x)==undefined) ? _local4.x : Math.min(_local4.x, _local2.min.x); _local2.max.x = ((_local2.max.x)==undefined) ? _local4.x : Math.max(_local4.x, _local2.max.x); _local2.min.y = ((_local2.min.y)==undefined) ? _local4.y : Math.min(_local4.y, _local2.min.y); _local2.max.y = ((_local2.max.y)==undefined) ? _local4.y : Math.max(_local4.y, _local2.max.y); _local2.min.z = ((_local2.min.z)==undefined) ? _local4.z : Math.min(_local4.z, _local2.min.z); _local2.max.z = ((_local2.max.z)==undefined) ? _local4.z : Math.max(_local4.z, _local2.max.z); }; _local2.size.x = (_local2.max.x - _local2.min.x); _local2.size.y = (_local2.max.y - _local2.min.y); _local2.size.z = (_local2.max.z - _local2.min.z); return (_local2); } } }//package org.papervision3d.core.geom
Section 44
//CameraObject3D (org.papervision3d.core.proto.CameraObject3D) package org.papervision3d.core.proto { import org.papervision3d.objects.*; import org.papervision3d.core.*; public class CameraObject3D extends DisplayObject3D { public var sort:Boolean; public var zoom:Number; public var focus:Number; private static var _flipY:Matrix3D = Matrix3D.scaleMatrix(1, -1, 1); public static var DEFAULT_POS:Number3D = new Number3D(0, 0, -1000); public function CameraObject3D(_arg1:Number=3, _arg2:Number=500, _arg3:Object=null){ this.x = (_arg3) ? ((_arg3.x) || (DEFAULT_POS.x)) : DEFAULT_POS.x; this.y = (_arg3) ? ((_arg3.y) || (DEFAULT_POS.y)) : DEFAULT_POS.y; this.z = (_arg3) ? ((_arg3.z) || (DEFAULT_POS.z)) : DEFAULT_POS.z; this.zoom = _arg1; this.focus = _arg2; this.sort = (_arg3) ? !((_arg3.sort == false)) : true; } public function transformView(_arg1:Matrix3D=null):void{ this.view = Matrix3D.inverse(Matrix3D.multiply(((_arg1) || (this.transform)), _flipY)); } public function  (_arg1:Number):void{ super.yaw(_arg1); } public function  (_arg1:Number):void{ super.pitch(_arg1); } } }//package org.papervision3d.core.proto
Section 45
//DisplayObjectContainer3D (org.papervision3d.core.proto.DisplayObjectContainer3D) package org.papervision3d.core.proto { import flash.events.*; import org.papervision3d.objects.*; import org.papervision3d.materials.*; import flash.utils.*; import org.papervision3d.*; public class DisplayObjectContainer3D extends EventDispatcher { protected var :Dictionary; public var root:DisplayObjectContainer3D; private var :int; protected var _childrenByName:Object; public function DisplayObjectContainer3D():void{ this. = new Dictionary(false); this._childrenByName = new Dictionary(true); this. = 0; } public function getChildByName(_arg1:String):DisplayObject3D{ return (this._childrenByName[_arg1]); } public function (_arg1:String, _arg2:MaterialsList=null, _arg3:Number=1):void{ Papervision3D.log("The addCollada() method has been deprecated. Use addChildren( new Collada( filename ) )"); } public function (_arg1:String):DisplayObject3D{ return (removeChild(getChildByName(_arg1))); } public function get numChildren():int{ return (this.); } override public function toString():String{ return ( ()); } public function (_arg1:DisplayObject3D):DisplayObjectContainer3D{ var _local2:DisplayObject3D; for each (_local2 in _arg1.children) { _arg1.removeChild(_local2); this.addChild(_local2); }; return (this); } public function removeChild(_arg1:DisplayObject3D):DisplayObject3D{ if (_arg1){ delete this._childrenByName[this.[_arg1]]; delete this.[_arg1]; _arg1.parent = null; _arg1.root = null; return (_arg1); }; return (null); } public function addChild(_arg1:DisplayObject3D, _arg2:String=null):DisplayObject3D{ _arg2 = ((((_arg2) || (_arg1.name))) || (String(_arg1.id))); this.[_arg1] = _arg2; this._childrenByName[_arg2] = _arg1; this.++; _arg1.parent = this; _arg1.root = this.root; return (_arg1); } public function  ():String{ var _local1:String; var _local2:String; _local1 = ""; for (_local2 in this.) { _local1 = (_local1 + (_local2 + "\n")); }; return (_local1); } public function get children():Object{ return (this._childrenByName); } } }//package org.papervision3d.core.proto
Section 46
//GeometryObject3D (org.papervision3d.core.proto.GeometryObject3D) package org.papervision3d.core.proto { import flash.events.*; import org.papervision3d.core.geom.*; import org.papervision3d.materials.*; import org.papervision3d.core.*; import flash.utils.*; import org.papervision3d.scenes.*; public class GeometryObject3D extends EventDispatcher { protected var :Number; protected var :Boolean;// = true public var  :Boolean;// = false protected var  :MaterialObject3D; public var faces:Array; public var vertices:Array; public function GeometryObject3D(_arg1:Object=null):void{  = false;  = true; super(); } public function transformVertices(_arg1:Matrix3D):void{ } public function get boundingSphere2():Number{ if (){ return (()); }; return (); } public function ():Number{ var _local1:Number; var _local2:Number; var _local3:Vertex3D; _local1 = 0; for each (_local3 in this.vertices) { _local2 = (((_local3.x * _local3.x) + (_local3.y * _local3.y)) + (_local3.z * _local3.z)); _local1 = ((_local2)>_local1) ? _local2 : _local1; }; this. = false; return (( = _local1)); } private function ():void{ var _local1:Dictionary; var _local2:Face3D; var _local3:Vertex3D; _local1 = new Dictionary(true); for each (_local2 in faces) { _local2.v0.connectedFaces[_local2] = _local2; _local2.v1.connectedFaces[_local2] = _local2; _local2.v2.connectedFaces[_local2] = _local2; _local1[_local2.v0] = _local2.v0; _local1[_local2.v1] = _local2.v1; _local1[_local2.v2] = _local2.v2; }; for each (_local3 in _local1) { _local3.calculateNormal(); }; } public function transformUV(_arg1:MaterialObject3D):void{ var _local2:String; if (_arg1.bitmap){ for (_local2 in this.faces) { faces[_local2].transformUV(_arg1); }; }; } public function set ready(_arg1:Boolean):void{ if (_arg1){ (); };  = _arg1; } public function get ready():Boolean{ return ( ); } } }//package org.papervision3d.core.proto
Section 47
//MaterialObject3D (org.papervision3d.core.proto.MaterialObject3D) package org.papervision3d.core.proto { import flash.display.*; import flash.events.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; import org.papervision3d.materials.*; import org.papervision3d.core.draw.*; public class MaterialObject3D extends EventDispatcher implements IFaceDrawer { public var widthOffset:Number;// = 0 public var name:String; public var scene:SceneObject3D; public var needsVertexNormals:Boolean;// = false public var heightOffset:Number;// = 0 public var fillAlpha:Number;// = 0 public var fillColor:Number; public var id:Number; public var invisible:Boolean;// = false public var smooth:Boolean;// = false public var bitmap:BitmapData; public var lineColor:Number; public var lineAlpha:Number;// = 0 public var oneSide:Boolean;// = true public var  :Number;// = 1 public var opposite:Boolean;// = false public var maxU:Number; public var needsFaceNormals:Boolean;// = false public var tiled:Boolean;// = false public var maxV:Number; public static var DEFAULT_COLOR:int = 0; public static var DEBUG_COLOR:int = 0xFF00FF; private static var _totalMaterialObjects:Number = 0; public function MaterialObject3D(){ smooth = false; tiled = false; lineColor = DEFAULT_COLOR; lineAlpha = 0;  = 1; fillColor = DEFAULT_COLOR; fillAlpha = 0; oneSide = true; invisible = false; opposite = false; needsFaceNormals = false; needsVertexNormals = false; widthOffset = 0; heightOffset = 0; super(); this.id = _totalMaterialObjects++; } public function get doubleSided():Boolean{ return (!(this.oneSide)); } public function drawFace3D(_arg1:DisplayObject3D, _arg2:Face3D, _arg3:Graphics, _arg4:Vertex2D, _arg5:Vertex2D, _arg6:Vertex2D):int{ return (0); } public function set doubleSided(_arg1:Boolean):void{ this.oneSide = !(_arg1); } public function updateBitmap():void{ } override public function toString():String{ return (((((("[MaterialObject3D] bitmap:" + this.bitmap) + " lineColor:") + this.lineColor) + " fillColor:") + fillColor)); } public function copy(_arg1:MaterialObject3D):void{ this.bitmap = _arg1.bitmap; this.smooth = _arg1.smooth; this.lineColor = _arg1.lineColor; this.lineAlpha = _arg1.lineAlpha; this.fillColor = _arg1.fillColor; this.fillAlpha = _arg1.fillAlpha; this.needsFaceNormals = _arg1.needsFaceNormals; this.needsVertexNormals = _arg1.needsVertexNormals; this.oneSide = _arg1.oneSide; this.opposite = _arg1.opposite; this.invisible = _arg1.invisible; this.scene = _arg1.scene; this.name = _arg1.name; this.maxU = _arg1.maxU; this.maxV = _arg1.maxV; } public function clone():MaterialObject3D{ var _local1:MaterialObject3D; _local1 = new MaterialObject3D(); _local1.copy(this); return (_local1); } public static function get DEFAULT():MaterialObject3D{ var _local1:MaterialObject3D; _local1 = new WireframeMaterial(); _local1.lineColor = (0xFFFFFF * Math.random()); _local1.lineAlpha = 1; _local1.fillColor = DEFAULT_COLOR; _local1.fillAlpha = 1; _local1.doubleSided = false; return (_local1); } public static function get DEBUG():MaterialObject3D{ var _local1:MaterialObject3D; _local1 = new (MaterialObject3D); _local1.lineColor = (0xFFFFFF * Math.random()); _local1.lineAlpha = 1; _local1.fillColor = DEBUG_COLOR; _local1.fillAlpha = 0.37; _local1.doubleSided = true; return (_local1); } } }//package org.papervision3d.core.proto
Section 48
//SceneObject3D (org.papervision3d.core.proto.SceneObject3D) package org.papervision3d.core.proto { import flash.display.*; import org.papervision3d.objects.*; import org.papervision3d.materials.*; import flash.utils.*; import org.papervision3d.core.culling.*; import org.papervision3d.core.stat.*; import org.papervision3d.*; public class SceneObject3D extends DisplayObjectContainer3D { public var triangleCuller:ITriangleCuller; public var container:Sprite; private var  :Dictionary; public var objects:Array; public var stats:RenderStatistics; public var materials:MaterialsList; public function SceneObject3D(_arg1:Sprite){ triangleCuller = new DefaultTriangleCuller(); super(); if (_arg1){ this.container = _arg1; } else { Papervision3D.log("Scene3D: container argument required."); }; this.objects = new Array(); this.materials = new MaterialsList(); Papervision3D.log((((((Papervision3D.NAME + " ") + Papervision3D.VERSION) + " (") + Papervision3D.DATE) + ")\n")); this.stats = new RenderStatistics(); this.stats.points = 0; this.stats. = 0; this.stats. = 0; this.stats.performance = 0; this.stats.rendered = 0; this.root = this; } override public function addChild(_arg1:DisplayObject3D, _arg2:String=null):DisplayObject3D{ var _local3:DisplayObject3D; _local3 = super.addChild(_arg1, _arg2); _arg1.scene = this; this.objects.push(_local3); return (_local3); } public function renderCamera(_arg1:CameraObject3D):void{ var _local2:Array; var _local3:DisplayObject3D; var _local4:Number; stats.clear(); stats.performance = getTimer(); MovieMaterial.updateAnimatedBitmaps(); if (_arg1){ _arg1.transformView(); _local2 = this.objects; _local4 = _local2.length; while ((_local3 = _local2[--_local4])) { if (_local3.visible){ _local3.project(_arg1, _arg1); }; }; }; if (_arg1.sort){ this.objects.sortOn("screenZ", Array.NUMERIC); }; renderObjects(_arg1.sort); } protected function renderObjects(_arg1:Boolean):void{ } override public function removeChild(_arg1:DisplayObject3D):DisplayObject3D{ var _local2:int; super.removeChild(_arg1); _local2 = 0; while (_local2 < this.objects.length) { if (this.objects[_local2] === _arg1){ this.objects.splice(_local2, 1); return (_arg1); }; _local2++; }; return (_arg1); } } }//package org.papervision3d.core.proto
Section 49
//RenderStatistics (org.papervision3d.core.stat.RenderStatistics) package org.papervision3d.core.stat { public class RenderStatistics { public var points:int;// = 0 public var  :int;// = 0 public var  :int;// = 0 public var  :Number; public var performance:int;// = 0 public var rendered:int;// = 0 public var culledTriangles:int;// = 0 public var  :Number; public function RenderStatistics(){ performance = 0; points = 0;  = 0; rendered = 0;  = 0; culledTriangles = 0; super(); } public function clear():void{ performance = 0; points = 0;  = 0; rendered = 0;  = 0;  = 0;   = 0; culledTriangles = 0; } public function toString():String{ return (new String(((((((((("Performance:" + performance) + ", Points:") + points) + " Polys:") +  ) + " Rendered:") + rendered) + " Culled:") + culledTriangles))); } } }//package org.papervision3d.core.stat
Section 50
//Matrix3D (org.papervision3d.core.Matrix3D) package org.papervision3d.core { public class Matrix3D { public var n31:Number; public var n32:Number; public var n11:Number; public var n13:Number; public var n14:Number; public var n33:Number; public var n12:Number; public var n21:Number; public var n22:Number; public var n23:Number; public var n24:Number; public var n34:Number; private static var toDEGREES:Number = 57.2957795130823; private static var toRADIANS:Number = 0.0174532925199433; public function Matrix3D(_arg1:Array=null){ if (((!(_arg1)) || ((_arg1.length < 12)))){ n11 = (n22 = (n33 = 1)); n12 = (n13 = (n14 = (n21 = (n23 = (n24 = (n31 = (n32 = (n34 = 0)))))))); } else { n11 = _arg1[0]; n12 = _arg1[1]; n13 = _arg1[2]; n14 = _arg1[3]; n21 = _arg1[4]; n22 = _arg1[5]; n23 = _arg1[6]; n24 = _arg1[7]; n31 = _arg1[8]; n32 = _arg1[9]; n33 = _arg1[10]; n34 = _arg1[11]; }; } public function calculateMultiply3x3(_arg1:Matrix3D, _arg2:Matrix3D):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local3 = _arg1.n11; _local4 = _arg2.n11; _local5 = _arg1.n21; _local6 = _arg2.n21; _local7 = _arg1.n31; _local8 = _arg2.n31; _local9 = _arg1.n12; _local10 = _arg2.n12; _local11 = _arg1.n22; _local12 = _arg2.n22; _local13 = _arg1.n32; _local14 = _arg2.n32; _local15 = _arg1.n13; _local16 = _arg2.n13; _local17 = _arg1.n23; _local18 = _arg2.n23; _local19 = _arg1.n33; _local20 = _arg2.n33; this.n11 = (((_local3 * _local4) + (_local9 * _local6)) + (_local15 * _local8)); this.n12 = (((_local3 * _local10) + (_local9 * _local12)) + (_local15 * _local14)); this.n13 = (((_local3 * _local16) + (_local9 * _local18)) + (_local15 * _local20)); this.n21 = (((_local5 * _local4) + (_local11 * _local6)) + (_local17 * _local8)); this.n22 = (((_local5 * _local10) + (_local11 * _local12)) + (_local17 * _local14)); this.n23 = (((_local5 * _local16) + (_local11 * _local18)) + (_local17 * _local20)); this.n31 = (((_local7 * _local4) + (_local13 * _local6)) + (_local19 * _local8)); this.n32 = (((_local7 * _local10) + (_local13 * _local12)) + (_local19 * _local14)); this.n33 = (((_local7 * _local16) + (_local13 * _local18)) + (_local19 * _local20)); } public function get trace():Number{ return ((((this.n11 + this.n22) + this.n33) + 1)); } public function get det():Number{ return ((((((this.n11 * this.n22) - (this.n21 * this.n12)) * this.n33) - (((this.n11 * this.n32) - (this.n31 * this.n12)) * this.n23)) + (((this.n21 * this.n32) - (this.n31 * this.n22)) * this.n13))); } public function (_arg1:Matrix3D):Matrix3D{ this.n11 = _arg1.n11; this.n12 = _arg1.n12; this.n13 = _arg1.n13; this.n21 = _arg1.n21; this.n22 = _arg1.n22; this.n23 = _arg1.n23; this.n31 = _arg1.n31; this.n32 = _arg1.n32; this.n33 = _arg1.n33; return (this); } public function  (_arg1:Matrix3D, _arg2:Matrix3D):void{ this.n11 = (_arg1.n11 + _arg2.n11); this.n12 = (_arg1.n12 + _arg2.n12); this.n13 = (_arg1.n13 + _arg2.n13); this.n14 = (_arg1.n14 + _arg2.n14); this.n21 = (_arg1.n21 + _arg2.n21); this.n22 = (_arg1.n22 + _arg2.n22); this.n23 = (_arg1.n23 + _arg2.n23); this.n24 = (_arg1.n24 + _arg2.n24); this.n31 = (_arg1.n31 + _arg2.n31); this.n32 = (_arg1.n32 + _arg2.n32); this.n33 = (_arg1.n33 + _arg2.n33); this.n34 = (_arg1.n34 + _arg2.n34); } public function calculateMultiply(_arg1:Matrix3D, _arg2:Matrix3D):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local3 = _arg1.n11; _local4 = _arg2.n11; _local5 = _arg1.n21; _local6 = _arg2.n21; _local7 = _arg1.n31; _local8 = _arg2.n31; _local9 = _arg1.n12; _local10 = _arg2.n12; _local11 = _arg1.n22; _local12 = _arg2.n22; _local13 = _arg1.n32; _local14 = _arg2.n32; _local15 = _arg1.n13; _local16 = _arg2.n13; _local17 = _arg1.n23; _local18 = _arg2.n23; _local19 = _arg1.n33; _local20 = _arg2.n33; _local21 = _arg1.n14; _local22 = _arg2.n14; _local23 = _arg1.n24; _local24 = _arg2.n24; _local25 = _arg1.n34; _local26 = _arg2.n34; this.n11 = (((_local3 * _local4) + (_local9 * _local6)) + (_local15 * _local8)); this.n12 = (((_local3 * _local10) + (_local9 * _local12)) + (_local15 * _local14)); this.n13 = (((_local3 * _local16) + (_local9 * _local18)) + (_local15 * _local20)); this.n14 = ((((_local3 * _local22) + (_local9 * _local24)) + (_local15 * _local26)) + _local21); this.n21 = (((_local5 * _local4) + (_local11 * _local6)) + (_local17 * _local8)); this.n22 = (((_local5 * _local10) + (_local11 * _local12)) + (_local17 * _local14)); this.n23 = (((_local5 * _local16) + (_local11 * _local18)) + (_local17 * _local20)); this.n24 = ((((_local5 * _local22) + (_local11 * _local24)) + (_local17 * _local26)) + _local23); this.n31 = (((_local7 * _local4) + (_local13 * _local6)) + (_local19 * _local8)); this.n32 = (((_local7 * _local10) + (_local13 * _local12)) + (_local19 * _local14)); this.n33 = (((_local7 * _local16) + (_local13 * _local18)) + (_local19 * _local20)); this.n34 = ((((_local7 * _local22) + (_local13 * _local24)) + (_local19 * _local26)) + _local25); } public function toString():String{ var _local1:String; _local1 = ""; _local1 = (_local1 + ((((((((int((n11 * 1000)) / 1000) + "\t\t") + (int((n12 * 1000)) / 1000)) + "\t\t") + (int((n13 * 1000)) / 1000)) + "\t\t") + (int((n14 * 1000)) / 1000)) + "\n")); _local1 = (_local1 + ((((((((int((n21 * 1000)) / 1000) + "\t\t") + (int((n22 * 1000)) / 1000)) + "\t\t") + (int((n23 * 1000)) / 1000)) + "\t\t") + (int((n24 * 1000)) / 1000)) + "\n")); _local1 = (_local1 + ((((((((int((n31 * 1000)) / 1000) + "\t\t") + (int((n32 * 1000)) / 1000)) + "\t\t") + (int((n33 * 1000)) / 1000)) + "\t\t") + (int((n34 * 1000)) / 1000)) + "\n")); return (_local1); } public function copy(_arg1:Matrix3D):Matrix3D{ this.n11 = _arg1.n11; this.n12 = _arg1.n12; this.n13 = _arg1.n13; this.n14 = _arg1.n14; this.n21 = _arg1.n21; this.n22 = _arg1.n22; this.n23 = _arg1.n23; this.n24 = _arg1.n24; this.n31 = _arg1.n31; this.n32 = _arg1.n32; this.n33 = _arg1.n33; this.n34 = _arg1.n34; return (this); } public function  (_arg1:Matrix3D):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local2 = _arg1.det; if (Math.abs(_local2) > 0.001){ _local2 = (1 / _local2); _local3 = _arg1.n11; _local4 = _arg1.n21; _local5 = _arg1.n31; _local6 = _arg1.n12; _local7 = _arg1.n22; _local8 = _arg1.n32; _local9 = _arg1.n13; _local10 = _arg1.n23; _local11 = _arg1.n33; _local12 = _arg1.n14; _local13 = _arg1.n24; _local14 = _arg1.n34; this.n11 = (_local2 * ((_local7 * _local11) - (_local8 * _local10))); this.n12 = (-(_local2) * ((_local6 * _local11) - (_local8 * _local9))); this.n13 = (_local2 * ((_local6 * _local10) - (_local7 * _local9))); this.n14 = (-(_local2) * (((_local6 * ((_local10 * _local14) - (_local11 * _local13))) - (_local7 * ((_local9 * _local14) - (_local11 * _local12)))) + (_local8 * ((_local9 * _local13) - (_local10 * _local12))))); this.n21 = (-(_local2) * ((_local4 * _local11) - (_local5 * _local10))); this.n22 = (_local2 * ((_local3 * _local11) - (_local5 * _local9))); this.n23 = (-(_local2) * ((_local3 * _local10) - (_local4 * _local9))); this.n24 = (_local2 * (((_local3 * ((_local10 * _local14) - (_local11 * _local13))) - (_local4 * ((_local9 * _local14) - (_local11 * _local12)))) + (_local5 * ((_local9 * _local13) - (_local10 * _local12))))); this.n31 = (_local2 * ((_local4 * _local8) - (_local5 * _local7))); this.n32 = (-(_local2) * ((_local3 * _local8) - (_local5 * _local6))); this.n33 = (_local2 * ((_local3 * _local7) - (_local4 * _local6))); this.n34 = (-(_local2) * (((_local3 * ((_local7 * _local14) - (_local8 * _local13))) - (_local4 * ((_local6 * _local14) - (_local8 * _local12)))) + (_local5 * ((_local6 * _local13) - (_local7 * _local12))))); }; } public static function rotationMatrixWithReference(_arg1:Number3D, _arg2:Number, _arg3:Number3D):Matrix3D{ var _local4:Matrix3D; _local4 = Matrix3D.translationMatrix(_arg3.x, -(_arg3.y), _arg3.z); Matrix3D.translationMatrix(_arg3.x, -(_arg3.y), _arg3.z).calculateMultiply(_local4, Matrix3D.rotationMatrix(_arg1.x, _arg1.y, _arg1.z, _arg2)); _local4.calculateMultiply(_local4, Matrix3D.translationMatrix(-(_arg3.x), _arg3.y, -(_arg3.z))); return (_local4); } public static function multiplyVector3x3(_arg1:Matrix3D, _arg2:Number3D):void{ var _local3:Number; var _local4:Number; var _local5:Number; _local3 = _arg2.x; _local4 = _arg2.y; _local5 = _arg2.z; _arg2.x = (((_local3 * _arg1.n11) + (_local4 * _arg1.n12)) + (_local5 * _arg1.n13)); _arg2.y = (((_local3 * _arg1.n21) + (_local4 * _arg1.n22)) + (_local5 * _arg1.n23)); _arg2.z = (((_local3 * _arg1.n31) + (_local4 * _arg1.n32)) + (_local5 * _arg1.n33)); } public static function multiply3x3(_arg1:Matrix3D, _arg2:Matrix3D):Matrix3D{ var _local3:Matrix3D; _local3 = new (Matrix3D); _local3.calculateMultiply3x3(_arg1, _arg2); return (_local3); } public static function normalizeQuaternion(_arg1:Object):Object{ var _local2:Number; _local2 = magnitudeQuaternion(_arg1); _arg1.x = (_arg1.x / _local2); _arg1.y = (_arg1.y / _local2); _arg1.z = (_arg1.z / _local2); _arg1.w = (_arg1.w / _local2); return (_arg1); } public static function multiplyVector(_arg1:Matrix3D, _arg2:Number3D):void{ var _local3:Number; var _local4:Number; var _local5:Number; _local3 = _arg2.x; _local4 = _arg2.y; _local5 = _arg2.z; _arg2.x = ((((_local3 * _arg1.n11) + (_local4 * _arg1.n12)) + (_local5 * _arg1.n13)) + _arg1.n14); _arg2.y = ((((_local3 * _arg1.n21) + (_local4 * _arg1.n22)) + (_local5 * _arg1.n23)) + _arg1.n24); _arg2.z = ((((_local3 * _arg1.n31) + (_local4 * _arg1.n32)) + (_local5 * _arg1.n33)) + _arg1.n34); } public static function axis2quaternion(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Object{ var _local5:Number; var _local6:Number; var _local7:Object; _local5 = Math.sin((_arg4 / 2)); _local6 = Math.cos((_arg4 / 2)); _local7 = new Object(); _local7.x = (_arg1 * _local5); _local7.y = (_arg2 * _local5); _local7.z = (_arg3 * _local5); _local7.w = _local6; return (normalizeQuaternion(_local7)); } public static function translationMatrix(_arg1:Number, _arg2:Number, _arg3:Number):Matrix3D{ var _local4:Matrix3D; _local4 = IDENTITY; _local4.n14 = _arg1; _local4.n24 = _arg2; _local4.n34 = _arg3; return (_local4); } public static function magnitudeQuaternion(_arg1:Object):Number{ return (Math.sqrt(((((_arg1.w * _arg1.w) + (_arg1.x * _arg1.x)) + (_arg1.y * _arg1.y)) + (_arg1.z * _arg1.z)))); } public static function euler2quaternion(_arg1:Number, _arg2:Number, _arg3:Number):Object{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Object; _local4 = Math.sin((_arg1 * 0.5)); _local5 = Math.cos((_arg1 * 0.5)); _local6 = Math.sin((_arg2 * 0.5)); _local7 = Math.cos((_arg2 * 0.5)); _local8 = Math.sin((_arg3 * 0.5)); _local9 = Math.cos((_arg3 * 0.5)); _local10 = (_local5 * _local7); _local11 = (_local4 * _local6); _local12 = new Object(); _local12.x = ((_local8 * _local10) - (_local9 * _local11)); _local12.y = (((_local9 * _local4) * _local7) + ((_local8 * _local5) * _local6)); _local12.z = (((_local9 * _local5) * _local6) - ((_local8 * _local4) * _local7)); _local12.w = ((_local9 * _local10) + (_local8 * _local11)); return (_local12); } public static function rotationX(_arg1:Number):Matrix3D{ var _local2:Matrix3D; var _local3:Number; var _local4:Number; _local2 = IDENTITY; _local3 = Math.cos(_arg1); _local4 = Math.sin(_arg1); _local2.n22 = _local3; _local2.n23 = -(_local4); _local2.n32 = _local4; _local2.n33 = _local3; return (_local2); } public static function rotationY(_arg1:Number):Matrix3D{ var _local2:Matrix3D; var _local3:Number; var _local4:Number; _local2 = IDENTITY; _local3 = Math.cos(_arg1); _local4 = Math.sin(_arg1); _local2.n11 = _local3; _local2.n13 = -(_local4); _local2.n31 = _local4; _local2.n33 = _local3; return (_local2); } public static function rotationZ(_arg1:Number):Matrix3D{ var _local2:Matrix3D; var _local3:Number; var _local4:Number; _local2 = IDENTITY; _local3 = Math.cos(_arg1); _local4 = Math.sin(_arg1); _local2.n11 = _local3; _local2.n12 = -(_local4); _local2.n21 = _local4; _local2.n22 = _local3; return (_local2); } public static function clone(_arg1:Matrix3D):Matrix3D{ return (new Matrix3D([_arg1.n11, _arg1.n12, _arg1.n13, _arg1.n14, _arg1.n21, _arg1.n22, _arg1.n23, _arg1.n24, _arg1.n31, _arg1.n32, _arg1.n33, _arg1.n34])); } public static function rotationMatrix(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Matrix3D{ var _local5:Matrix3D; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local5 = IDENTITY; _local6 = Math.cos(_arg4); _local7 = Math.sin(_arg4); _local8 = (1 - _local6); _local9 = ((_arg1 * _arg2) * _local8); _local10 = ((_arg2 * _arg3) * _local8); _local11 = ((_arg1 * _arg3) * _local8); _local12 = (_local7 * _arg3); _local13 = (_local7 * _arg2); _local14 = (_local7 * _arg1); _local5.n11 = (_local6 + ((_arg1 * _arg1) * _local8)); _local5.n12 = (-(_local12) + _local9); _local5.n13 = (_local13 + _local11); _local5.n21 = (_local12 + _local9); _local5.n22 = (_local6 + ((_arg2 * _arg2) * _local8)); _local5.n23 = (-(_local14) + _local10); _local5.n31 = (-(_local13) + _local11); _local5.n32 = (_local14 + _local10); _local5.n33 = (_local6 + ((_arg3 * _arg3) * _local8)); return (_local5); } public static function add(_arg1:Matrix3D, _arg2:Matrix3D):Matrix3D{ var _local3:Matrix3D; _local3 = new (Matrix3D); _local3. (_arg1, _arg2); return (_local3); } public static function rotateAxis(_arg1:Matrix3D, _arg2:Number3D):void{ var _local3:Number; var _local4:Number; var _local5:Number; _local3 = _arg2.x; _local4 = _arg2.y; _local5 = _arg2.z; _arg2.x = (((_local3 * _arg1.n11) + (_local4 * _arg1.n12)) + (_local5 * _arg1.n13)); _arg2.y = (((_local3 * _arg1.n21) + (_local4 * _arg1.n22)) + (_local5 * _arg1.n23)); _arg2.z = (((_local3 * _arg1.n31) + (_local4 * _arg1.n32)) + (_local5 * _arg1.n33)); _arg2.normalize(); } public static function multiply(_arg1:Matrix3D, _arg2:Matrix3D):Matrix3D{ var _local3:Matrix3D; _local3 = new (Matrix3D); _local3.calculateMultiply(_arg1, _arg2); return (_local3); } public static function multiplyQuaternion(_arg1:Object, _arg2:Object):Object{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Object; _local3 = _arg1.x; _local4 = _arg1.y; _local5 = _arg1.z; _local6 = _arg1.w; _local7 = _arg2.x; _local8 = _arg2.y; _local9 = _arg2.z; _local10 = _arg2.w; _local11 = new Object(); _local11.x = ((((_local6 * _local7) + (_local3 * _local10)) + (_local4 * _local9)) - (_local5 * _local8)); _local11.y = ((((_local6 * _local8) + (_local4 * _local10)) + (_local5 * _local7)) - (_local3 * _local9)); _local11.z = ((((_local6 * _local9) + (_local5 * _local10)) + (_local3 * _local8)) - (_local4 * _local7)); _local11.w = ((((_local6 * _local10) - (_local3 * _local7)) - (_local4 * _local8)) - (_local5 * _local9)); return (_local11); } public static function euler2matrix(_arg1:Number3D):Matrix3D{ var _local2:Matrix3D; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; _local2 = IDENTITY; _local3 = (_arg1.x * toRADIANS); _local4 = (_arg1.y * toRADIANS); _local5 = (_arg1.z * toRADIANS); _local6 = Math.cos(_local3); _local7 = Math.sin(_local3); _local8 = Math.cos(_local4); _local9 = Math.sin(_local4); _local10 = Math.cos(_local5); _local11 = Math.sin(_local5); _local12 = (_local6 * _local9); _local13 = (_local7 * _local9); _local2.n11 = (_local8 * _local10); _local2.n12 = (-(_local8) * _local11); _local2.n13 = _local9; _local2.n21 = ((_local13 * _local10) + (_local6 * _local11)); _local2.n22 = ((-(_local13) * _local11) + (_local6 * _local10)); _local2.n23 = (-(_local7) * _local8); _local2.n31 = ((-(_local12) * _local10) + (_local7 * _local11)); _local2.n32 = ((_local12 * _local11) + (_local7 * _local10)); _local2.n33 = (_local6 * _local8); return (_local2); } public static function scaleMatrix(_arg1:Number, _arg2:Number, _arg3:Number):Matrix3D{ var _local4:Matrix3D; _local4 = IDENTITY; _local4.n11 = _arg1; _local4.n22 = _arg2; _local4.n33 = _arg3; return (_local4); } public static function quaternion2matrix(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Matrix3D{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Matrix3D; _local5 = (_arg1 * _arg1); _local6 = (_arg1 * _arg2); _local7 = (_arg1 * _arg3); _local8 = (_arg1 * _arg4); _local9 = (_arg2 * _arg2); _local10 = (_arg2 * _arg3); _local11 = (_arg2 * _arg4); _local12 = (_arg3 * _arg3); _local13 = (_arg3 * _arg4); _local14 = IDENTITY; _local14.n11 = (1 - (2 * (_local9 + _local12))); _local14.n12 = (2 * (_local6 - _local13)); _local14.n13 = (2 * (_local7 + _local11)); _local14.n21 = (2 * (_local6 + _local13)); _local14.n22 = (1 - (2 * (_local5 + _local12))); _local14.n23 = (2 * (_local10 - _local8)); _local14.n31 = (2 * (_local7 - _local11)); _local14.n32 = (2 * (_local10 + _local8)); _local14.n33 = (1 - (2 * (_local5 + _local9))); return (_local14); } public static function inverse(_arg1:Matrix3D):Matrix3D{ var _local2:Matrix3D; _local2 = new (Matrix3D); _local2. (_arg1); return (_local2); } public static function matrix2euler(_arg1:Matrix3D):Number3D{ var _local2:Number3D; var _local3:Number3D; var _local4:Number3D; var _local5:Number3D; var _local6:Matrix3D; var _local7:Matrix3D; var _local8:Matrix3D; var _local9:Number; _local2 = new Number3D(); _local3 = new Number3D(_arg1.n11, _arg1.n21, _arg1.n31); _local4 = new Number3D(_arg1.n12, _arg1.n22, _arg1.n32); _local5 = new Number3D(_arg1.n13, _arg1.n23, _arg1.n33); _local3.normalize(); _local4.normalize(); _local5.normalize(); _local6 = new Matrix3D([_local3.x, _local4.x, _local5.x, 0, _local3.y, _local4.y, _local5.y, 0, _local3.z, _local4.z, _local5.z, 0]); _local2.x = Math.atan2(_local6.n23, _local6.n33); _local7 = Matrix3D.rotationX(-(_local2.x)); _local8 = Matrix3D.multiply(_local7, _local6); _local9 = Math.sqrt(((_local8.n11 * _local8.n11) + (_local8.n21 * _local8.n21))); _local2.y = Math.atan2(-(_local8.n31), _local9); _local2.z = Math.atan2(-(_local8.n12), _local8.n11); if (_local2.x == Math.PI){ if (_local2.y > 0){ _local2.y = (_local2.y - Math.PI); } else { _local2.y = (_local2.y + Math.PI); }; _local2.x = 0; _local2.z = (_local2.z + Math.PI); }; _local2.x = (_local2.x * toDEGREES); _local2.y = (_local2.y * toDEGREES); _local2.z = (_local2.z * toDEGREES); return (_local2); } public static function get IDENTITY():Matrix3D{ return (new Matrix3D([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0])); } } }//package org.papervision3d.core
Section 51
//Number3D (org.papervision3d.core.Number3D) package org.papervision3d.core { public class Number3D { public var x:Number; public var y:Number; public var z:Number; public function Number3D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; } public function toString():String{ return (((((("x:" + x) + " y:") + y) + " z:") + z)); } public function normalize():void{ var _local1:Number; _local1 = this.modulo; if (((!((_local1 == 0))) && (!((_local1 == 1))))){ this.x = (this.x / _local1); this.y = (this.y / _local1); this.z = (this.z / _local1); }; } public function get modulo():Number{ return (Math.sqrt((((this.x * this.x) + (this.y * this.y)) + (this.z * this.z)))); } public function copyTo(_arg1:Number3D):void{ _arg1.x = x; _arg1.y = y; _arg1.z = z; } public function clone():Number3D{ return (new Number3D(this.x, this.y, this.z)); } public static function sub(_arg1:Number3D, _arg2:Number3D):Number3D{ return (new Number3D((_arg1.x - _arg2.x), (_arg1.y - _arg2.y), (_arg1.z - _arg2.z))); } public static function add(_arg1:Number3D, _arg2:Number3D):Number3D{ return (new Number3D((_arg1.x + _arg2.x), (_arg1.y + _arg2.y), (_arg1.z + _arg2.z))); } public static function cross(_arg1:Number3D, _arg2:Number3D):Number3D{ return (new Number3D(((_arg2.y * _arg1.z) - (_arg2.z * _arg1.y)), ((_arg2.z * _arg1.x) - (_arg2.x * _arg1.z)), ((_arg2.x * _arg1.y) - (_arg2.y * _arg1.x)))); } public static function get ZERO():Number3D{ return (new Number3D(0, 0, 0)); } public static function dot(_arg1:Number3D, _arg2:Number3D):Number{ return ((((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y)) + (_arg2.z * _arg1.z))); } } }//package org.papervision3d.core
Section 52
//NumberUV (org.papervision3d.core.NumberUV) package org.papervision3d.core { public class NumberUV { public var u:Number; public var v:Number; public function NumberUV(_arg1:Number=0, _arg2:Number=0){ this.u = _arg1; this.v = _arg2; } public function toString():String{ return (((("u:" + u) + " v:") + v)); } public function clone():NumberUV{ return (new NumberUV(this.u, this.v)); } public static function get ZERO():NumberUV{ return (new NumberUV(0, 0)); } } }//package org.papervision3d.core
Section 53
//InteractiveScene3DEvent (org.papervision3d.events.InteractiveScene3DEvent) package org.papervision3d.events { import flash.display.*; import flash.events.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; import org.papervision3d.utils.*; public class InteractiveScene3DEvent extends Event { public var  :Sprite;// = null public var interactiveContainerData:InteractiveContainerData;// = null public var displayObject3D:DisplayObject3D;// = null public var face3d:Face3D;// = null public static const OBJECT_ADDED:String = "objectAdded"; public static const OBJECT_PRESS:String = "mousePress"; public static const OBJECT_RELEASE:String = "mouseRelease"; public static const OBJECT_CLICK:String = "mouseClick"; public static const OBJECT_RELEASE_OUTSIDE:String = "mouseReleaseOutside"; public static const OBJECT_OUT:String = "mouseOut"; public static const OBJECT_MOVE:String = "mouseMove"; public static const OBJECT_OVER:String = "mouseOver"; public function InteractiveScene3DEvent(_arg1:String, _arg2:DisplayObject3D=null, _arg3:Sprite=null, _arg4:Face3D=null, _arg5:InteractiveContainerData=null, _arg6:Boolean=false, _arg7:Boolean=false){ displayObject3D = null;  = null; face3d = null; interactiveContainerData = null; super(_arg1, _arg6, _arg7); this.displayObject3D = _arg2; this. = _arg3; this.face3d = _arg4; this.interactiveContainerData = _arg5; } } }//package org.papervision3d.events
Section 54
//BitmapMaterial (org.papervision3d.materials.BitmapMaterial) package org.papervision3d.materials { import flash.display.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; import org.papervision3d.core.proto.*; import flash.geom.*; import org.papervision3d.core.draw.*; import flash.utils.*; import org.papervision3d.*; public class BitmapMaterial extends MaterialObject3D implements IFaceDrawer { public var  :Dictionary; protected var _texture:Object; public static var AUTO_MIP_MAPPING:Boolean = false; protected static var _localMatrix:Matrix = new Matrix(); public static var MIP_MAP_DEPTH:Number = 8; protected static var _triMatrix:Matrix = new Matrix(); public function BitmapMaterial(_arg1:BitmapData=null){  = new Dictionary(); super(); if (_arg1){ texture = _arg1; }; } override public function drawFace3D(_arg1:DisplayObject3D, _arg2:Face3D, _arg3:Graphics, _arg4:Vertex2D, _arg5:Vertex2D, _arg6:Vertex2D):int{ var _local7:Matrix; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; if (lineAlpha){ _arg3.lineStyle(0, lineColor, lineAlpha); }; if (bitmap){ _local7 = (( [_arg2]) || (transformUV(_arg2, _arg1))); _local8 = _arg4.x; _local9 = _arg4.y; _local10 = _arg5.x; _local11 = _arg5.y; _local12 = _arg6.x; _local13 = _arg6.y; _triMatrix.a = (_local10 - _local8); _triMatrix.b = (_local11 - _local9); _triMatrix.c = (_local12 - _local8); _triMatrix.d = (_local13 - _local9); _triMatrix.tx = _local8; _triMatrix.ty = _local9; _localMatrix.a = _local7.a; _localMatrix.b = _local7.b; _localMatrix.c = _local7.c; _localMatrix.d = _local7.d; _localMatrix.tx = _local7.tx; _localMatrix.ty = _local7.ty; _localMatrix.concat(_triMatrix); _arg3.beginBitmapFill(bitmap, _localMatrix, tiled, smooth); }; _arg3.moveTo(_local8, _local9); _arg3.lineTo(_local10, _local11); _arg3.lineTo(_local12, _local13); _arg3.lineTo(_local8, _local9); if (bitmap){ _arg3.endFill(); }; if (lineAlpha){ _arg3.lineStyle(); }; return (1); } public function  ():void{  = new Dictionary(); } public function transformUV(_arg1:Face3D, _arg2:DisplayObject3D=null):Matrix{ var _local3:Array; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Matrix; var _local17:Matrix; if (!_arg1.uv){ Papervision3D.log("MaterialObject3D: transformUV() uv not found!"); } else { if (bitmap){ _local3 = _arg1.uv; _local4 = (bitmap.width * maxU); _local5 = (bitmap.height * maxV); _local6 = (_local4 * _local3[0].u); _local7 = (_local5 * (1 - _local3[0].v)); _local8 = (_local4 * _local3[1].u); _local9 = (_local5 * (1 - _local3[1].v)); _local10 = (_local4 * _local3[2].u); _local11 = (_local5 * (1 - _local3[2].v)); if ((((((_local6 == _local8)) && ((_local7 == _local9)))) || ((((_local6 == _local10)) && ((_local7 == _local11)))))){ _local6 = (_local6 - ((_local6)>0.05) ? 0.05 : -0.05); _local7 = (_local7 - ((_local7)>0.07) ? 0.07 : -0.07); }; if ((((_local10 == _local8)) && ((_local11 == _local9)))){ _local10 = (_local10 - ((_local10)>0.05) ? 0.04 : -0.04); _local11 = (_local11 - ((_local11)>0.06) ? 0.06 : -0.06); }; _local12 = (_local8 - _local6); _local13 = (_local9 - _local7); _local14 = (_local10 - _local6); _local15 = (_local11 - _local7); _local16 = new Matrix(_local12, _local13, _local14, _local15, _local6, _local7); _local16.invert(); _local17 = (( [_arg1]) || (( [_arg1] = _local16.clone()))); _local17.a = _local16.a; _local17.b = _local16.b; _local17.c = _local16.c; _local17.d = _local16.d; _local17.tx = _local16.tx; _local17.ty = _local16.ty; } else { Papervision3D.log("MaterialObject3D: transformUV() material.bitmap not found!"); }; }; return (_local17); } public function get texture():Object{ return (this._texture); } protected function  (_arg1:BitmapData):BitmapData{ var _local2:BitmapData; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Boolean; _local3 = (1 << MIP_MAP_DEPTH); _local4 = (_arg1.width / _local3); _local4 = ((_local4 == uint(_local4))) ? _local4 : (uint(_local4) + 1); _local5 = (_arg1.height / _local3); _local5 = ((_local5 == uint(_local5))) ? _local5 : (uint(_local5) + 1); _local6 = (_local3 * _local4); _local7 = (_local3 * _local5); _local8 = true; if (_local6 > 2880){ _local6 = _arg1.width; _local8 = false; }; if (_local7 > 2880){ _local7 = _arg1.height; _local8 = false; }; if (!_local8){ Papervision3D.log((("Material " + this.name) + ": Texture too big for mip mapping. Resizing recommended for better performance and quality.")); }; if (((_arg1) && (((!(((_arg1.width % _local3) == 0))) || (!(((_arg1.height % _local3) == 0))))))){ _local2 = new BitmapData(_local6, _local7, _arg1.transparent, 0); widthOffset = _arg1.width; heightOffset = _arg1.height; this.maxU = (_arg1.width / _local6); this.maxV = (_arg1.height / _local7); _local2.draw(_arg1);  (_local2, _arg1.width, _arg1.height); } else { this.maxU = (this.maxV = 1); _local2 = _arg1; }; return (_local2); } public function set texture(_arg1:Object):void{ if ((_arg1 is BitmapData) == false){ Papervision3D.log("Error: BitmapMaterial.texture requires a BitmapData object for the texture"); return; }; bitmap = createBitmap(BitmapData(_arg1)); _texture = _arg1; } protected function createBitmap(_arg1:BitmapData):BitmapData{  (); if (AUTO_MIP_MAPPING){ return ( (_arg1)); }; this.maxU = (this.maxV = 1); return (_arg1); } override public function toString():String{ return (((((("Texture:" + this.texture) + " lineColor:") + this.lineColor) + " lineAlpha:") + this.lineAlpha)); } override public function copy(_arg1:MaterialObject3D):void{ super.copy(_arg1); this.maxU = _arg1.maxU; this.maxV = _arg1.maxV; } protected function  (_arg1:BitmapData, _arg2:Number, _arg3:Number):void{ var _local4:Rectangle; var _local5:Point; var _local6:int; _local4 = new Rectangle(); _local5 = new Point(); if (_arg1.width > _arg2){ _local4.x = (_arg2 - 1); _local4.y = 0; _local4.width = 1; _local4.height = _arg3; _local5.y = 0; _local6 = _arg2; while (_local6 < _arg1.width) { _local5.x = _local6; _arg1.copyPixels(_arg1, _local4, _local5); _local6++; }; }; if (_arg1.height > _arg3){ _local4.x = 0; _local4.y = (_arg3 - 1); _local4.width = _arg1.width; _local4.height = 1; _local5.x = 0; _local6 = _arg3; while (_local6 < _arg1.height) { _local5.y = _local6; _arg1.copyPixels(_arg1, _local4, _local5); _local6++; }; }; } override public function clone():MaterialObject3D{ var _local1:MaterialObject3D; _local1 = super.clone(); _local1.maxU = this.maxU; _local1.maxV = this.maxV; return (_local1); } } }//package org.papervision3d.materials
Section 55
//ColorMaterial (org.papervision3d.materials.ColorMaterial) package org.papervision3d.materials { import flash.display.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.draw.*; public class ColorMaterial extends MaterialObject3D implements IFaceDrawer { public function ColorMaterial(_arg1:Number=0xFF00FF, _arg2:Number=1, _arg3:Object=null){ this.fillColor = _arg1; this.fillAlpha = _arg2; } override public function drawFace3D(_arg1:DisplayObject3D, _arg2:Face3D, _arg3:Graphics, _arg4:Vertex2D, _arg5:Vertex2D, _arg6:Vertex2D):int{ var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; _local7 = _arg4.x; _local8 = _arg4.y; _local9 = _arg5.x; _local10 = _arg5.y; _local11 = _arg6.x; _local12 = _arg6.y; _arg3.beginFill(fillColor, fillAlpha); _arg3.moveTo(_local7, _local8); _arg3.lineTo(_local9, _local10); _arg3.lineTo(_local11, _local12); _arg3.lineTo(_local7, _local8); _arg3.endFill(); return (1); } override public function toString():String{ return (((("ColorMaterial - color:" + this.fillColor) + " alpha:") + this.fillAlpha)); } } }//package org.papervision3d.materials
Section 56
//InteractiveMovieMaterial (org.papervision3d.materials.InteractiveMovieMaterial) package org.papervision3d.materials { import flash.display.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; public class InteractiveMovieMaterial extends MovieMaterial { public function InteractiveMovieMaterial(_arg1:Sprite, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function drawFace3D(_arg1:DisplayObject3D, _arg2:Face3D, _arg3:Graphics, _arg4:Vertex2D, _arg5:Vertex2D, _arg6:Vertex2D):int{ var _local7:int; _local7 = super.drawFace3D(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); if (((!((_arg1.interactiveSceneManager == null))) && (_local7))){ _arg1.interactiveSceneManager.drawFace(_arg1, _arg2, _arg4.x, _arg5.x, _arg6.x, _arg4.y, _arg5.y, _arg6.y); }; return (_local7); } } }//package org.papervision3d.materials
Section 57
//MaterialsList (org.papervision3d.materials.MaterialsList) package org.papervision3d.materials { import org.papervision3d.core.proto.*; import flash.utils.*; public class MaterialsList { public var materialsByName:Dictionary; protected var :Dictionary; private var :int; public function MaterialsList(_arg1=null):void{ var _local2:String; var _local3:String; super(); this.materialsByName = new Dictionary(true); this. = new Dictionary(false); this. = 0; if (_arg1){ if ((_arg1 is Array)){ for (_local2 in _arg1) { this.(_arg1[_local2]); }; } else { if ((_arg1 is Object)){ for (_local3 in _arg1) { this.(_arg1[_local3], _local3); }; }; }; }; } public function get numMaterials():int{ return (this.); } public function (_arg1:MaterialObject3D, _arg2:String=null):MaterialObject3D{ _arg2 = ((((_arg2) || (_arg1.name))) || (String(_arg1.id))); this.[_arg1] = _arg2; this.materialsByName[_arg2] = _arg1; this.++; return (_arg1); } public function (_arg1:MaterialObject3D):MaterialObject3D{ delete this.materialsByName[this.[_arg1]]; delete this.[_arg1]; return (_arg1); } public function toString():String{ var _local1:String; var _local2:MaterialObject3D; _local1 = ""; for each (_local2 in this.materialsByName) { _local1 = (_local1 + (this.[_local2] + "\n")); }; return (_local1); } public function (_arg1:String):MaterialObject3D{ return ((getMaterialByName(_arg1))); } public function clone():MaterialsList{ var _local1:MaterialsList; var _local2:MaterialObject3D; _local1 = new MaterialsList(); for each (_local2 in this.materialsByName) { _local1.(_local2.clone(), this.[_local2]); }; return (_local1); } public function getMaterialByName(_arg1:String):MaterialObject3D{ return ((this.materialsByName[_arg1]) ? this.materialsByName[_arg1] : this.materialsByName["all"]); } } }//package org.papervision3d.materials
Section 58
//MovieMaterial (org.papervision3d.materials.MovieMaterial) package org.papervision3d.materials { import flash.display.*; import flash.geom.*; import flash.utils.*; import org.papervision3d.*; public class MovieMaterial extends BitmapMaterial { public var :Boolean; public var :Boolean;// = true public var movie:DisplayObject; private static var animatedMaterials:Dictionary = new Dictionary(false); public function MovieMaterial(_arg1:DisplayObject=null, _arg2:Boolean=false, _arg3:Boolean=false){  = true; super();  = _arg2; this.animated = _arg3; if (_arg1){ texture = _arg1; }; } public function ():void{ var _local1:Matrix; bitmap.fillRect(bitmap.rect, this.fillColor); _local1 = new Matrix(); _local1.scale(movie.scaleX, movie.scaleY); bitmap.draw(movie, _local1, movie.transform.colorTransform); } override public function get texture():Object{ return (this._texture); } public function get animated():Boolean{ return (animatedMaterials[this]); } override public function set texture(_arg1:Object):void{ if ((_arg1 is DisplayObject) == false){ Papervision3D.log("Error: MovieMaterial.texture requires a Sprite to be passed as the object"); return; }; bitmap = (DisplayObject(_arg1)); _texture = _arg1; } protected function (_arg1:DisplayObject):BitmapData{ movie = _arg1;  (movie); (); bitmap = super.createBitmap(bitmap); return (bitmap); } public function set animated(_arg1:Boolean):void{ animatedMaterials[this] = _arg1; } override public function updateBitmap():void{ var _local1:int; var _local2:int; _local1 = int(movie.width); _local2 = int(movie.height); if ((() && (((!((_local1 == bitmap.width))) || (!((_local2 == bitmap.height))))))){  (movie); }; (); } protected function  (_arg1:DisplayObject):void{ if (bitmap){ bitmap.dispose(); }; bitmap = new BitmapData(_arg1.width, _arg1.height, this.); } public static function updateAnimatedBitmaps():void{ var _local1:Object; for (_local1 in animatedMaterials) { if (animatedMaterials[_local1]){ _local1.updateBitmap(); }; }; } } }//package org.papervision3d.materials
Section 59
//WireframeMaterial (org.papervision3d.materials.WireframeMaterial) package org.papervision3d.materials { import flash.display.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.draw.*; public class WireframeMaterial extends MaterialObject3D implements IFaceDrawer { public function WireframeMaterial(_arg1:Number=0xFF00FF, _arg2:Number=100){ this.lineColor = _arg1; this.lineAlpha = _arg2; this.doubleSided = false; } override public function drawFace3D(_arg1:DisplayObject3D, _arg2:Face3D, _arg3:Graphics, _arg4:Vertex2D, _arg5:Vertex2D, _arg6:Vertex2D):int{ var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; _local7 = _arg4.x; _local8 = _arg4.y; _local9 = _arg5.x; _local10 = _arg5.y; _local11 = _arg6.x; _local12 = _arg6.y; if (lineAlpha){ _arg3.lineStyle(0, lineColor, lineAlpha); _arg3.moveTo(_local7, _local8); _arg3.lineTo(_local9, _local10); _arg3.lineTo(_local11, _local12); _arg3.lineTo(_local7, _local8); _arg3.lineStyle(); return (1); }; return (0); } override public function toString():String{ return (((("WireframeMaterial - color:" + this.lineColor) + " alpha:") + this.lineAlpha)); } } }//package org.papervision3d.materials
Section 60
//DisplayObject3D (org.papervision3d.objects.DisplayObject3D) package org.papervision3d.objects { import flash.display.*; import org.papervision3d.core.geom.*; import org.papervision3d.core.proto.*; import org.papervision3d.materials.*; import org.papervision3d.core.*; import com.blitzagency.xray.logger.*; import org.papervision3d.utils.*; import org.papervision3d.*; import org.papervision3d.scenes.*; public class DisplayObject3D extends DisplayObjectContainer3D { public var extra:Object; public var id:int; private var  :Number; private var  :Number; private var :Number; public var material:MaterialObject3D; public var meshSort:uint;// = 1 public var materials:MaterialsList; private var  :Boolean;// = false public var transform:Matrix3D; public var screenZ:Number; public var visible:Boolean; private var  :Number; private var  :Number; private var  :Number; public var geometry:GeometryObject3D; public var interactiveSceneManager:InteractiveSceneManager; public var  :Number3D; public var name:String; public var container:Sprite; public var world:Matrix3D; public var parent:DisplayObjectContainer3D; public var view:Matrix3D; protected var  :SceneObject3D;// = null public var faces:Array; protected var  :Boolean;// = false private var  :Boolean;// = false protected var _sorted:Array; public static const MESH_SORT_CENTER:uint = 1; public static const MESH_SORT_CLOSE:uint = 3; public static const MESH_SORT_FAR:uint = 2; private static var LEFT:Number3D = new Number3D(-1, 0, 0); private static var _totalDisplayObjects:int = 0; private static var UP:Number3D = new Number3D(0, 1, 0); private static var BACKWARD:Number3D = new Number3D(0, 0, -1); private static var FORWARD:Number3D = new Number3D(0, 0, 1); private static var DOWN:Number3D = new Number3D(0, -1, 0); public static var faceLevelMode:Boolean; private static var toDEGREES:Number = 57.2957795130823; private static var toRADIANS:Number = 0.0174532925199433; private static var RIGHT:Number3D = new Number3D(1, 0, 0); public function DisplayObject3D(_arg1:String=null, _arg2:GeometryObject3D=null, _arg3:Object=null):void{ var _local4:Number;   = new Number3D();   = null; meshSort = MESH_SORT_CENTER; faces = new Array();  = false;  = false;   = false; super(); Papervision3D.log(("DisplayObject3D: " + _arg1)); this.transform = Matrix3D.IDENTITY; this.world = Matrix3D.IDENTITY; this.view = Matrix3D.IDENTITY; this.x = (_arg3) ? ((_arg3.x) || (0)) : 0; this.y = (_arg3) ? ((_arg3.y) || (0)) : 0; this.z = (_arg3) ? ((_arg3.z) || (0)) : 0; rotationX = (_arg3) ? ((_arg3.rotationX) || (0)) : 0; rotationY = (_arg3) ? ((_arg3.rotationY) || (0)) : 0; rotationZ = (_arg3) ? ((_arg3.rotationZ) || (0)) : 0; _local4 = (Papervision3D.usePERCENT) ? 100 : 1; scaleX = (_arg3) ? ((_arg3.scaleX) || (_local4)) : _local4; scaleY = (_arg3) ? ((_arg3.scaleY) || (_local4)) : _local4; scaleZ = (_arg3) ? ((_arg3.scaleZ) || (_local4)) : _local4; if (((_arg3) && (_arg3.extra))){ this.extra = _arg3.extra; }; if (((_arg3) && (_arg3.container))){ this.container = _arg3.container; }; this.visible = true; this.id = _totalDisplayObjects++; this.name = ((_arg1) || (String(this.id))); if (_arg2){  (_arg2); }; } public function set z(_arg1:Number):void{ this.transform.n34 = _arg1; } override public function addChild(_arg1:DisplayObject3D, _arg2:String=null):DisplayObject3D{ _arg1 = super.addChild(_arg1, _arg2); if (_arg1.scene == null){ _arg1.scene = scene; }; return (_arg1); } public function moveDown(_arg1:Number):void{  (_arg1, DOWN); } public function set scene(_arg1:SceneObject3D):void{ var _local2:DisplayObject3D;   = _arg1; for each (_local2 in this._childrenByName) { if (_local2.scene == null){ _local2.scene =  ; }; }; if ((  is InteractiveScene3D) == false){ return; }; interactiveSceneManager = InteractiveScene3D( ).interactiveSceneManager; } public function project(_arg1:DisplayObject3D, _arg2:CameraObject3D, _arg3:Array=null):Number{ var _local4:Number; var _local5:Number; var _local6:DisplayObject3D; if (this. ){  (); }; this.view.calculateMultiply(_arg1.view, this.transform); this.world.calculateMultiply(_arg1.world, this.transform);  (_arg2); _local4 = 0; _local5 = 0; if (!_arg3){ _arg3 = new Array(); this._sorted = _arg3; }; for each (_local6 in this._childrenByName) { if (_local6.visible){ _local4 = (_local4 + _local6.project(this, _arg2, _arg3)); _local5++; }; }; return ((this.screenZ = (_local4 / _local5))); } private function  (_arg1:CameraObject3D):void{ var _local2:Number; _local2 = ((_arg1.focus * _arg1.zoom) / (_arg1.focus + view.n34));  .x = (view.n14 * _local2);  .y = (view.n24 * _local2);  .z = view.n34; } public function lookAt(_arg1:DisplayObject3D, _arg2:Number3D=null):void{ var _local3:Number3D; var _local4:Number3D; var _local5:Number3D; var _local6:Number3D; var _local7:Number3D; var _local8:Matrix3D; var _local9:XrayLog; _local3 = new Number3D(this.x, this.y, this.z); _local4 = new Number3D(_arg1.x, _arg1.y, _arg1.z); _local5 = Number3D.sub(_local4, _local3); _local5.normalize(); if (_local5.modulo > 0.1){ _local6 = Number3D.cross(_local5, ((_arg2) || (UP))); _local6.normalize(); _local7 = Number3D.cross(_local5, _local6); _local7.normalize(); _local8 = this.transform; _local8.n11 = (_local6.x *  ); _local8.n21 = (_local6.y *  ); _local8.n31 = (_local6.z *  ); _local8.n12 = (-(_local7.x) *  ); _local8.n22 = (-(_local7.y) *  ); _local8.n32 = (-(_local7.z) *  ); _local8.n13 = (_local5.x *  ); _local8.n23 = (_local5.y *  ); _local8.n33 = (_local5.z *  ); this. = false; this. = true; } else { _local9 = new XrayLog(); _local9.debug("lookAt Error"); }; } public function set rotationX(_arg1:Number):void{ this. = (Papervision3D.useDEGREES) ? (-(_arg1) * toRADIANS) : -(_arg1); this. = true; } public function set rotationY(_arg1:Number):void{ this. = (Papervision3D.useDEGREES) ? (-(_arg1) * toRADIANS) : -(_arg1); this. = true; } public function set rotationZ(_arg1:Number):void{ this. = (Papervision3D.useDEGREES) ? (-(_arg1) * toRADIANS) : -(_arg1); this. = true; } public function  (_arg1:GeometryObject3D=null):void{ if (_arg1){ this.geometry = _arg1; }; } public function get sceneX():Number{ return (this.world.n14); } public function get scaleX():Number{ if (Papervision3D.usePERCENT){ return ((this.  * 100)); }; return (this. ); } public function get scaleY():Number{ if (Papervision3D.usePERCENT){ return ((this. * 100)); }; return (this. ); } public function get scaleZ():Number{ if (Papervision3D.usePERCENT){ return ((this. * 100)); }; return (this. ); } public function moveUp(_arg1:Number):void{  (_arg1, UP); } public function get sceneZ():Number{ return (this.world.n34); } public function  (_arg1:DisplayObject3D):Number{ var _local2:Number; var _local3:Number; var _local4:Number; _local2 = (this.x - _arg1.x); _local3 = (this.y - _arg1.y); _local4 = (this.z - _arg1.z); return (Math.sqrt((((_local2 * _local2) + (_local3 * _local3)) + (_local4 * _local4)))); } public function get sceneY():Number{ return (this.world.n24); } public function get scale():Number{ if ((((this.  == this. )) && ((this.  == this. )))){ if (Papervision3D.usePERCENT){ return ((this.  * 100)); }; return (this. ); //unresolved jump }; return (NaN); } public function  (_arg1:DisplayObject3D, _arg2:Number=1):Boolean{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local3 = (this.x - _arg1.x); _local4 = (this.y - _arg1.y); _local5 = (this.z - _arg1.z); _local6 = (((_local3 * _local3) + (_local4 * _local4)) + (_local5 * _local5)); _local7 = (this.geometry) ? this.geometry.boundingSphere2 : 0; _local8 = (_arg1.geometry) ? _arg1.geometry.boundingSphere2 : 0; _local7 = (_local7 * _arg2); return (((_local7 + _local8) > _local6)); } public function  (_arg1:Number, _arg2:Number3D):void{ var _local3:Number3D; _local3 = _arg2.clone(); if (this. ){  (); }; Matrix3D.rotateAxis(transform, _local3); this.x = (this.x + (_arg1 * _local3.x)); this.y = (this.y + (_arg1 * _local3.y)); this.z = (this.z + (_arg1 * _local3.z)); } private function  ():void{ var _local1:Number3D; _local1 = Matrix3D.matrix2euler(this.transform); this. = (_local1.x * toRADIANS); this. = (_local1.y * toRADIANS); this. = (_local1.z * toRADIANS); this. = false; } public function pitch(_arg1:Number):void{ var _local2:Number3D; var _local3:Matrix3D; _arg1 = (Papervision3D.useDEGREES) ? (_arg1 * toRADIANS) : _arg1; _local2 = RIGHT.clone(); if (this. ){  (); }; Matrix3D.rotateAxis(transform, _local2); _local3 = Matrix3D.rotationMatrix(_local2.x, _local2.y, _local2.z, _arg1); this.transform.calculateMultiply3x3(_local3, transform); this. = true; } public function yaw(_arg1:Number):void{ var _local2:Number3D; var _local3:Matrix3D; _arg1 = (Papervision3D.useDEGREES) ? (_arg1 * toRADIANS) : _arg1; _local2 = UP.clone(); if (this. ){  (); }; Matrix3D.rotateAxis(transform, _local2); _local3 = Matrix3D.rotationMatrix(_local2.x, _local2.y, _local2.z, _arg1); this.transform.calculateMultiply3x3(_local3, transform); this. = true; } public function copyTransform(_arg1):void{ var _local2:Matrix3D; var _local3:Matrix3D; _local2 = this.transform; _local3 = ((_arg1 is DisplayObject3D)) ? _arg1.transform : _arg1; _local2.n11 = _local3.n11; _local2.n12 = _local3.n12; _local2.n13 = _local3.n13; _local2.n14 = _local3.n14; _local2.n21 = _local3.n21; _local2.n22 = _local3.n22; _local2.n23 = _local3.n23; _local2.n24 = _local3.n24; _local2.n31 = _local3.n31; _local2.n32 = _local3.n32; _local2.n33 = _local3.n33; _local2.n34 = _local3.n34; this. = false; this. = true; } public function get x():Number{ return (this.transform.n14); } public function get z():Number{ return (this.transform.n34); } override public function toString():String{ return (((((((this.name + ": x:") + Math.round(this.x)) + " y:") + Math.round(this.y)) + " z:") + Math.round(this.z))); } public function  (_arg1:Number):void{ var _local2:Number3D; var _local3:Matrix3D; _arg1 = (Papervision3D.useDEGREES) ? (_arg1 * toRADIANS) : _arg1; _local2 = FORWARD.clone(); if (this. ){  (); }; Matrix3D.rotateAxis(transform, _local2); _local3 = Matrix3D.rotationMatrix(_local2.x, _local2.y, _local2.z, _arg1); this.transform.calculateMultiply3x3(_local3, transform); this. = true; } public function getMaterialByName(_arg1:String):MaterialObject3D{ var _local2:MaterialObject3D; var _local3:DisplayObject3D; _local2 = this.materials.getMaterialByName(_arg1); if (_local2){ return (_local2); }; for each (_local3 in this._childrenByName) { _local2 = _local3.getMaterialByName(_arg1); if (_local2){ return (_local2); }; }; return (null); } public function moveLeft(_arg1:Number):void{  (_arg1, LEFT); } public function get scene():SceneObject3D{ return ( ); } public function get y():Number{ return (this.transform.n24); } public function set scale(_arg1:Number):void{ if (Papervision3D.usePERCENT){ _arg1 = (_arg1 / 100); }; this.  = (this. = (this. = _arg1)); this. = true; } public function render(_arg1:SceneObject3D):void{ var _local2:Array; var _local3:Sprite; var _local4:Number; var _local5:Face3DInstance; var _local6:Number; var _local7:int; _local2 = this._sorted; _local2.sortOn("screenZ", (Array.DESCENDING | Array.NUMERIC)); _local3 = ((this.container) || (_arg1.container)); _local4 = 0; _local6 = _local2.length; _local7 = 0; while (_local7 < _local6) { _local5 = _local2[_local7]; if (faceLevelMode){ if (!_local5.container){ _local5.container = new InteractiveSprite(this); _arg1.container.addChild(_local5.container); } else { _local5.container.graphics.clear(); }; if (_local5.visible){ _local4 = (_local4 + _local5.face.render(_local5.instance, _local5.container)); }; } else { if (_local5.visible){ _local4 = (_local4 + _local5.face.render(_local5.instance, _local3)); }; }; _local7++; }; _arg1.stats.rendered = (_arg1.stats.rendered + _local4); } public function get rotationY():Number{ if (this. ){  (); }; return ((Papervision3D.useDEGREES) ? (-(this. ) * toDEGREES) : -(this. )); } public function get rotationZ():Number{ if (this. ){  (); }; return ((Papervision3D.useDEGREES) ? (-(this. ) * toDEGREES) : -(this. )); } public function set scaleY(_arg1:Number):void{ if (Papervision3D.usePERCENT){ this. = (_arg1 / 100); } else { this. = _arg1; }; this. = true; } public function set scaleZ(_arg1:Number):void{ if (Papervision3D.usePERCENT){ this. = (_arg1 / 100); } else { this. = _arg1; }; this. = true; } public function get rotationX():Number{ if (this. ){  (); }; return ((Papervision3D.useDEGREES) ? (-(this.) * toDEGREES) : -(this.)); } public function set scaleX(_arg1:Number):void{ if (Papervision3D.usePERCENT){ this.  = (_arg1 / 100); } else { this.  = _arg1; }; this. = true; } protected function  ():void{ var _local1:Object; var _local2:Matrix3D; var _local3:Matrix3D; var _local4:Matrix3D; _local1 = Matrix3D.euler2quaternion(-(this. ), -(this. ), this.); _local2 = Matrix3D.quaternion2matrix(_local1.x, _local1.y, _local1.z, _local1.w); _local3 = this.transform; _local2.n14 = _local3.n14; _local2.n24 = _local3.n24; _local2.n34 = _local3.n34; _local3.copy(_local2); _local4 = Matrix3D.IDENTITY; _local4.n11 = this. ; _local4.n22 = this. ; _local4.n33 = this. ; this.transform.calculateMultiply(_local3, _local4); this. = false; } public function moveForward(_arg1:Number):void{  (_arg1, FORWARD); } public function  (_arg1):void{ var _local2:Matrix3D; var _local3:Matrix3D; _local2 = this.transform; _local3 = ((_arg1 is DisplayObject3D)) ? _arg1.transform : _arg1; _local2.n14 = _local3.n14; _local2.n24 = _local3.n24; _local2.n34 = _local3.n34; } public function  (_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = (this.x - _arg1); _local5 = (this.y - _arg2); _local6 = (this.z - _arg3); _local7 = (((_arg1 * _arg1) + (_arg2 * _arg2)) + (_arg3 * _arg3)); _local8 = (this.geometry) ? this.geometry.boundingSphere2 : 0; return ((_local8 > _local7)); } public function moveRight(_arg1:Number):void{  (_arg1, RIGHT); } public function moveBackward(_arg1:Number):void{  (_arg1, BACKWARD); } public function  ():String{ var _local1:String; var _local2:String; var _local3:DisplayObject3D; _local1 = ""; for (_local2 in this.materials) { _local1 = (_local1 + (_local2 + "\n")); }; for each (_local3 in this._childrenByName) { for (_local2 in _local3.materials.materialsByName) { _local1 = (_local1 + (("+ " + _local2) + "\n")); }; }; return (_local1); } public function set x(_arg1:Number):void{ this.transform.n14 = _arg1; } public function set y(_arg1:Number):void{ this.transform.n24 = _arg1; } public static function get ZERO():DisplayObject3D{ return (new (DisplayObject3D)); } } }//package org.papervision3d.objects
Section 61
//Plane (org.papervision3d.objects.Plane) package org.papervision3d.objects { import org.papervision3d.core.geom.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.*; public class Plane extends Mesh3D { public var :Number; public var :Number; public static var DEFAULT_SCALE:Number = 1; public static var DEFAULT_SEGMENTS:Number = 1; public static var DEFAULT_SIZE:Number = 500; public function Plane(_arg1:MaterialObject3D=null, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Object=null){ var _local7:Number; super(_arg1, new Array(), new Array(), null, _arg6); this. = ((_arg4) || (DEFAULT_SEGMENTS)); this. = ((_arg5) || (this.)); _local7 = DEFAULT_SCALE; if (!_arg3){ if (_arg2){ _local7 = _arg2; }; if (((_arg1) && (_arg1.bitmap))){ _arg2 = (_arg1.bitmap.width * _local7); _arg3 = (_arg1.bitmap.height * _local7); } else { _arg2 = (DEFAULT_SIZE * _local7); _arg3 = (DEFAULT_SIZE * _local7); }; }; (_arg2, _arg3); } private function (_arg1:Number, _arg2:Number):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Array; var _local8:Array; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:int; var _local14:NumberUV; var _local15:NumberUV; var _local16:NumberUV; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Vertex3D; var _local21:Vertex3D; var _local22:Vertex3D; _local3 = this.; _local4 = this.; _local5 = (_local3 + 1); _local6 = (_local4 + 1); _local7 = this.geometry.vertices; _local8 = this.geometry.faces; _local9 = (_arg1 / 2); _local10 = (_arg2 / 2); _local11 = (_arg1 / _local3); _local12 = (_arg2 / _local4); _local13 = 0; while (_local13 < (_local3 + 1)) { _local17 = 0; while (_local17 < _local6) { _local18 = ((_local13 * _local11) - _local9); _local19 = ((_local17 * _local12) - _local10); _local7.push(new Vertex3D(_local18, _local19, 0)); _local17++; }; _local13++; }; _local13 = 0; while (_local13 < _local3) { _local17 = 0; while (_local17 < _local4) { _local20 = _local7[((_local13 * _local6) + _local17)]; _local21 = _local7[((_local13 * _local6) + (_local17 + 1))]; _local22 = _local7[(((_local13 + 1) * _local6) + _local17)]; _local14 = new NumberUV((_local13 / _local3), (_local17 / _local4)); _local15 = new NumberUV((_local13 / _local3), ((_local17 + 1) / _local4)); _local16 = new NumberUV(((_local13 + 1) / _local3), (_local17 / _local4)); _local8.push(new Face3D([_local20, _local22, _local21], null, [_local14, _local16, _local15])); _local20 = _local7[(((_local13 + 1) * _local6) + (_local17 + 1))]; _local21 = _local7[(((_local13 + 1) * _local6) + _local17)]; _local22 = _local7[((_local13 * _local6) + (_local17 + 1))]; _local14 = new NumberUV(((_local13 + 1) / _local3), ((_local17 + 1) / _local4)); _local15 = new NumberUV(((_local13 + 1) / _local3), (_local17 / _local4)); _local16 = new NumberUV((_local13 / _local3), ((_local17 + 1) / _local4)); _local8.push(new Face3D([_local20, _local22, _local21], null, [_local14, _local16, _local15])); _local17++; }; _local13++; }; this.geometry.ready = true; } } }//package org.papervision3d.objects
Section 62
//InteractiveScene3D (org.papervision3d.scenes.InteractiveScene3D) package org.papervision3d.scenes { import flash.display.*; import org.papervision3d.core.proto.*; import org.papervision3d.utils.*; public class InteractiveScene3D extends MovieScene3D { public var interactiveSceneManager:InteractiveSceneManager; public function InteractiveScene3D(_arg1:Sprite){ super(_arg1); interactiveSceneManager = new InteractiveSceneManager(this); } override public function renderCamera(_arg1:CameraObject3D):void{ interactiveSceneManager.resetFaces(); super.renderCamera(_arg1); interactiveSceneManager.sortObjects(); } } }//package org.papervision3d.scenes
Section 63
//MovieScene3D (org.papervision3d.scenes.MovieScene3D) package org.papervision3d.scenes { import flash.display.*; import org.papervision3d.objects.*; import org.papervision3d.core.proto.*; import flash.utils.*; public class MovieScene3D extends Scene3D { private var :Dictionary; private var :Array; public function MovieScene3D(_arg1:Sprite){ super(_arg1); this. = new Array();  = new Dictionary(); } override public function addChild(_arg1:DisplayObject3D, _arg2:String=null):DisplayObject3D{ _arg1 = super.addChild(_arg1, _arg2); _arg1.container = new Sprite(); container.addChild(_arg1.container); this..push(_arg1.container); [_arg1] = _arg1.container; return (_arg1); } public function (_arg1:DisplayObject3D):Sprite{ return ([_arg1]); } override protected function renderObjects(_arg1:Boolean):void{ var _local2:Number; var _local3:Sprite; var _local4:Array; var _local5:Number; var _local6:DisplayObject3D; var _local7:Array; var _local8:Object; _local2 = this.objects.length; _local4 = this.; _local5 = 0; while ((_local3 = _local4[_local5++])) { _local3.graphics.clear(); }; _local7 = this.objects; _local5 = _local7.length; if (_arg1){ while ((_local6 = _local7[--_local5])) { if (_local6.visible){ container.addChild(_local6.container); _local6.render(this); }; }; } else { while ((_local6 = _local7[--_local5])) { if (_local6.visible){ _local6.render(this); }; }; }; _local8 = this.stats; _local8.performance = (getTimer() - _local8.performance); } override public function removeChild(_arg1:DisplayObject3D):DisplayObject3D{ var _local2:DisplayObject3D; var _local3:int; _local2 = super.removeChild(_arg1); _local3 = 0; while (_local3 < .length) { if (_local2.container == [_local3]){ this..splice(_local3, 1); }; _local3++; }; container.removeChild(_local2.container); delete [_local2]; return (_local2); } } }//package org.papervision3d.scenes
Section 64
//Scene3D (org.papervision3d.scenes.Scene3D) package org.papervision3d.scenes { import flash.display.*; import org.papervision3d.objects.*; import org.papervision3d.core.proto.*; import flash.utils.*; public class Scene3D extends SceneObject3D { public function Scene3D(_arg1:Sprite){ super(_arg1); } override protected function renderObjects(_arg1:Boolean):void{ var _local2:DisplayObject3D; var _local3:Array; var _local4:Number; var _local5:Object; this.container.graphics.clear(); _local3 = this.objects; _local4 = _local3.length; while ((_local2 = _local3[--_local4])) { if (_local2.visible){ _local2.render(this); }; }; _local5 = this.stats; _local5.performance = (getTimer() - _local5.performance); } } }//package org.papervision3d.scenes
Section 65
//IVirtualMouseEvent (org.papervision3d.utils.virtualmouse.IVirtualMouseEvent) package org.papervision3d.utils.virtualmouse { public interface IVirtualMouseEvent { } }//package org.papervision3d.utils.virtualmouse
Section 66
//VirtualMouse (org.papervision3d.utils.virtualmouse.VirtualMouse) package org.papervision3d.utils.virtualmouse { import flash.display.*; import flash.events.*; import com.blitzagency.xray.logger.*; import flash.geom.*; import flash.utils.*; public class VirtualMouse extends EventDispatcher { private var _container:Sprite; private var  :DisplayObject; private var target:InteractiveObject; private var :Boolean;// = false private var :Class; private var :Event; private var  :Class; private var  :Point; private var  :int;// = 0 private var :Object; private var log:XrayLog; private var :Dictionary; private var :Boolean;// = false private var  :Boolean;// = true private var  :Point; private var  :Boolean;// = false private var  :Boolean;// = false private var altKey:Boolean;// = false private var :Boolean;// = false private var ctrlKey:Boolean;// = false private var shiftKey:Boolean;// = false private var :Stage; public static const UPDATE:String = "update"; private static var _mouseIsDown:Boolean = false; public function VirtualMouse(_arg1:Stage=null, _arg2:Sprite=null, _arg3:Number=0, _arg4:Number=0){ altKey = false; ctrlKey = false; shiftKey = false;  = 0;  = false;  = false;  = new Object();  = new Dictionary(true);  = false;  = false;  = true;  = false;  = VirtualMouseEvent;  = VirtualMouseMouseEvent; log = new XrayLog(); super(); this.stage = _arg1; this.container = _arg2;  = new Point(_arg3, _arg4);  =  .clone(); addEventListener(UPDATE, ); update(); } public function get mouseIsDown():Boolean{ return (_mouseIsDown); } public function get stage():Stage{ return (); } public function exitContainer():void{ var _local1:Point; _local1 = target.globalToLocal( ); if (![MouseEvent.MOUSE_OUT]){  = new  (MouseEvent.MOUSE_OUT, true, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown,  ); container.dispatchEvent(); dispatchEvent(); }; if (![MouseEvent.ROLL_OUT]){  = new  (MouseEvent.ROLL_OUT, false, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown,  ); container.dispatchEvent(); dispatchEvent(); }; if (target != container){ if (![MouseEvent.MOUSE_OUT]){  = new  (MouseEvent.MOUSE_OUT, true, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown,  ); target.dispatchEvent(); dispatchEvent(); }; if (![MouseEvent.ROLL_OUT]){  = new  (MouseEvent.ROLL_OUT, false, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown,  ); target.dispatchEvent(); dispatchEvent(); }; }; target = ; } public function release():void{  = true; _mouseIsDown = false; if (!){ update(); }; } public function click():void{ press(); release(); } public function get container():Sprite{ return (_container); } public function set container(_arg1:Sprite):void{ _container = _arg1; } public function get y():Number{ return ( .y); } public function set x(_arg1:Number):void{  .x = _arg1; if (!){ update(); }; } public function (_arg1:String):void{ [_arg1] = true; } public function get lastEvent():Event{ return (); } private function (_arg1:Event):void{ var _local2:Array; var _local3:InteractiveObject; var _local4:DisplayObject; var _local5:int; var _local6:Point; var _local7:Point; var _local8:Boolean; if (!container){ return; }; _local2 = container.getObjectsUnderPoint( ); _local5 = _local2.length; while (_local5--) { _local4 = _local2[_local5]; while (_local4) { if ([_local4]){ _local3 = null; break; }; if (((_local3) && ((_local4 is SimpleButton)))){ _local3 = null; } else { if (((_local3) && (!(DisplayObjectContainer(_local4).mouseChildren)))){ _local3 = null; }; }; if (((((!(_local3)) && ((_local4 is InteractiveObject)))) && (InteractiveObject(_local4).mouseEnabled))){ _local3 = InteractiveObject(_local4); }; _local4 = _local4.parent; }; if (_local3){ break; }; }; if (!_local3){ _local3 = ; log.debug("no new target found, using stage"); }; _local6 = target.globalToLocal( ); _local7 = _local3.globalToLocal( ); if (((!(( .x ==  .x))) || (!(( .y ==  .y))))){ _local8 = false; if (stage){ _local8 = ((((((( .x >= 0)) && (( .y >= 0)))) && (( .x <= stage.stageWidth)))) && (( .y <= stage.stageHeight))); }; if (((((!(_local8)) && ( ))) && (!([Event.MOUSE_LEAVE])))){  = new (Event.MOUSE_LEAVE, false, false); stage.dispatchEvent(); dispatchEvent(); }; if (((_local8) && (!([MouseEvent.MOUSE_MOVE])))){  = new  (MouseEvent.MOUSE_MOVE, true, false, _local7.x, _local7.y, _local3, ctrlKey, altKey, shiftKey, _mouseIsDown,  ); _local3.dispatchEvent(); dispatchEvent(); };  = _local8; }; if (_local3 != target){ if (![MouseEvent.MOUSE_OUT]){  = new  (MouseEvent.MOUSE_OUT, true, false, _local6.x, _local6.y, _local3, ctrlKey, altKey, shiftKey, _mouseIsDown,  ); target.dispatchEvent(); dispatchEvent(); }; if (![MouseEvent.ROLL_OUT]){  = new  (MouseEvent.ROLL_OUT, false, false, _local6.x, _local6.y, _local3, ctrlKey, altKey, shiftKey, _mouseIsDown,  ); target.dispatchEvent(); dispatchEvent(); }; if (![MouseEvent.MOUSE_OVER]){  = new  (MouseEvent.MOUSE_OVER, true, false, _local7.x, _local7.y, target, ctrlKey, altKey, shiftKey, _mouseIsDown,  ); _local3.dispatchEvent(); dispatchEvent(); }; if (![MouseEvent.ROLL_OVER]){  = new  (MouseEvent.ROLL_OVER, false, false, _local7.x, _local7.y, target, ctrlKey, altKey, shiftKey, _mouseIsDown,  ); _local3.dispatchEvent(); dispatchEvent(); }; }; if (){ if (_mouseIsDown){ if (![MouseEvent.MOUSE_DOWN]){  = new  (MouseEvent.MOUSE_DOWN, true, false, _local7.x, _local7.y, _local3, ctrlKey, altKey, shiftKey, _mouseIsDown,  ); _local3.dispatchEvent(); dispatchEvent(); };  = _local3;  = false; } else { if (![MouseEvent.MOUSE_UP]){  = new  (MouseEvent.MOUSE_UP, true, false, _local7.x, _local7.y, _local3, ctrlKey, altKey, shiftKey, _mouseIsDown,  ); _local3.dispatchEvent(); dispatchEvent(); }; if (((!([MouseEvent.CLICK])) && ((_local3 ==  )))){  = new  (MouseEvent.CLICK, true, false, _local7.x, _local7.y, _local3, ctrlKey, altKey, shiftKey, _mouseIsDown,  ); _local3.dispatchEvent(); dispatchEvent(); };  = null;  = false; }; }; if ((((( ) && (!([MouseEvent.DOUBLE_CLICK])))) && (_local3.doubleClickEnabled))){  = new  (MouseEvent.DOUBLE_CLICK, true, false, _local7.x, _local7.y, _local3, ctrlKey, altKey, shiftKey, _mouseIsDown,  ); _local3.dispatchEvent(); dispatchEvent(); };  =  .clone();  = _mouseIsDown; target = _local3; } public function ():Point{ return ( .clone()); } public function get x():Number{ return ( .x); } public function lock():void{  = true; } public function get useNativeEvents():Boolean{ return (); } public function setLocation(_arg1, _arg2=null):void{ var _local3:Point; if ((_arg1 is Point)){ _local3 = Point(_arg1);  .x = _local3.x;  .y = _local3.y; } else {  .x = Number(_arg1);  .y = Number(_arg2); }; if (!){ update(); }; } private function (_arg1:KeyboardEvent):void{ altKey = _arg1.altKey; ctrlKey = _arg1.ctrlKey; shiftKey = _arg1.shiftKey; } public function (_arg1:DisplayObject):void{ if ((_arg1 in )){ delete [_arg1]; }; } public function ():void{ if (){ release(); } else { click(); press();  = true; release();  = false; }; } public function update():void{ dispatchEvent(new Event(UPDATE, false, false)); } public function ignore(_arg1:DisplayObject):void{ [_arg1] = true; } public function ():void{  = false; update(); } public function (_arg1:String):void{ if ((_arg1 in )){ delete [_arg1]; }; } public function press():void{  = true; _mouseIsDown = true; if (!){ update(); }; } public function set useNativeEvents(_arg1:Boolean):void{ if (_arg1 == ){ return; };  = _arg1; if (){  = VirtualMouseEvent;  = VirtualMouseMouseEvent; } else {  = Event;  = MouseEvent; }; } public function set y(_arg1:Number):void{  .y = _arg1; if (!){ update(); }; } public function set stage(_arg1:Stage):void{ var _local2:Boolean; if (){ _local2 = true; .removeEventListener(KeyboardEvent.KEY_DOWN, ); .removeEventListener(KeyboardEvent.KEY_UP, ); } else { _local2 = false; };  = _arg1; if (){ .addEventListener(KeyboardEvent.KEY_DOWN, ); .addEventListener(KeyboardEvent.KEY_UP, ); target = ; if (!_local2){ update(); }; }; } } }//package org.papervision3d.utils.virtualmouse
Section 67
//VirtualMouseEvent (org.papervision3d.utils.virtualmouse.VirtualMouseEvent) package org.papervision3d.utils.virtualmouse { import flash.events.*; public class VirtualMouseEvent extends Event implements IVirtualMouseEvent { public function VirtualMouseEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } } }//package org.papervision3d.utils.virtualmouse
Section 68
//VirtualMouseMouseEvent (org.papervision3d.utils.virtualmouse.VirtualMouseMouseEvent) package org.papervision3d.utils.virtualmouse { import flash.display.*; import flash.events.*; public class VirtualMouseMouseEvent extends MouseEvent implements IVirtualMouseEvent { public function VirtualMouseMouseEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:Number=NaN, _arg5:Number=NaN, _arg6:InteractiveObject=null, _arg7:Boolean=false, _arg8:Boolean=false, _arg9:Boolean=false, _arg10:Boolean=false, _arg11:int=0){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, _arg11); } } }//package org.papervision3d.utils.virtualmouse
Section 69
//InteractiveContainerData (org.papervision3d.utils.InteractiveContainerData) package org.papervision3d.utils { import flash.events.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; public class InteractiveContainerData extends EventDispatcher { public var container:InteractiveSprite; public var displayObject3D:DisplayObject3D;// = null public var lineColor:Number; public var lineAlpha:Number; public var fillAlpha:Number; public var sort:Boolean;// = false public var isDrawn:Boolean;// = false public var color:Number; public var lineSize:Number; public var face3d:Face3D; public function InteractiveContainerData(_arg1, _arg2:Number=0, _arg3:IEventDispatcher=null){ displayObject3D = null; isDrawn = false; sort = false; color = InteractiveSceneManager.DEFAULT_FILL_COLOR; fillAlpha = InteractiveSceneManager.DEFAULT_FILL_ALPHA; lineColor = InteractiveSceneManager.DEFAULT_LINE_COLOR; lineSize = InteractiveSceneManager.DEFAULT_LINE_SIZE; lineAlpha = InteractiveSceneManager.DEFAULT_LINE_ALPHA; super(_arg3); displayObject3D = (((_arg1 is DisplayObject3D) == true)) ? _arg1 : null; face3d = (((_arg1 is Face3D) == true)) ? _arg1 : null; if (displayObject3D != null){ this.container = new InteractiveSprite(_arg1); }; if (face3d != null){ if (face3d.face3DInstance.container != null){ this.container = InteractiveSprite(face3d.face3DInstance.container); } else { this.container = new InteractiveSprite(); }; }; color = _arg2; container.alpha = InteractiveSceneManager.DEFAULT_SPRITE_ALPHA; container.interactiveContainerData = this; } public function get screenZ():Number{ return (((displayObject3D)!=null) ? displayObject3D.screenZ : face3d.screenZ); } } }//package org.papervision3d.utils
Section 70
//InteractiveSceneManager (org.papervision3d.utils.InteractiveSceneManager) package org.papervision3d.utils { import flash.display.*; import flash.events.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; import org.papervision3d.core.proto.*; import org.papervision3d.materials.*; import com.blitzagency.xray.logger.*; import flash.geom.*; import flash.utils.*; import org.papervision3d.utils.virtualmouse.*; import org.papervision3d.events.*; public class InteractiveSceneManager extends EventDispatcher { public var container:Sprite; public var scene:SceneObject3D; protected var :Boolean;// = true protected var log:XrayLog; private var  :Boolean;// = false public var :Dictionary; public var :Mouse3D; public var :VirtualMouse; public var faceLevelMode:Boolean;// = false public var debug:Boolean;// = false protected var :Boolean;// = false public var buttonMode:Boolean;// = false public var  :Dictionary; public static var DEFAULT_FILL_ALPHA:Number = 1; public static var DEFAULT_SPRITE_ALPHA:Number = 1; public static var DEFAULT_FILL_COLOR:Number = 0xFFFFFF; public static var DEFAULT_LINE_SIZE:Number = 1; public static var DEFAULT_LINE_ALPHA:Number = 1; public static var DEFAULT_LINE_COLOR:Number = -1; public static var MOUSE_IS_DOWN:Boolean = false; public static var SHOW_DRAWN_FACES:Boolean = false; public function InteractiveSceneManager(_arg1:SceneObject3D):void{ buttonMode = false; faceLevelMode = false;  = false;  = new Dictionary();  = new Dictionary(); container = new InteractiveSprite();  = new Mouse3D();  = new VirtualMouse(); debug = false;  = true;  = false; log = new XrayLog(); super(); container.addEventListener(Event.ADDED_TO_STAGE,  ); scene = _arg1; scene.container.parent.addChild(container); container.x = scene.container.x; container.y = scene.container.y; enableMouse = false; } protected function (_arg1:MouseEvent):void{  = true; } public function sortObjects():void{ var _local1:Array; var _local2:InteractiveContainerData; var _local3:uint; var _local4:Number; _local1 = []; for each (_local2 in ) { if (!_local2.sort){ } else { _local4 = ((_local2.face3d == null)) ? _local2.screenZ : _local2.face3d.face3DInstance.screenZ; _local1.push({container:_local2.container, distance:_local4}); }; }; _local1.sortOn("distance", (Array.DESCENDING | Array.NUMERIC)); _local3 = 0; while (_local3 < _local1.length) { container.addChild(_local1[_local3].container); _local3++; }; if (mouseInteractionMode){  = false; }; } public function ():void{ SHOW_DRAWN_FACES = false; DEFAULT_SPRITE_ALPHA = 1; DEFAULT_FILL_ALPHA = 1; BitmapMaterial.AUTO_MIP_MAPPING = false; DisplayObject3D.faceLevelMode = false; buttonMode = true; faceLevelMode = true; mouseInteractionMode = false; } public function (_arg1:Object):void{ var _local2:InteractiveContainerData; var _local3:InteractiveSprite; if ([_arg1] == null){ _local2 = ([_arg1] = new InteractiveContainerData(_arg1));  [_local2.container] = _arg1; _local3 = _local2.container; _local3.addEventListener(MouseEvent.MOUSE_DOWN, ); _local3.addEventListener(MouseEvent.MOUSE_UP,  ); _local3.addEventListener(MouseEvent.CLICK, ); _local3.addEventListener(MouseEvent.MOUSE_OVER, ); _local3.addEventListener(MouseEvent.MOUSE_OUT, ); _local3.addEventListener(MouseEvent.MOUSE_MOVE,  ); _local3.buttonMode = buttonMode; if (((!(SHOW_DRAWN_FACES)) && (!(DisplayObject3D.faceLevelMode)))){ _local3.blendMode = BlendMode.ERASE; }; .ignore(_local3); dispatchEvent(new InteractiveScene3DEvent(InteractiveScene3DEvent.OBJECT_ADDED, null, _local3)); if (debug){ log.debug("addDisplayObject id", _arg1.id, _arg1.name, DEFAULT_SPRITE_ALPHA); }; }; } public function resetFaces():void{ var _local1:InteractiveContainerData; for each (_local1 in ) { _local1.container.graphics.clear(); _local1.sort = _local1.isDrawn; _local1.isDrawn = false; }; (); } public function ():void{ container.x = scene.container.x; container.y = scene.container.y; } protected function (_arg1:MouseEvent):void{  (InteractiveScene3DEvent.OBJECT_CLICK, Sprite(_arg1.currentTarget)); } protected function (_arg1:MouseEvent):void{ var face3d:Face3D; var p:Object; var mat:InteractiveMovieMaterial; var rect:Rectangle; var contains:Boolean; var e = _arg1; if (((VirtualMouse) && (((faceLevelMode) || (DisplayObject3D.faceLevelMode))))){ try { face3d =  [e.currentTarget]; p = InteractiveUtils.getMapCoordAtPoint(face3d, container.mouseX, container.mouseY); mat = InteractiveMovieMaterial(face3d.face3DInstance.instance.material); rect = new Rectangle(0, 0, mat.movie.width, mat.movie.height); contains = rect.contains(p.x, p.y); if (!contains){ .exitContainer(); }; } catch(err:Error) { log.error("material type is not Interactive. If you're using a Collada object, you may have to reassign the material to the object after the collada scene is loaded", err.message); }; };  (InteractiveScene3DEvent.OBJECT_OUT, Sprite(e.currentTarget)); } public function drawFace(_arg1:DisplayObject3D, _arg2:Face3D, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number):void{ var _local9:Object; var _local10:InteractiveContainerData; var _local11:InteractiveSprite; var _local12:Graphics; _local9 = _arg1; if (((faceLevelMode) || (DisplayObject3D.faceLevelMode))){ _local9 = _arg2; }; if ([_local9] == null){ (_local9); }; if ((() && (!(DisplayObject3D.faceLevelMode)))){ _local10 = [_local9]; _local11 = _local10.container; _local12 = _local11.graphics; _local11.x0 = _arg3; _local11.x1 = _arg4; _local11.x2 = _arg5; _local11.y0 = _arg6; _local11.y1 = _arg7; _local11.y2 = _arg8; _local12.beginFill(_local10.color, _local10.fillAlpha); if (((!((_local10.lineColor == -1))) && (SHOW_DRAWN_FACES))){ _local12.lineStyle(_local10.lineSize, _local10.lineColor, _local10.lineAlpha); }; _local12.moveTo(_arg3, _arg6); _local12.lineTo(_arg4, _arg7); _local12.lineTo(_arg5, _arg8); _local12.endFill(); _local10.isDrawn = true; }; } public function set enableMouse(_arg1:Boolean):void{ Mouse3D.enabled = _arg1; } protected function  (_arg1:String, _arg2:Sprite):void{ var _local3:Face3D; var _local4:InteractiveContainerData; if (debug){ log.debug(_arg1, DisplayObject3D( [_arg2]).name); }; if (( [_arg2] is DisplayObject3D)){  [_arg2].dispatchEvent(new InteractiveScene3DEvent(_arg1,  [_arg2], InteractiveSprite(_arg2))); dispatchEvent(new InteractiveScene3DEvent(_arg1,  [_arg2], InteractiveSprite(_arg2), null, null)); } else { if (( [_arg2] is Face3D)){ _local3 =  [_arg2]; _local4 = [_local3]; dispatchEvent(new InteractiveScene3DEvent(_arg1, null, InteractiveSprite(_arg2), _local3, _local4)); }; }; } protected function  (_arg1:MouseEvent):void{ var point:Object; var face3d:Face3D; var mat:MovieMaterial; var e = _arg1; if (((VirtualMouse) && (((faceLevelMode) || (DisplayObject3D.faceLevelMode))))){ face3d =  [e.currentTarget]; point = InteractiveUtils.getMapCoordAtPoint(face3d, container.mouseX, container.mouseY); try { mat = (face3d.face3DInstance.instance.material as MovieMaterial); .container = (mat.movie as Sprite); if (.container){ .setLocation(point.x, point.y); }; } catch(err:Error) { log.error("material type is not Inter active. If you're using a Collada object, you may have to reassign the material to the object after the collada scene is loaded", err.message); }; };  (InteractiveScene3DEvent.OBJECT_MOVE, Sprite(e.currentTarget)); if (((Mouse3D.enabled) && (((faceLevelMode) || (DisplayObject3D.faceLevelMode))))){ .updatePosition(Face3D( [e.currentTarget]), (e.currentTarget as Sprite)); }; } protected function (_arg1:MouseEvent):void{ var _local2:String; _local2 = (((!()) || (!(mouseInteractionMode)))) ? InteractiveScene3DEvent.OBJECT_OVER : InteractiveScene3DEvent.OBJECT_CLICK;  = false; if ((() && ((_local2 == InteractiveScene3DEvent.OBJECT_CLICK)))){ .click(); };  (_local2, Sprite(_arg1.currentTarget)); } public function set mouseInteractionMode(_arg1:Boolean):void{  = _arg1;  = !(_arg1); if (_arg1){ container.stage.addEventListener(MouseEvent.MOUSE_MOVE, ); }; if (!_arg1){ container.stage.removeEventListener(MouseEvent.MOUSE_MOVE, ); }; } public function get enableMouse():Boolean{ return (Mouse3D.enabled); } protected function (_arg1:MouseEvent):void{ MOUSE_IS_DOWN = true; if (){ .press(); };  (InteractiveScene3DEvent.OBJECT_PRESS, Sprite(_arg1.currentTarget)); } protected function (_arg1:MouseEvent):void{ if (debug){ log.debug("releaseOutside"); }; dispatchEvent(new InteractiveScene3DEvent(InteractiveScene3DEvent.OBJECT_RELEASE_OUTSIDE)); MOUSE_IS_DOWN = false;  = true;  = true; } public function get mouseInteractionMode():Boolean{ return ( ); } protected function  (_arg1:Event):void{ container.stage.addEventListener(Event.RESIZE,  ); container.stage.addEventListener(MouseEvent.MOUSE_UP, ); .stage = container.stage; } protected function  (_arg1:MouseEvent):void{ MOUSE_IS_DOWN = false; if (){ .release(); };  (InteractiveScene3DEvent.OBJECT_RELEASE, Sprite(_arg1.currentTarget)); } protected function  (_arg1:Event):void{ (); } } }//package org.papervision3d.utils
Section 71
//InteractiveSprite (org.papervision3d.utils.InteractiveSprite) package org.papervision3d.utils { import flash.display.*; import org.papervision3d.objects.*; public class InteractiveSprite extends Sprite { public var interactiveContainerData:InteractiveContainerData;// = null public var x1:Number; public var x2:Number; public var x0:Number; public var y0:Number; public var y2:Number; public var obj:DisplayObject3D;// = null public var y1:Number; public function InteractiveSprite(_arg1:DisplayObject3D=null):void{ obj = null; interactiveContainerData = null; super(); this.obj = _arg1; } } }//package org.papervision3d.utils
Section 72
//InteractiveUtils (org.papervision3d.utils.InteractiveUtils) package org.papervision3d.utils { import flash.display.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; import org.papervision3d.core.proto.*; import org.papervision3d.materials.*; public class InteractiveUtils { public static function getMapCoordAtPointDO3D(_arg1:DisplayObject3D, _arg2:Number, _arg3:Number):Object{ var _local4:Face3D; _local4 = _arg1.geometry.faces[0]; return (getMapCoordAtPoint(_local4, _arg2, _arg3)); } public static function UVatPoint(_arg1:Face3D, _arg2:Number, _arg3:Number):Object{ var _local4:Vertex3D; var _local5:Vertex3D; var _local6:Vertex3D; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local4 = _arg1.v0; _local5 = _arg1.v1; _local6 = _arg1.v2; _local7 = _local4.vertex2DInstance.x; _local8 = _local4.vertex2DInstance.y; _local9 = _local5.vertex2DInstance.x; _local10 = _local5.vertex2DInstance.y; _local11 = _local6.vertex2DInstance.x; _local12 = _local6.vertex2DInstance.y; _local13 = (_local11 - _local7); _local14 = (_local12 - _local8); _local15 = (_local9 - _local7); _local16 = (_local10 - _local8); _local17 = (_arg2 - _local7); _local18 = (_arg3 - _local8); _local19 = ((_local13 * _local13) + (_local14 * _local14)); _local20 = ((_local13 * _local15) + (_local14 * _local16)); _local21 = ((_local13 * _local17) + (_local14 * _local18)); _local22 = ((_local15 * _local15) + (_local16 * _local16)); _local23 = ((_local15 * _local17) + (_local16 * _local18)); _local24 = (1 / ((_local19 * _local22) - (_local20 * _local20))); _local25 = (((_local22 * _local21) - (_local20 * _local23)) * _local24); _local26 = (((_local19 * _local23) - (_local20 * _local21)) * _local24); return ({u:_local25, v:_local26}); } public static function getMapCoordAtPoint(_arg1:Face3D, _arg2:Number, _arg3:Number):Object{ var _local4:Array; var _local5:Object; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:MaterialObject3D; var _local17:BitmapData; var _local18:Number; var _local19:Number; _local4 = _arg1.uv; _local5 = UVatPoint(_arg1, _arg2, _arg3); _local6 = _local5.u; _local7 = _local5.v; _local8 = _local4[0].u; _local9 = _local4[1].u; _local10 = _local4[2].u; _local11 = _local4[0].v; _local12 = _local4[1].v; _local13 = _local4[2].v; _local14 = ((((_local9 - _local8) * _local7) + ((_local10 - _local8) * _local6)) + _local8); _local15 = ((((_local12 - _local11) * _local7) + ((_local13 - _local11) * _local6)) + _local11); _local16 = _arg1.face3DInstance.instance.material; _local17 = _local16.bitmap; _local18 = 1; _local19 = 1; if (_local17){ _local18 = (BitmapMaterial.AUTO_MIP_MAPPING) ? _local16.widthOffset : _local17.width; _local19 = (BitmapMaterial.AUTO_MIP_MAPPING) ? _local16.heightOffset : _local17.height; }; return ({x:(_local14 * _local18), y:(_local19 - (_local15 * _local19))}); } public static function getCoordAtPoint(_arg1:Face3D, _arg2:Number, _arg3:Number):Vertex3D{ var _local4:Object; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; _local4 = UVatPoint(_arg1, _arg2, _arg3); _local5 = _arg1.v0.x; _local6 = _arg1.v0.y; _local7 = _arg1.v0.z; _local8 = _arg1.v1.x; _local9 = _arg1.v1.y; _local10 = _arg1.v1.z; _local11 = _arg1.v2.x; _local12 = _arg1.v2.y; _local13 = _arg1.v2.z; _local14 = _local4.u; _local15 = _local4.v; _local16 = ((_local5 + ((_local8 - _local5) * _local15)) + ((_local11 - _local5) * _local14)); _local17 = ((_local6 + ((_local9 - _local6) * _local15)) + ((_local12 - _local6) * _local14)); _local18 = ((_local7 + ((_local10 - _local7) * _local15)) + ((_local13 - _local7) * _local14)); return (new Vertex3D(_local16, _local17, _local18)); } } }//package org.papervision3d.utils
Section 73
//Mouse3D (org.papervision3d.utils.Mouse3D) package org.papervision3d.utils { import flash.display.*; import org.papervision3d.objects.*; import org.papervision3d.core.geom.*; import org.papervision3d.core.*; public class Mouse3D extends DisplayObject3D { public static var enabled:Boolean = true; private static var UP:Number3D = new Number3D(0, 1, 0); public function Mouse3D(_arg1:Object=null):void{ } public function updatePosition(_arg1:Face3D, _arg2:Sprite):void{ var _local3:Number3D; var _local4:Number3D; var _local5:Number3D; var _local6:Matrix3D; var _local7:Matrix3D; var _local8:Number; var _local9:Number; var _local10:Number3D; var _local11:Number3D; var _local12:Matrix3D; _local3 = new Number3D(0, 0, 0); _local4 = new Number3D(_arg1.faceNormal.x, _arg1.faceNormal.y, _arg1.faceNormal.z); _local5 = Number3D.sub(_local4, _local3); _local5.normalize(); if (_local5.modulo > 0.1){ _local10 = Number3D.cross(_local5, UP); _local10.normalize(); _local11 = Number3D.cross(_local5, _local10); _local11.normalize(); _local12 = this.transform; _local12.n11 = _local10.x; _local12.n21 = _local10.y; _local12.n31 = _local10.z; _local12.n12 = -(_local11.x); _local12.n22 = -(_local11.y); _local12.n32 = -(_local11.z); _local12.n13 = _local5.x; _local12.n23 = _local5.y; _local12.n33 = _local5.z; }; _local6 = Matrix3D.IDENTITY; this.transform = Matrix3D.multiply(_arg1.face3DInstance.instance.world, _local12); _local7 = Matrix3D.IDENTITY; _local8 = _arg2.mouseX; _local9 = _arg2.mouseY; _local7.n14 = InteractiveUtils.getCoordAtPoint(_arg1, _local8, _local9).x; _local7.n24 = InteractiveUtils.getCoordAtPoint(_arg1, _local8, _local9).y; _local7.n34 = InteractiveUtils.getCoordAtPoint(_arg1, _local8, _local9).z; _local6.calculateMultiply(_arg1.face3DInstance.instance.world, _local7); x = _local6.n14; y = _local6.n24; z = _local6.n34; } } }//package org.papervision3d.utils
Section 74
//Papervision3D (org.papervision3d.Papervision3D) package org.papervision3d { public class Papervision3D { public static var useDEGREES:Boolean = true; public static var VERBOSE:Boolean = true; public static var AUTHOR:String = "(c) 2006-2007 Copyright by Carlos Ulloa | papervision3d.org | carlos@papervision3d.org"; public static var DATE:String = "20.08.07"; public static var NAME:String = "Papervision3D"; public static var VERSION:String = "Beta 1.7"; public static var usePERCENT:Boolean = false; public static function log(_arg1:String):void{ if (Papervision3D.VERBOSE){ trace(_arg1); }; } } }//package org.papervision3d
Section 75
//assetBall (assetBall) package { import flash.display.*; public dynamic class assetBall extends MovieClip { } }//package
Section 76
//assetEnemy (assetEnemy) package { import flash.display.*; public dynamic class assetEnemy extends MovieClip { public function assetEnemy(){ addFrameScript(59, frame60, 69, frame70); } function frame70(){ gotoAndPlay(1); } function frame60(){ gotoAndPlay(1); } } }//package
Section 77
//assetFader (assetFader) package { import flash.display.*; public dynamic class assetFader extends MovieClip { } }//package
Section 78
//assetLevelCompleteBar (assetLevelCompleteBar) package { import flash.display.*; public dynamic class assetLevelCompleteBar extends MovieClip { public function assetLevelCompleteBar(){ addFrameScript(7, ); } function (){ stop(); } } }//package
Section 79
//assetPaddle (assetPaddle) package { import flash.display.*; public dynamic class assetPaddle extends MovieClip { public function assetPaddle(){ addFrameScript(59, frame60, 69, frame70); } function frame70(){ gotoAndPlay(1); } function frame60(){ gotoAndPlay(1); } } }//package
Section 80
//assetReport (assetReport) package { import flash.display.*; public dynamic class assetReport extends MovieClip { public var arrow:MovieClip; } }//package
Section 81
//assetRoundStart (assetRoundStart) package { import flash.display.*; public dynamic class assetRoundStart extends MovieClip { public function assetRoundStart(){ addFrameScript(39, ); } function (){ stop(); } } }//package
Section 82
//assetShowLevels (assetShowLevels) package { import flash.display.*; public dynamic class assetShowLevels extends MovieClip { public function assetShowLevels(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 83
//assetStats (assetStats) package { import flash.display.*; import flash.text.*; public dynamic class assetStats extends MovieClip { public var points:TextField; public var upgrade:TextField; public var time:TextField; } }//package
Section 84
//assetTally (assetTally) package { import flash.display.*; public dynamic class assetTally extends MovieClip { public function assetTally(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 85
//assetTotalTime (assetTotalTime) package { import flash.display.*; import flash.text.*; public dynamic class assetTotalTime extends MovieClip { public var time:TextField; } }//package
Section 86
//levelCompleteStats (levelCompleteStats) package { import flash.display.*; import flash.text.*; public dynamic class levelCompleteStats extends MovieClip { public var tTargetHits:TextField; public var tUpgradePoints:TextField; public var tMisses:TextField; public var tBallVelocity:TextField; public var tFastestCurve:TextField; } }//package
Section 87
//Menu (Menu) package { import flash.display.*; public dynamic class Menu extends MovieClip { public var btnPlayGame:SimpleButton; public var btnMore:SimpleButton; public var btnTutorial:SimpleButton; } }//package
Section 88
//MochiAd (MochiAd) package { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class MochiAd { public static function getVersion():String{ return ("2.5"); } public static function showClickAwayAd(_arg1:Object):void{ var DEFAULTS:Object; var clip:Object; var ad_timeout:Number; var mc:MovieClip; var wh:Array; var w:Number; var h:Number; var chk:MovieClip; var sendHostProgress:Boolean; var options = _arg1; DEFAULTS = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{ }, ad_finished:function ():void{ }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; ad_timeout = options.ad_timeout; delete options.ad_timeout; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; wh = MochiAd._getRes(options, clip); w = wh[0]; h = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; sendHostProgress = false; mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; chk["onEnterFrame"] = function ():void{ var _local1:Object; var _local2:Number; var _local3:Boolean; var _local4:Number; if (!this.parent){ delete this.onEnterFrame; return; }; _local1 = this.parent._mochiad_ctr; _local2 = (getTimer() - this.started); _local3 = false; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; _local3 = true; chk.started = getTimer(); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (this.root == null){ _local3 = true; }; if (_local3){ delete this.onEnterFrame; }; }; doOnEnterFrame(chk); } public static function _isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function _allowDomains(_arg1:String):String{ var _local2:String; _local2 = _arg1.split("/")[2].split(":")[0]; Security.allowDomain("*"); Security.allowDomain(_local2); Security.allowInsecureDomain("*"); Security.allowInsecureDomain(_local2); return (_local2); } public static function unload(_arg1:Object):Boolean{ if (((_arg1.clip) && (_arg1.clip._mochiad))){ _arg1 = _arg1.clip; }; if (_arg1.origFrameRate != undefined){ _arg1.stage.frameRate = _arg1.origFrameRate; }; if (!_arg1._mochiad){ return (false); }; if (_arg1._mochiad._containerLCName != undefined){ _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "notify", {id:"unload"}); }; if (_arg1._mochiad.onUnload){ _arg1._mochiad.onUnload(); }; delete _arg1._mochiad_loaded; delete _arg1._mochiad; return (true); } public static function showInterLevelAd(_arg1:Object):void{ var DEFAULTS:Object; var clip:Object; var ad_msec:Number; var ad_timeout:Number; var fadeout_time:Number; var mc:MovieClip; var wh:Array; var w:Number; var h:Number; var chk:MovieClip; var options = _arg1; DEFAULTS = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; ad_msec = 11000; ad_timeout = options.ad_timeout; delete options.ad_timeout; fadeout_time = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; wh = MochiAd._getRes(options, clip); w = wh[0]; h = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var _local1:Number; if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; _local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object; _local2 = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = (_arg1 - 250); }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; chk["onEnterFrame"] = function ():void{ var _local1:Object; var _local2:Number; var _local3:Boolean; var _local4:Number; if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; _local1 = this.parent._mochiad_ctr; _local2 = (getTimer() - this.started); _local3 = false; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (_local2 > chk.ad_msec){ _local3 = true; }; if (_local3){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = this.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function _parseOptions(_arg1:Object, _arg2:Object):Object{ var _local3:Object; var _local4:String; var _local5:Array; var _local6:Number; var _local7:Array; _local3 = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; if (_arg1){ for (_local4 in _arg1) { _local3[_local4] = _arg1[_local4]; }; }; if (_local3.clip == undefined){ throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite.")); }; _arg1 = _local3.clip.loaderInfo.parameters.mochiad_options; if (_arg1){ _local5 = _arg1.split("&"); _local6 = 0; while (_local6 < _local5.length) { _local7 = _local5[_local6].split("="); _local3[unescape(_local7[0])] = unescape(_local7[1]); _local6++; }; }; if (_local3.id == "test"){ trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!"); }; return (_local3); } public static function _cleanup(_arg1:Object):void{ var idx:Number; var k:String; var lc:LocalConnection; var f:Function; var mc = _arg1; if (("lc" in mc)){ lc = mc.lc; f = function ():void{ try { lc.client = null; lc.close(); } catch(e:Error) { }; }; setTimeout(f, 0); }; idx = DisplayObjectContainer(mc).numChildren; while (idx > 0) { idx = (idx - 1); DisplayObjectContainer(mc).removeChildAt(idx); }; for (k in mc) { delete mc[k]; }; } public static function load(_arg1:Object):MovieClip{ var DEFAULTS:Object; var clip:Object; var depth:Number; var mc:MovieClip; var wh:Array; var lv:URLVariables; var k:String; var server:String; var hostname:String; var lc:LocalConnection; var name:String; var loader:Loader; var g:Function; var req:URLRequest; var v:Object; var options = _arg1; DEFAULTS = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"}; options = MochiAd._parseOptions(options, DEFAULTS); options.swfv = 9; options.mav = MochiAd.getVersion(); clip = options.clip; if (!MochiAd._isNetworkAvailable()){ return (null); }; try { if (clip._mochiad_loaded){ return (null); }; } catch(e:Error) { throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); }; depth = options.depth; delete options.depth; mc = createEmptyMovieClip(clip, "_mochiad", depth); wh = MochiAd._getRes(options, clip); options.res = ((wh[0] + "x") + wh[1]); options.server = (options.server + options.id); delete options.id; clip._mochiad_loaded = true; if (clip.loaderInfo.loaderURL.indexOf("http") == 0){ options.as3_swf = clip.loaderInfo.loaderURL; }; lv = new URLVariables(); for (k in options) { v = options[k]; if (!(v is Function)){ lv[k] = v; }; }; server = lv.server; delete lv.server; hostname = _allowDomains(server); lc = new LocalConnection(); lc.client = mc; name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_"); lc.allowDomain("*", "localhost"); lc.allowInsecureDomain("*", "localhost"); lc.connect(name); mc.lc = lc; mc.lcName = name; lv.lc = name; lv.st = getTimer(); loader = new Loader(); g = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); MochiAd.unload(clip); }; loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g); req = new URLRequest((server + ".swf")); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; loader.load(req); mc.addChild(loader); mc._mochiad_ctr = loader; return (mc); } public static function runMethod(_arg1:Object, _arg2:String, _arg3:Array):Object{ var _local4:Array; var _local5:Number; _local4 = _arg2.split("."); _local5 = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return (undefined); }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; if (typeof(_arg1[_local4[_local5]]) == "function"){ return (_arg1[_local4[_local5]].apply(_arg1, _arg3)); }; return (undefined); } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{ var _local4:MovieClip; _local4 = new MovieClip(); if (((false) && (_arg3))){ _arg1.addChildAt(_local4, _arg3); } else { _arg1.addChild(_local4); }; _arg1[_arg2] = _local4; _local4["_name"] = _arg2; return (_local4); } public static function _getRes(_arg1:Object, _arg2:Object):Array{ var _local3:Object; var _local4:Number; var _local5:Number; var _local6:Array; _local3 = _arg2.getBounds(_arg2.root); _local4 = 0; _local5 = 0; if (typeof(_arg1.res) != "undefined"){ _local6 = _arg1.res.split("x"); _local4 = parseFloat(_local6[0]); _local5 = parseFloat(_local6[1]); } else { _local4 = (_local3.xMax - _local3.xMin); _local5 = (_local3.yMax - _local3.yMin); }; if ((((_local4 == 0)) || ((_local5 == 0)))){ _local4 = _arg2.stage.stageWidth; _local5 = _arg2.stage.stageHeight; }; return ([_local4, _local5]); } public static function adShowing(_arg1:Object):void{ _arg1.origFrameRate = _arg1.stage.frameRate; _arg1.stage.frameRate = 30; } public static function getValue(_arg1:Object, _arg2:String):Object{ var _local3:Array; var _local4:Number; _local3 = _arg2.split("."); _local4 = 0; while (_local4 < (_local3.length - 1)) { if ((((_arg1[_local3[_local4]] == undefined)) || ((_arg1[_local3[_local4]] == null)))){ return (undefined); }; _arg1 = _arg1[_local3[_local4]]; _local4++; }; return (_arg1[_local3[_local4]]); } public static function rpc(_arg1:Object, _arg2:Number, _arg3:Object):void{ var _local4:Object; var _local5:Object; switch (_arg3.id){ case "setValue": MochiAd.setValue(_arg1, _arg3.objectName, _arg3.value); break; case "getValue": _local4 = MochiAd.getValue(_arg1, _arg3.objectName); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local4); break; case "runMethod": _local5 = MochiAd.runMethod(_arg1, _arg3.method, _arg3.args); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local5); break; default: trace(("[mochiads rpc] unknown rpc id: " + _arg3.id)); }; } public static function setValue(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Array; var _local5:Number; _local4 = _arg2.split("."); _local5 = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return; }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; _arg1[_local4[_local5]] = _arg3; } public static function showPreGameAd(_arg1:Object):void{ var DEFAULTS:Object; var clip:Object; var ad_msec:Number; var ad_timeout:Number; var fadeout_time:Number; var mc:MovieClip; var wh:Array; var w:Number; var h:Number; var chk:MovieClip; var bar:MovieClip; var bar_color:Number; var bar_background:Number; var bar_outline:Number; var backing_mc:MovieClip; var backing:Object; var inside_mc:MovieClip; var inside:Object; var outline_mc:MovieClip; var outline:Object; var complete:Boolean; var unloaded:Boolean; var f:Function; var sendHostProgress:Boolean; var r:MovieClip; var options = _arg1; DEFAULTS = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }, ad_progress:function (_arg1:Number):void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){ options.ad_started(); setTimeout(options.ad_finished, 100); return; }; clip = options.clip; ad_msec = 11000; ad_timeout = options.ad_timeout; delete options.ad_timeout; fadeout_time = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ var fn:Function; MochiAd._cleanup(mc); fn = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); }; wh = MochiAd._getRes(options, clip); w = wh[0]; h = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.x = (w * -0.5); chk.y = (h * -0.5); bar = createEmptyMovieClip(chk, "_mochiad_bar", 4); if (options.no_progress_bar){ bar.visible = false; delete options.no_progress_bar; } else { bar.x = 10; bar.y = (h - 20); }; bar_color = options.color; delete options.color; bar_background = options.background; delete options.background; bar_outline = options.outline; delete options.outline; backing_mc = createEmptyMovieClip(bar, "_outline", 1); backing = backing_mc.graphics; backing.beginFill(bar_background); backing.moveTo(0, 0); backing.lineTo((w - 20), 0); backing.lineTo((w - 20), 10); backing.lineTo(0, 10); backing.lineTo(0, 0); backing.endFill(); inside_mc = createEmptyMovieClip(bar, "_inside", 2); inside = inside_mc.graphics; inside.beginFill(bar_color); inside.moveTo(0, 0); inside.lineTo((w - 20), 0); inside.lineTo((w - 20), 10); inside.lineTo(0, 10); inside.lineTo(0, 0); inside.endFill(); inside_mc.scaleX = 0; outline_mc = createEmptyMovieClip(bar, "_outline", 3); outline = outline_mc.graphics; outline.lineStyle(0, bar_outline, 100); outline.moveTo(0, 0); outline.lineTo((w - 20), 0); outline.lineTo((w - 20), 10); outline.lineTo(0, 10); outline.lineTo(0, 0); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.last_pcnt = 0; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var _local1:Number; _local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; complete = false; unloaded = false; f = function (_arg1:Event):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); complete = true; if (unloaded){ MochiAd.unload(clip); }; }; clip.loaderInfo.addEventListener(Event.COMPLETE, f); if ((clip.root is MovieClip)){ r = (clip.root as MovieClip); if (r.framesLoaded >= r.totalFrames){ complete = true; }; }; mc.unloadAd = function ():void{ unloaded = true; if (complete){ MochiAd.unload(clip); }; }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object; _local2 = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = _arg1; }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; mc.rpcTestFn = function (_arg1:String):Object{ trace(("[MOCHIAD rpcTestFn] " + _arg1)); return (_arg1); }; mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; sendHostProgress = false; mc.sendHostLoadProgress = function (_arg1:String):void{ sendHostProgress = true; }; chk["onEnterFrame"] = function ():void{ var _local1:Object; var _local2:Object; var _local3:Number; var _local4:Boolean; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Object; var _local10:Number; var _local11:Number; if (((!(this.parent)) || (!(this.parent.parent)))){ delete this["onEnterFrame"]; return; }; _local1 = this.parent.parent.root; _local2 = this.parent._mochiad_ctr; _local3 = (getTimer() - this.started); _local4 = false; _local5 = _local1.loaderInfo.bytesTotal; _local6 = _local1.loaderInfo.bytesLoaded; if (complete){ _local6 = Math.max(1, _local6); _local5 = _local6; }; _local7 = ((100 * _local6) / _local5); _local8 = ((100 * _local3) / chk.ad_msec); _local9 = this._mochiad_bar._inside; _local10 = Math.min(100, Math.min(((_local7) || (0)), _local8)); _local10 = Math.max(this.last_pcnt, _local10); this.last_pcnt = _local10; _local9.scaleX = (_local10 * 0.01); options.ad_progress(_local10); if (sendHostProgress){ clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local7}); if (_local7 == 100){ sendHostProgress = false; }; }; if (!chk.showing){ _local11 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local11 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if ((((_local3 > chk.ad_timeout)) && ((_local7 == 100)))){ options.ad_failed(); _local4 = true; }; }; }; if (_local3 > chk.ad_msec){ _local4 = true; }; if (((complete) && (_local4))){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = chk.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function showPreloaderAd(_arg1:Object):void{ trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0"); MochiAd.showPreGameAd(_arg1); } public static function showTimedAd(_arg1:Object):void{ trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0"); MochiAd.showInterLevelAd(_arg1); } public static function doOnEnterFrame(_arg1:MovieClip):void{ var f:Function; var mc = _arg1; f = function (_arg1:Object):void{ if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){ mc.onEnterFrame(); } else { _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; }; mc.addEventListener(Event.ENTER_FRAME, f); } } }//package
Section 89
//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 90
//notEnoughPoints (notEnoughPoints) package { import flash.display.*; public dynamic class notEnoughPoints extends MovieClip { } }//package
Section 91
//sndBeep (sndBeep) package { import flash.media.*; public dynamic class sndBeep extends Sound { } }//package
Section 92
//sndBG2 (sndBG2) package { import flash.media.*; public dynamic class sndBG2 extends Sound { } }//package
Section 93
//sndBG3 (sndBG3) package { import flash.media.*; public dynamic class sndBG3 extends Sound { } }//package
Section 94
//sndBG4 (sndBG4) package { import flash.media.*; public dynamic class sndBG4 extends Sound { } }//package
Section 95
//sndBG5 (sndBG5) package { import flash.media.*; public dynamic class sndBG5 extends Sound { } }//package
Section 96
//sndDing (sndDing) package { import flash.media.*; public dynamic class sndDing extends Sound { } }//package
Section 97
//sndHitRing (sndHitRing) package { import flash.media.*; public dynamic class sndHitRing extends Sound { } }//package
Section 98
//sndMiss (sndMiss) package { import flash.media.*; public dynamic class sndMiss extends Sound { } }//package
Section 99
//sndSpawn (sndSpawn) package { import flash.media.*; public dynamic class sndSpawn extends Sound { } }//package

Library Items

Symbol 1 FontUsed by:2 3 4 5 6 7 173 175 177
Symbol 2 TextUses:1Used by:8
Symbol 3 EditableTextUses:1Used by:8
Symbol 4 EditableTextUses:1Used by:8
Symbol 5 EditableTextUses:1Used by:8
Symbol 6 EditableTextUses:1Used by:8
Symbol 7 EditableTextUses:1Used by:8
Symbol 8 MovieClip {levelCompleteStats}Uses:2 3 4 5 6 7
Symbol 9 GraphicUsed by:10
Symbol 10 MovieClip {notEnoughPoints}Uses:9Used by:271
Symbol 11 ShapeTweeningUsed by:15
Symbol 12 ShapeTweeningUsed by:15
Symbol 13 ShapeTweeningUsed by:15
Symbol 14 GraphicUsed by:15
Symbol 15 MovieClip {assetLevelCompleteBar}Uses:11 12 13 14Used by:179
Symbol 16 GraphicUsed by:22
Symbol 17 FontUsed by:18 21 24 140 170 171 172 183 200 204 209
Symbol 18 EditableTextUses:17Used by:22
Symbol 19 BitmapUsed by:20 245
Symbol 20 GraphicUses:19Used by:22
Symbol 21 EditableTextUses:17Used by:22
Symbol 22 MovieClip {engine_fla.preloader_1}Uses:16 18 20 21Used by:Timeline
Symbol 23 GraphicUsed by:61 135 142
Symbol 24 EditableTextUses:17Used by:61
Symbol 25 GraphicUsed by:26
Symbol 26 MovieClipUses:25Used by:27
Symbol 27 MovieClip {net.amp3d.entropy.LineWave}Uses:26Used by:61 135 142
Symbol 28 ShapeTweeningUsed by:61
Symbol 29 GraphicUsed by:61
Symbol 30 BitmapUsed by:31
Symbol 31 GraphicUses:30Used by:32
Symbol 32 MovieClipUses:31Used by:33
Symbol 33 MovieClip {engine_fla.logo_blurin_6}Uses:32Used by:61 135 142 179 211
Symbol 34 ShapeTweeningUsed by:49
Symbol 35 ShapeTweeningUsed by:49
Symbol 36 ShapeTweeningUsed by:49
Symbol 37 ShapeTweeningUsed by:49
Symbol 38 GraphicUsed by:49
Symbol 39 ShapeTweeningUsed by:49
Symbol 40 GraphicUsed by:49
Symbol 41 ShapeTweeningUsed by:49
Symbol 42 GraphicUsed by:49
Symbol 43 ShapeTweeningUsed by:49
Symbol 44 GraphicUsed by:49
Symbol 45 ShapeTweeningUsed by:49
Symbol 46 GraphicUsed by:49
Symbol 47 GraphicUsed by:49
Symbol 48 GraphicUsed by:49
Symbol 49 MovieClip {engine_fla.gameOver_animationIn_8}Uses:34 35 36 37 38 39 40 41 42 43 44 45 46 47 48Used by:61
Symbol 50 GraphicUsed by:51 54
Symbol 51 MovieClipUses:50Used by:54
Symbol 52 SoundUsed by:54 57 125 129 169 189 191 193 195 197 249 258 282
Symbol 53 SoundUsed by:54 57 125 129 169 189 191 193 195 197 249 258 282
Symbol 54 ButtonUses:51 50 52 53Used by:61 142 179
Symbol 55 GraphicUsed by:56 57
Symbol 56 MovieClipUses:55Used by:57
Symbol 57 ButtonUses:56 55 52 53Used by:61
Symbol 58 FontUsed by:59 122 123 126 127 130 131 246 260 261 262 264
Symbol 59 TextUses:58Used by:61 141
Symbol 60 GraphicUsed by:61
Symbol 61 MovieClip {net.amp3d.entropy.GameOver}Uses:23 24 27 28 29 33 49 54 57 59 60Used by:282
Symbol 62 GraphicUsed by:63
Symbol 63 MovieClipUses:62Used by:77 282
Symbol 64 GraphicUsed by:68
Symbol 65 GraphicUsed by:68
Symbol 66 ShapeTweeningUsed by:68
Symbol 67 GraphicUsed by:68
Symbol 68 MovieClip {assetEnemy}Uses:64 65 66 67Used by:282
Symbol 69 ShapeTweeningUsed by:75
Symbol 70 GraphicUsed by:75
Symbol 71 ShapeTweeningUsed by:75
Symbol 72 ShapeTweeningUsed by:75
Symbol 73 ShapeTweeningUsed by:75
Symbol 74 GraphicUsed by:75
Symbol 75 MovieClip {assetFader}Uses:69 70 71 72 73 74Used by:282
Symbol 76 GraphicUsed by:77
Symbol 77 MovieClip {assetReport}Uses:76 63Used by:282
Symbol 78 ShapeTweeningUsed by:87
Symbol 79 ShapeTweeningUsed by:87
Symbol 80 GraphicUsed by:87
Symbol 81 ShapeTweeningUsed by:87
Symbol 82 ShapeTweeningUsed by:87
Symbol 83 GraphicUsed by:87
Symbol 84 GraphicUsed by:87
Symbol 85 ShapeTweeningUsed by:87
Symbol 86 GraphicUsed by:87
Symbol 87 MovieClip {assetPaddle}Uses:78 79 80 81 82 83 84 85 86Used by:282
Symbol 88 ShapeTweeningUsed by:91
Symbol 89 ShapeTweeningUsed by:91
Symbol 90 GraphicUsed by:91
Symbol 91 MovieClip {engine_fla.redflash_18}Uses:88 89 90Used by:109 282
Symbol 92 GraphicUsed by:103
Symbol 93 FontUsed by:94 97 101 117
Symbol 94 TextUses:93Used by:103
Symbol 95 FontUsed by:96 98 102 118
Symbol 96 EditableTextUses:95Used by:103
Symbol 97 TextUses:93Used by:103
Symbol 98 EditableTextUses:95Used by:103
Symbol 99 BitmapUsed by:100
Symbol 100 GraphicUses:99Used by:103
Symbol 101 TextUses:93Used by:103
Symbol 102 EditableTextUses:95Used by:103
Symbol 103 MovieClip {assetStats}Uses:92 94 96 97 98 100 101 102Used by:282
Symbol 104 GraphicUsed by:109
Symbol 105 ShapeTweeningUsed by:108
Symbol 106 ShapeTweeningUsed by:108
Symbol 107 GraphicUsed by:108
Symbol 108 MovieClip {engine_fla.greenflash_21}Uses:105 106 107Used by:109
Symbol 109 MovieClip {assetTally}Uses:91 104 108Used by:282
Symbol 110 GraphicUsed by:116
Symbol 111 ShapeTweeningUsed by:116
Symbol 112 ShapeTweeningUsed by:116
Symbol 113 ShapeTweeningUsed by:116
Symbol 114 ShapeTweeningUsed by:116
Symbol 115 GraphicUsed by:116
Symbol 116 MovieClip {assetBall}Uses:110 111 112 113 114 115Used by:282
Symbol 117 TextUses:93Used by:119
Symbol 118 EditableTextUses:95Used by:119
Symbol 119 MovieClip {assetTotalTime}Uses:117 118Used by:282
Symbol 120 GraphicUsed by:121 125 129 133
Symbol 121 MovieClipUses:120Used by:124 128 132
Symbol 122 TextUses:58Used by:124 125
Symbol 123 TextUses:58Used by:124 125
Symbol 124 MovieClipUses:121 122 123Used by:125
Symbol 125 ButtonUses:124 120 122 123 52 53Used by:135
Symbol 126 TextUses:58Used by:128 129
Symbol 127 TextUses:58Used by:128 129
Symbol 128 MovieClipUses:121 126 127Used by:129
Symbol 129 ButtonUses:128 120 126 127 52 53Used by:135
Symbol 130 TextUses:58Used by:132 133
Symbol 131 TextUses:58Used by:132 133
Symbol 132 MovieClipUses:121 130 131Used by:133
Symbol 133 ButtonUses:132 120 130 131Used by:135
Symbol 134 GraphicUsed by:135
Symbol 135 MovieClip {Menu}Uses:23 27 33 125 129 133 134Used by:282
Symbol 136 GraphicUsed by:137
Symbol 137 MovieClipUses:136Used by:142
Symbol 138 GraphicUsed by:139
Symbol 139 MovieClipUses:138Used by:142
Symbol 140 EditableTextUses:17Used by:142
Symbol 141 MovieClipUses:59Used by:142
Symbol 142 MovieClip {net.amp3d.entropy.GameWin}Uses:23 27 137 139 140 54 141 33Used by:282
Symbol 143 GraphicUsed by:179
Symbol 144 ShapeTweeningUsed by:166
Symbol 145 ShapeTweeningUsed by:166
Symbol 146 GraphicUsed by:166
Symbol 147 ShapeTweeningUsed by:166
Symbol 148 GraphicUsed by:166
Symbol 149 ShapeTweeningUsed by:166
Symbol 150 GraphicUsed by:166
Symbol 151 ShapeTweeningUsed by:166
Symbol 152 ShapeTweeningUsed by:166
Symbol 153 GraphicUsed by:166
Symbol 154 ShapeTweeningUsed by:166
Symbol 155 GraphicUsed by:166
Symbol 156 ShapeTweeningUsed by:166
Symbol 157 GraphicUsed by:166
Symbol 158 ShapeTweeningUsed by:166
Symbol 159 GraphicUsed by:166
Symbol 160 ShapeTweeningUsed by:166
Symbol 161 GraphicUsed by:166
Symbol 162 ShapeTweeningUsed by:166
Symbol 163 ShapeTweeningUsed by:166
Symbol 164 ShapeTweeningUsed by:166
Symbol 165 GraphicUsed by:166
Symbol 166 MovieClip {engine_fla.levelComplete_37}Uses:144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165Used by:179
Symbol 167 GraphicUsed by:168 169
Symbol 168 MovieClipUses:167Used by:169
Symbol 169 ButtonUses:168 167 52 53Used by:179
Symbol 170 EditableTextUses:17Used by:179
Symbol 171 EditableTextUses:17Used by:179
Symbol 172 EditableTextUses:17Used by:179
Symbol 173 TextUses:1Used by:174
Symbol 174 MovieClipUses:173Used by:179
Symbol 175 TextUses:1Used by:176
Symbol 176 MovieClipUses:175Used by:179
Symbol 177 TextUses:1Used by:178
Symbol 178 MovieClipUses:177Used by:179
Symbol 179 MovieClip {net.amp3d.assets.assetLevelComplete}Uses:143 33 166 15 169 54 170 171 172 174 176 178Used by:282
Symbol 180 GraphicUsed by:211
Symbol 181 BitmapUsed by:182
Symbol 182 GraphicUses:181Used by:211
Symbol 183 TextUses:17Used by:211
Symbol 184 FontUsed by:185 201 205 206 210
Symbol 185 TextUses:184Used by:211
Symbol 186 GraphicUsed by:187 189 191 193 195 197
Symbol 187 MovieClipUses:186Used by:189 191 193 195 197
Symbol 188 GraphicUsed by:189
Symbol 189 ButtonUses:187 188 186 52 53Used by:211
Symbol 190 GraphicUsed by:191
Symbol 191 ButtonUses:187 190 186 52 53Used by:211
Symbol 192 GraphicUsed by:193
Symbol 193 ButtonUses:187 192 186 52 53Used by:211
Symbol 194 GraphicUsed by:195
Symbol 195 ButtonUses:187 194 186 52 53Used by:211
Symbol 196 GraphicUsed by:197
Symbol 197 ButtonUses:187 196 186 52 53Used by:211
Symbol 198 BitmapUsed by:199
Symbol 199 GraphicUses:198Used by:211
Symbol 200 TextUses:17Used by:211
Symbol 201 TextUses:184Used by:211
Symbol 202 BitmapUsed by:203
Symbol 203 GraphicUses:202Used by:211
Symbol 204 TextUses:17Used by:211
Symbol 205 TextUses:184Used by:211
Symbol 206 TextUses:184Used by:211
Symbol 207 BitmapUsed by:208
Symbol 208 GraphicUses:207Used by:211
Symbol 209 TextUses:17Used by:211
Symbol 210 TextUses:184Used by:211
Symbol 211 MovieClip {net.amp3d.entropy.Tutorial}Uses:180 182 183 185 189 191 193 195 197 33 199 200 201 203 204 205 206 208 209 210Used by:282
Symbol 212 GraphicUsed by:213
Symbol 213 MovieClip {net.amp3d.assets.Whiteflash}Uses:212Used by:282
Symbol 214 GraphicUsed by:229
Symbol 215 GraphicUsed by:229
Symbol 216 GraphicUsed by:229
Symbol 217 GraphicUsed by:229
Symbol 218 GraphicUsed by:229
Symbol 219 GraphicUsed by:229
Symbol 220 GraphicUsed by:229
Symbol 221 GraphicUsed by:229
Symbol 222 GraphicUsed by:229
Symbol 223 GraphicUsed by:229
Symbol 224 GraphicUsed by:229
Symbol 225 GraphicUsed by:229
Symbol 226 GraphicUsed by:229
Symbol 227 GraphicUsed by:229
Symbol 228 GraphicUsed by:229
Symbol 229 MovieClip {assetShowLevels}Uses:214 215 216 217 218 219 220 221 222 223 224 225 226 227 228Used by:282
Symbol 230 GraphicUsed by:244
Symbol 231 GraphicUsed by:244
Symbol 232 ShapeTweeningUsed by:244
Symbol 233 ShapeTweeningUsed by:244
Symbol 234 GraphicUsed by:244
Symbol 235 GraphicUsed by:244
Symbol 236 ShapeTweeningUsed by:244
Symbol 237 ShapeTweeningUsed by:244
Symbol 238 GraphicUsed by:244
Symbol 239 GraphicUsed by:244
Symbol 240 ShapeTweeningUsed by:244
Symbol 241 ShapeTweeningUsed by:244
Symbol 242 GraphicUsed by:244
Symbol 243 GraphicUsed by:244
Symbol 244 MovieClip {assetRoundStart}Uses:230 231 232 233 234 235 236 237 238 239 240 241 242 243Used by:282
Symbol 245 GraphicUses:19Used by:271
Symbol 246 EditableTextUses:58Used by:271
Symbol 247 GraphicUsed by:248 249
Symbol 248 MovieClipUses:247Used by:249
Symbol 249 ButtonUses:248 247 52 53Used by:271
Symbol 250 GraphicUsed by:251
Symbol 251 MovieClipUses:250Used by:258
Symbol 252 GraphicUsed by:257 258
Symbol 253 ShapeTweeningUsed by:257 258
Symbol 254 ShapeTweeningUsed by:257 258
Symbol 255 GraphicUsed by:257 258
Symbol 256 GraphicUsed by:257
Symbol 257 MovieClipUses:252 253 254 255 256Used by:258
Symbol 258 ButtonUses:251 257 252 253 254 255 52 53Used by:271
Symbol 259 GraphicUsed by:271
Symbol 260 EditableTextUses:58Used by:271
Symbol 261 EditableTextUses:58Used by:271
Symbol 262 EditableTextUses:58Used by:271
Symbol 263 GraphicUsed by:271
Symbol 264 TextUses:58Used by:271
Symbol 265 GraphicUsed by:270
Symbol 266 ShapeTweeningUsed by:269
Symbol 267 ShapeTweeningUsed by:269
Symbol 268 GraphicUsed by:269
Symbol 269 MovieClip {engine_fla.greenLoadIn_61}Uses:266 267 268Used by:270
Symbol 270 MovieClip {engine_fla.upgrade_levels_60}Uses:265 269Used by:271
Symbol 271 MovieClip {net.amp3d.entropy.UpgradeMenu}Uses:245 246 249 258 259 260 261 262 263 264 270 10Used by:282
Symbol 272 Sound {sndBG2}Used by:282
Symbol 273 Sound {sndBeep}Used by:282
Symbol 274 Sound {sndBG3}Used by:282
Symbol 275 Sound {sndDing}Used by:282
Symbol 276 Sound {sndHitRing}Used by:282
Symbol 277 Sound {sndMiss}Used by:282
Symbol 278 Sound {sndBG4}Used by:282
Symbol 279 Sound {sndBG5}Used by:282
Symbol 280 Sound {sndSpawn}Used by:282
Symbol 281 SoundUsed by:282
Symbol 282 MovieClip {engine_fla.holdEVERYTHING_2}Uses:61 63 68 75 77 87 91 103 109 116 119 135 142 179 211 213 229 244 271 272 273 274 275 276 277 278 52 279 280 281 53Used by:Timeline
Symbol 283 VideoUsed by:286
Symbol 284 GraphicUsed by:285
Symbol 285 MovieClipUses:284Used by:286
Symbol 286 MovieClip {engine_fla.parLogo_63}Uses:283 285Used by:Timeline

Instance Names

"preloader"Frame 1Symbol 22 MovieClip {engine_fla.preloader_1}
"movie"Frame 4Symbol 286 MovieClip {engine_fla.parLogo_63}
"tFastestCurve"Symbol 8 MovieClip {levelCompleteStats} Frame 1Symbol 3 EditableText
"tTargetHits"Symbol 8 MovieClip {levelCompleteStats} Frame 1Symbol 4 EditableText
"tUpgradePoints"Symbol 8 MovieClip {levelCompleteStats} Frame 1Symbol 5 EditableText
"tMisses"Symbol 8 MovieClip {levelCompleteStats} Frame 1Symbol 6 EditableText
"tBallVelocity"Symbol 8 MovieClip {levelCompleteStats} Frame 1Symbol 7 EditableText
"loadingText"Symbol 22 MovieClip {engine_fla.preloader_1} Frame 1Symbol 18 EditableText
"loadingText2"Symbol 22 MovieClip {engine_fla.preloader_1} Frame 1Symbol 21 EditableText
"w1"Symbol 27 MovieClip {net.amp3d.entropy.LineWave} Frame 1Symbol 26 MovieClip
"w4"Symbol 27 MovieClip {net.amp3d.entropy.LineWave} Frame 1Symbol 26 MovieClip
"w2"Symbol 27 MovieClip {net.amp3d.entropy.LineWave} Frame 1Symbol 26 MovieClip
"w5"Symbol 27 MovieClip {net.amp3d.entropy.LineWave} Frame 1Symbol 26 MovieClip
"w3"Symbol 27 MovieClip {net.amp3d.entropy.LineWave} Frame 1Symbol 26 MovieClip
"w6"Symbol 27 MovieClip {net.amp3d.entropy.LineWave} Frame 1Symbol 26 MovieClip
"userScore"Symbol 61 MovieClip {net.amp3d.entropy.GameOver} Frame 1Symbol 24 EditableText
"btnHS"Symbol 61 MovieClip {net.amp3d.entropy.GameOver} Frame 1Symbol 54 Button
"btnMenu"Symbol 61 MovieClip {net.amp3d.entropy.GameOver} Frame 1Symbol 57 Button
"arrow"Symbol 77 MovieClip {assetReport} Frame 1Symbol 63 MovieClip
"points"Symbol 103 MovieClip {assetStats} Frame 1Symbol 96 EditableText
"time"Symbol 103 MovieClip {assetStats} Frame 1Symbol 98 EditableText
"upgrade"Symbol 103 MovieClip {assetStats} Frame 1Symbol 102 EditableText
"time"Symbol 119 MovieClip {assetTotalTime} Frame 1Symbol 118 EditableText
"btnPlayGame"Symbol 135 MovieClip {Menu} Frame 1Symbol 125 Button
"btnTutorial"Symbol 135 MovieClip {Menu} Frame 1Symbol 129 Button
"btnMore"Symbol 135 MovieClip {Menu} Frame 1Symbol 133 Button
"yourScore"Symbol 142 MovieClip {net.amp3d.entropy.GameWin} Frame 1Symbol 140 EditableText
"sHighScore"Symbol 142 MovieClip {net.amp3d.entropy.GameWin} Frame 1Symbol 54 Button
"a2"Symbol 179 MovieClip {net.amp3d.assets.assetLevelComplete} Frame 1Symbol 15 MovieClip {assetLevelCompleteBar}
"a1"Symbol 179 MovieClip {net.amp3d.assets.assetLevelComplete} Frame 1Symbol 15 MovieClip {assetLevelCompleteBar}
"sUpgrades"Symbol 179 MovieClip {net.amp3d.assets.assetLevelComplete} Frame 1Symbol 169 Button
"sHighScore"Symbol 179 MovieClip {net.amp3d.assets.assetLevelComplete} Frame 1Symbol 54 Button
"timebonus"Symbol 179 MovieClip {net.amp3d.assets.assetLevelComplete} Frame 1Symbol 170 EditableText
"roundbonus"Symbol 179 MovieClip {net.amp3d.assets.assetLevelComplete} Frame 1Symbol 171 EditableText
"totalscore"Symbol 179 MovieClip {net.amp3d.assets.assetLevelComplete} Frame 1Symbol 172 EditableText
"tTimeBonus"Symbol 179 MovieClip {net.amp3d.assets.assetLevelComplete} Frame 1Symbol 174 MovieClip
"tRoundPoints"Symbol 179 MovieClip {net.amp3d.assets.assetLevelComplete} Frame 1Symbol 176 MovieClip
"tRoundScore"Symbol 179 MovieClip {net.amp3d.assets.assetLevelComplete} Frame 1Symbol 178 MovieClip
"btnexit"Symbol 211 MovieClip {net.amp3d.entropy.Tutorial} Frame 1Symbol 189 Button
"btnupgrade"Symbol 211 MovieClip {net.amp3d.entropy.Tutorial} Frame 1Symbol 191 Button
"btngameplay"Symbol 211 MovieClip {net.amp3d.entropy.Tutorial} Frame 1Symbol 193 Button
"btncurve"Symbol 211 MovieClip {net.amp3d.entropy.Tutorial} Frame 1Symbol 195 Button
"btntargets"Symbol 211 MovieClip {net.amp3d.entropy.Tutorial} Frame 1Symbol 197 Button
"pointsLeft"Symbol 271 MovieClip {net.amp3d.entropy.UpgradeMenu} Frame 1Symbol 246 EditableText
"btnNextLevel"Symbol 271 MovieClip {net.amp3d.entropy.UpgradeMenu} Frame 1Symbol 249 Button
"btnCurve"Symbol 271 MovieClip {net.amp3d.entropy.UpgradeMenu} Frame 1Symbol 258 Button
"btnSpeed"Symbol 271 MovieClip {net.amp3d.entropy.UpgradeMenu} Frame 1Symbol 258 Button
"btnPaddle"Symbol 271 MovieClip {net.amp3d.entropy.UpgradeMenu} Frame 1Symbol 258 Button
"cPaddle"Symbol 271 MovieClip {net.amp3d.entropy.UpgradeMenu} Frame 1Symbol 260 EditableText
"cCurve"Symbol 271 MovieClip {net.amp3d.entropy.UpgradeMenu} Frame 1Symbol 261 EditableText
"cSpeed"Symbol 271 MovieClip {net.amp3d.entropy.UpgradeMenu} Frame 1Symbol 262 EditableText
"rSpeed"Symbol 271 MovieClip {net.amp3d.entropy.UpgradeMenu} Frame 1Symbol 270 MovieClip {engine_fla.upgrade_levels_60}
"rCurve"Symbol 271 MovieClip {net.amp3d.entropy.UpgradeMenu} Frame 1Symbol 270 MovieClip {engine_fla.upgrade_levels_60}
"rPaddle"Symbol 271 MovieClip {net.amp3d.entropy.UpgradeMenu} Frame 1Symbol 270 MovieClip {engine_fla.upgrade_levels_60}
"nep"Symbol 271 MovieClip {net.amp3d.entropy.UpgradeMenu} Frame 1Symbol 10 MovieClip {notEnoughPoints}

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.
Tag 0x0FF (255)Timeline Frame 11 bytes " "




http://swfchan.com/16/77013/info.shtml
Created: 4/4 -2019 07:06:22 Last modified: 4/4 -2019 07:06:22 Server time: 17/05 -2024 21:38:38