Section 1
//AdLoader (CPMStar.AdLoader)
package CPMStar {
import flash.display.*;
import flash.system.*;
import flash.net.*;
public class AdLoader {
private static var cpmstarLoader:Loader;
public static function LoadAd(_arg1:int, _arg2:int):DisplayObject{
var _local3:String;
Security.allowDomain("server.cpmstar.com");
_local3 = "http://server.cpmstar.com/adviewas3.swf";
cpmstarLoader = new Loader();
cpmstarLoader.load(new URLRequest(((((_local3 + "?poolid=") + _arg1) + "&subpoolid=") + _arg2)));
return (cpmstarLoader);
}
}
}//package CPMStar
Section 2
//AdButton_2 (TractorSpheres_fla.AdButton_2)
package TractorSpheres_fla {
import flash.display.*;
import flash.events.*;
import flash.media.*;
import flash.text.*;
import flash.system.*;
import flash.net.*;
import flash.external.*;
import flash.utils.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
import flash.geom.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class AdButton_2 extends MovieClip {
public function AdButton_2(){
addFrameScript(0, frame1);
}
function frame1(){
addEventListener(MouseEvent.CLICK, clickHandler);
this.addEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
gotoAndStop(1);
}
public function OnMouseOut(_arg1:MouseEvent){
this.gotoAndStop(1);
}
public function clickHandler(_arg1:Event):void{
parent.removeChild(parent["adBox"]);
removeEventListener(MouseEvent.CLICK, clickHandler);
MovieClip(parent).playGame();
}
public function OnMouseOver(_arg1:MouseEvent){
this.gotoAndStop(2);
}
}
}//package TractorSpheres_fla
Section 3
//introFlash_22 (TractorSpheres_fla.introFlash_22)
package TractorSpheres_fla {
import flash.display.*;
public dynamic class introFlash_22 extends MovieClip {
public function introFlash_22(){
addFrameScript(5, frame6);
}
function frame6(){
stop();
}
}
}//package TractorSpheres_fla
Section 4
//notDop300x250button_3 (TractorSpheres_fla.notDop300x250button_3)
package TractorSpheres_fla {
import flash.display.*;
import flash.events.*;
import flash.media.*;
import flash.text.*;
import flash.system.*;
import flash.net.*;
import flash.external.*;
import flash.utils.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
import flash.geom.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class notDop300x250button_3 extends MovieClip {
public function notDop300x250button_3(){
addFrameScript(0, frame1);
}
function frame1(){
addEventListener(MouseEvent.CLICK, clickHandler);
this.addEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
gotoAndStop(1);
}
public function OnMouseOut(_arg1:MouseEvent){
this.gotoAndStop(1);
}
public function clickHandler(_arg1:Event):void{
var url:String;
var strUserAgent:String;
var urlRequest:URLRequest;
var event = _arg1;
parent.removeChild(parent["notDop300But"]);
removeEventListener(MouseEvent.CLICK, clickHandler);
url = "http://www.notdoppler.com";
if (ExternalInterface.available){
strUserAgent = "what?";
try {
strUserAgent = ExternalInterface.call("function() { return navigator.userAgent; }").toLowerCase();
} catch(error:Error) {
};
if (strUserAgent.indexOf("firefox") != -1){
ExternalInterface.call("window.open", url, "_blank");
} else {
urlRequest = new URLRequest(url);
navigateToURL(urlRequest, "_blank");
};
};
}
public function OnMouseOver(_arg1:MouseEvent){
this.gotoAndStop(2);
}
}
}//package TractorSpheres_fla
Section 5
//Ball (Ball)
package {
import flash.display.*;
public class Ball extends MovieClip {
public function Ball(_arg1:Number=0, _arg2:Number=0){
this.x = _arg1;
this.y = _arg2;
}
}
}//package
Section 6
//BlackOut (BlackOut)
package {
import flash.display.*;
public dynamic class BlackOut extends MovieClip {
}
}//package
Section 7
//BounceSound (BounceSound)
package {
import flash.media.*;
public dynamic class BounceSound extends Sound {
}
}//package
Section 8
//ClickSound (ClickSound)
package {
import flash.media.*;
public dynamic class ClickSound extends Sound {
}
}//package
Section 9
//ContinueButton (ContinueButton)
package {
import flash.display.*;
import flash.events.*;
public class ContinueButton extends MovieClip {
public function ContinueButton(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){
this.x = _arg1;
this.y = _arg2;
this.height = _arg4;
this.width = _arg3;
this.addEventListener(MouseEvent.CLICK, OnClick);
this.gotoAndStop(1);
this.addEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
}
public function OnMouseOut(_arg1:MouseEvent){
this.gotoAndStop(1);
}
public function OnClick(_arg1:MouseEvent){
MovieClip(parent).playSound(MovieClip(parent).clickSound);
MovieClip(parent).Continue();
}
public function OnMouseOver(_arg1:MouseEvent){
this.gotoAndStop(2);
MovieClip(parent).playSound(MovieClip(parent).rolloverSound);
}
public function RemoveButton(){
this.removeEventListener(MouseEvent.CLICK, OnClick);
this.removeEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.removeEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
MovieClip(parent).removeChild(this);
}
}
}//package
Section 10
//Dashboard (Dashboard)
package {
import flash.display.*;
public dynamic class Dashboard extends MovieClip {
}
}//package
Section 11
//ExpandSound (ExpandSound)
package {
import flash.media.*;
public dynamic class ExpandSound extends Sound {
}
}//package
Section 12
//FakeResetButton (FakeResetButton)
package {
import flash.display.*;
import flash.events.*;
public class FakeResetButton extends MovieClip {
public function FakeResetButton(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){
this.x = _arg1;
this.y = _arg2;
this.height = _arg4;
this.width = _arg3;
this.gotoAndStop(1);
this.addEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
}
public function OnMouseOut(_arg1:MouseEvent){
this.gotoAndStop(1);
}
public function OnMouseOver(_arg1:MouseEvent){
this.gotoAndStop(2);
MovieClip(parent).playSound(MovieClip(parent).rolloverSound);
}
public function RemoveButton(){
this.removeEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.removeEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
MovieClip(parent).removeChild(this);
}
}
}//package
Section 13
//FakeTSphere (FakeTSphere)
package {
import flash.display.*;
public dynamic class FakeTSphere extends MovieClip {
}
}//package
Section 14
//FinalButton (FinalButton)
package {
import flash.display.*;
import flash.events.*;
public class FinalButton extends MovieClip {
public function FinalButton(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){
this.x = _arg1;
this.y = _arg2;
this.height = _arg4;
this.width = _arg3;
this.addEventListener(MouseEvent.CLICK, OnClick);
this.gotoAndStop(1);
this.addEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
}
public function OnMouseOut(_arg1:MouseEvent){
this.gotoAndStop(1);
}
public function OnClick(_arg1:MouseEvent){
MovieClip(parent).playSound(MovieClip(parent).clickSound);
MovieClip(parent).Final();
}
public function OnMouseOver(_arg1:MouseEvent){
this.gotoAndStop(2);
MovieClip(parent).playSound(MovieClip(parent).rolloverSound);
}
public function RemoveButton(){
this.removeEventListener(MouseEvent.CLICK, OnClick);
this.removeEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.removeEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
MovieClip(parent).removeChild(this);
}
}
}//package
Section 15
//GameMusic (GameMusic)
package {
import flash.media.*;
public dynamic class GameMusic extends Sound {
}
}//package
Section 16
//Goal (Goal)
package {
import flash.display.*;
import flash.events.*;
public class Goal extends MovieClip {
public function Goal(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){
this.x = _arg1;
this.y = _arg2;
this.width = _arg3;
this.height = _arg3;
this.addEventListener(Event.ENTER_FRAME, EveryFrame);
}
public function EveryFrame(_arg1:Event){
this.rotation = (this.rotation + 25);
}
public function RemoveGoal(){
this.removeEventListener(Event.ENTER_FRAME, EveryFrame);
MovieClip(parent).removeChild(this);
}
}
}//package
Section 17
//GoalSound (GoalSound)
package {
import flash.media.*;
public dynamic class GoalSound extends Sound {
}
}//package
Section 18
//GrayBox (GrayBox)
package {
import flash.display.*;
public dynamic class GrayBox extends MovieClip {
}
}//package
Section 19
//InstructionButton (InstructionButton)
package {
import flash.display.*;
import flash.events.*;
public class InstructionButton extends MovieClip {
public function InstructionButton(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){
this.x = _arg1;
this.y = _arg2;
this.height = _arg4;
this.width = _arg3;
this.addEventListener(MouseEvent.CLICK, OnClick);
this.gotoAndStop(1);
this.addEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
}
public function OnMouseOut(_arg1:MouseEvent){
this.gotoAndStop(1);
}
public function OnClick(_arg1:MouseEvent){
MovieClip(parent).playSound(MovieClip(parent).clickSound);
MovieClip(parent).InstructionStart();
}
public function OnMouseOver(_arg1:MouseEvent){
this.gotoAndStop(2);
MovieClip(parent).playSound(MovieClip(parent).rolloverSound);
}
public function RemoveButton(){
this.removeEventListener(MouseEvent.CLICK, OnClick);
this.removeEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.removeEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
MovieClip(parent).removeChild(this);
}
}
}//package
Section 20
//Instructions1 (Instructions1)
package {
import flash.display.*;
public dynamic class Instructions1 extends MovieClip {
}
}//package
Section 21
//Instructions2 (Instructions2)
package {
import flash.display.*;
public dynamic class Instructions2 extends MovieClip {
}
}//package
Section 22
//Instructions3 (Instructions3)
package {
import flash.display.*;
public dynamic class Instructions3 extends MovieClip {
}
}//package
Section 23
//Instructions4 (Instructions4)
package {
import flash.display.*;
public dynamic class Instructions4 extends MovieClip {
}
}//package
Section 24
//LevelData (LevelData)
package {
public class LevelData {
var goalDiameter:int;
var goalX:int;
var goalY:int;
var levelNumber:int;
var TSMax:Number;
var timeLimit:int;
var startX:int;
var startY:int;
var levelName:String;
public function LevelData(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9){
levelNumber = _arg1;
startX = _arg2;
startY = _arg3;
goalX = _arg6;
goalY = _arg7;
goalDiameter = _arg8;
TSMax = _arg4;
timeLimit = _arg5;
levelName = _arg9;
}
}
}//package
Section 25
//MenuBackdrop (MenuBackdrop)
package {
import flash.display.*;
public dynamic class MenuBackdrop extends MovieClip {
}
}//package
Section 26
//MenuButton (MenuButton)
package {
import flash.display.*;
import flash.events.*;
public class MenuButton extends MovieClip {
public function MenuButton(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){
this.x = _arg1;
this.y = _arg2;
this.height = _arg4;
this.width = _arg3;
this.addEventListener(MouseEvent.CLICK, OnClick);
this.gotoAndStop(1);
this.addEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
}
public function OnMouseOut(_arg1:MouseEvent){
this.gotoAndStop(1);
}
public function OnClick(_arg1:MouseEvent){
MovieClip(parent).playSound(MovieClip(parent).clickSound);
MovieClip(parent).QuitGame();
}
public function OnMouseOver(_arg1:MouseEvent){
this.gotoAndStop(2);
}
public function RemoveButton(){
this.removeEventListener(MouseEvent.CLICK, OnClick);
this.removeEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.removeEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
MovieClip(parent).removeChild(this);
}
}
}//package
Section 27
//MenuMusic (MenuMusic)
package {
import flash.media.*;
public dynamic class MenuMusic extends Sound {
}
}//package
Section 28
//Mx7fButton (Mx7fButton)
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.external.*;
public class Mx7fButton extends MovieClip {
public function Mx7fButton(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){
this.x = _arg1;
this.y = _arg2;
this.height = _arg4;
this.width = _arg3;
this.addEventListener(MouseEvent.CLICK, OnClick);
this.gotoAndStop(1);
this.addEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
}
public function OnMouseOut(_arg1:MouseEvent){
this.gotoAndStop(1);
}
public function OnClick(_arg1:MouseEvent){
var url:String;
var strUserAgent:String;
var urlRequest:URLRequest;
var event = _arg1;
MovieClip(parent).playSound(MovieClip(parent).clickSound);
url = "http://www.mx7fgames.com";
if (ExternalInterface.available){
strUserAgent = "what?";
try {
strUserAgent = ExternalInterface.call("function() { return navigator.userAgent; }").toLowerCase();
} catch(error:Error) {
};
if (strUserAgent.indexOf("firefox") != -1){
ExternalInterface.call("window.open", url, "_blank");
} else {
urlRequest = new URLRequest(url);
navigateToURL(urlRequest, "_blank");
};
};
}
public function OnMouseOver(_arg1:MouseEvent){
this.gotoAndStop(2);
MovieClip(parent).playSound(MovieClip(parent).rolloverSound);
}
public function RemoveButton(){
this.removeEventListener(MouseEvent.CLICK, OnClick);
this.removeEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.removeEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
MovieClip(parent).removeChild(this);
}
}
}//package
Section 29
//NextButton (NextButton)
package {
import flash.display.*;
import flash.events.*;
public class NextButton extends MovieClip {
public function NextButton(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){
this.x = _arg1;
this.y = _arg2;
this.height = _arg4;
this.width = _arg3;
this.addEventListener(MouseEvent.CLICK, OnClick);
this.gotoAndStop(1);
this.addEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
}
public function OnMouseOut(_arg1:MouseEvent){
this.gotoAndStop(1);
}
public function OnClick(_arg1:MouseEvent){
MovieClip(parent).playSound(MovieClip(parent).clickSound);
MovieClip(parent).NextInstruction();
}
public function OnMouseOver(_arg1:MouseEvent){
this.gotoAndStop(2);
MovieClip(parent).playSound(MovieClip(parent).rolloverSound);
}
public function RemoveButton(){
this.removeEventListener(MouseEvent.CLICK, OnClick);
this.removeEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.removeEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
MovieClip(parent).removeChild(this);
}
}
}//package
Section 30
//NoButton (NoButton)
package {
import flash.display.*;
import flash.events.*;
public class NoButton extends MovieClip {
public function NoButton(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){
this.x = _arg1;
this.y = _arg2;
this.height = _arg4;
this.width = _arg3;
this.addEventListener(MouseEvent.CLICK, OnClick);
this.gotoAndStop(1);
this.addEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
}
public function OnMouseOut(_arg1:MouseEvent){
this.gotoAndStop(1);
}
public function OnClick(_arg1:MouseEvent){
MovieClip(parent).playSound(MovieClip(parent).clickSound);
MovieClip(parent).NoQuit();
}
public function OnMouseOver(_arg1:MouseEvent){
this.gotoAndStop(2);
MovieClip(parent).playSound(MovieClip(parent).rolloverSound);
}
public function RemoveButton(){
this.removeEventListener(MouseEvent.CLICK, OnClick);
this.removeEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.removeEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
MovieClip(parent).removeChild(this);
}
}
}//package
Section 31
//NotDopButton (NotDopButton)
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.external.*;
public class NotDopButton extends MovieClip {
public function NotDopButton(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){
this.x = _arg1;
this.y = _arg2;
this.height = _arg4;
this.width = _arg3;
this.addEventListener(MouseEvent.CLICK, OnClick);
this.gotoAndStop(1);
this.addEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
}
public function OnMouseOut(_arg1:MouseEvent){
this.gotoAndStop(1);
}
public function OnClick(_arg1:MouseEvent){
var url:String;
var strUserAgent:String;
var urlRequest:URLRequest;
var event = _arg1;
MovieClip(parent).playSound(MovieClip(parent).clickSound);
url = "http://www.notdoppler.com";
if (ExternalInterface.available){
strUserAgent = "what?";
try {
strUserAgent = ExternalInterface.call("function() { return navigator.userAgent; }").toLowerCase();
} catch(error:Error) {
};
if (strUserAgent.indexOf("firefox") != -1){
ExternalInterface.call("window.open", url, "_blank");
} else {
urlRequest = new URLRequest(url);
navigateToURL(urlRequest, "_blank");
};
};
}
public function OnMouseOver(_arg1:MouseEvent){
this.gotoAndStop(2);
MovieClip(parent).playSound(MovieClip(parent).rolloverSound);
}
public function RemoveButton(){
this.removeEventListener(MouseEvent.CLICK, OnClick);
this.removeEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.removeEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
MovieClip(parent).removeChild(this);
}
}
}//package
Section 32
//NotDoppler (NotDoppler)
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.external.*;
public class NotDoppler extends MovieClip {
public function NotDoppler(){
addFrameScript(185, frame186);
this.addEventListener(MouseEvent.CLICK, OnClick);
}
function frame186(){
stop();
}
public function Remove(){
this.removeEventListener(MouseEvent.CLICK, OnClick);
MovieClip(parent).removeChild(this);
}
public function OnClick(_arg1:MouseEvent){
var url:String;
var strUserAgent:String;
var urlRequest:URLRequest;
var event = _arg1;
url = "http://www.notdoppler.com";
if (ExternalInterface.available){
strUserAgent = "what?";
try {
strUserAgent = ExternalInterface.call("function() { return navigator.userAgent; }").toLowerCase();
} catch(error:Error) {
};
if (strUserAgent.indexOf("firefox") != -1){
ExternalInterface.call("window.open", url, "_blank");
} else {
urlRequest = new URLRequest(url);
navigateToURL(urlRequest, "_blank");
};
};
}
}
}//package
Section 33
//PlayButton (PlayButton)
package {
import flash.display.*;
import flash.events.*;
public class PlayButton extends MovieClip {
public function PlayButton(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){
this.x = _arg1;
this.y = _arg2;
this.height = _arg4;
this.width = _arg3;
this.addEventListener(MouseEvent.CLICK, OnClick);
this.gotoAndStop(1);
this.addEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
}
public function OnMouseOut(_arg1:MouseEvent){
this.gotoAndStop(1);
}
public function OnClick(_arg1:MouseEvent){
MovieClip(parent).playSound(MovieClip(parent).clickSound);
MovieClip(parent).PlayGame();
}
public function OnMouseOver(_arg1:MouseEvent){
this.gotoAndStop(2);
MovieClip(parent).playSound(MovieClip(parent).rolloverSound);
}
public function RemoveButton(){
this.removeEventListener(MouseEvent.CLICK, OnClick);
this.removeEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.removeEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
MovieClip(parent).removeChild(this);
}
}
}//package
Section 34
//PlayMoreGames (PlayMoreGames)
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.external.*;
public class PlayMoreGames extends MovieClip {
public function PlayMoreGames(){
this.addEventListener(MouseEvent.CLICK, OnClick);
this.gotoAndStop(1);
this.addEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
}
public function OnMouseOut(_arg1:MouseEvent){
this.gotoAndStop(1);
}
public function Remove(){
this.removeEventListener(MouseEvent.CLICK, OnClick);
this.removeEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.removeEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
MovieClip(parent).removeChild(this);
}
public function OnClick(_arg1:MouseEvent){
var url:String;
var strUserAgent:String;
var urlRequest:URLRequest;
var event = _arg1;
url = "http://www.notdoppler.com";
if (ExternalInterface.available){
strUserAgent = "what?";
try {
strUserAgent = ExternalInterface.call("function() { return navigator.userAgent; }").toLowerCase();
} catch(error:Error) {
};
if (strUserAgent.indexOf("firefox") != -1){
ExternalInterface.call("window.open", url, "_blank");
} else {
urlRequest = new URLRequest(url);
navigateToURL(urlRequest, "_blank");
};
};
}
public function OnMouseOver(_arg1:MouseEvent){
this.gotoAndStop(2);
if (!MovieClip(parent).gameStart){
MovieClip(parent).playSound(MovieClip(parent).rolloverSound);
};
}
}
}//package
Section 35
//ResetButton (ResetButton)
package {
import flash.display.*;
import flash.events.*;
public class ResetButton extends MovieClip {
public function ResetButton(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){
this.x = _arg1;
this.y = _arg2;
this.height = _arg4;
this.width = _arg3;
this.addEventListener(MouseEvent.CLICK, OnClick);
this.gotoAndStop(1);
this.addEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
}
public function OnMouseOut(_arg1:MouseEvent){
this.gotoAndStop(1);
}
public function OnClick(_arg1:MouseEvent){
MovieClip(parent).playSound(MovieClip(parent).clickSound);
MovieClip(parent).ClearSpheres();
MovieClip(parent).SetSphereCounter();
}
public function OnMouseOver(_arg1:MouseEvent){
this.gotoAndStop(2);
MovieClip(parent).playSound(MovieClip(parent).rolloverSound);
}
public function RemoveButton(){
this.removeEventListener(MouseEvent.CLICK, OnClick);
this.removeEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.removeEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
MovieClip(parent).removeChild(this);
}
}
}//package
Section 36
//RetryButton (RetryButton)
package {
import flash.display.*;
import flash.events.*;
public class RetryButton extends MovieClip {
public function RetryButton(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){
this.x = _arg1;
this.y = _arg2;
this.height = _arg4;
this.width = _arg3;
this.addEventListener(MouseEvent.CLICK, OnClick);
this.gotoAndStop(1);
this.addEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
}
public function OnMouseOut(_arg1:MouseEvent){
this.gotoAndStop(1);
}
public function OnClick(_arg1:MouseEvent){
MovieClip(parent).playSound(MovieClip(parent).clickSound);
MovieClip(parent).ResetLevel();
}
public function OnMouseOver(_arg1:MouseEvent){
this.gotoAndStop(2);
}
public function RemoveButton(){
this.removeEventListener(MouseEvent.CLICK, OnClick);
this.removeEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.removeEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
MovieClip(parent).removeChild(this);
}
}
}//package
Section 37
//ReturnButton (ReturnButton)
package {
import flash.display.*;
import flash.events.*;
public class ReturnButton extends MovieClip {
public function ReturnButton(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){
this.x = _arg1;
this.y = _arg2;
this.height = _arg4;
this.width = _arg3;
this.addEventListener(MouseEvent.CLICK, OnClick);
this.gotoAndStop(1);
this.addEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
}
public function OnMouseOut(_arg1:MouseEvent){
this.gotoAndStop(1);
}
public function OnClick(_arg1:MouseEvent){
MovieClip(parent).playSound(MovieClip(parent).clickSound);
MovieClip(parent).ReturnButtonPress();
}
public function OnMouseOver(_arg1:MouseEvent){
this.gotoAndStop(2);
MovieClip(parent).playSound(MovieClip(parent).rolloverSound);
}
public function RemoveButton(){
this.removeEventListener(MouseEvent.CLICK, OnClick);
this.removeEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.removeEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
MovieClip(parent).removeChild(this);
}
}
}//package
Section 38
//RolloverSound (RolloverSound)
package {
import flash.media.*;
public dynamic class RolloverSound extends Sound {
}
}//package
Section 39
//StartLevelButton (StartLevelButton)
package {
import flash.display.*;
import flash.events.*;
public class StartLevelButton extends MovieClip {
public function StartLevelButton(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){
this.x = _arg1;
this.y = _arg2;
this.height = _arg4;
this.width = _arg3;
this.addEventListener(MouseEvent.CLICK, OnClick);
this.gotoAndStop(1);
this.addEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
}
public function OnMouseOut(_arg1:MouseEvent){
this.gotoAndStop(1);
}
public function OnClick(_arg1:MouseEvent){
MovieClip(parent).playSound(MovieClip(parent).clickSound);
MovieClip(parent).StartLevel();
}
public function OnMouseOver(_arg1:MouseEvent){
this.gotoAndStop(2);
}
public function RemoveButton(){
this.removeEventListener(MouseEvent.CLICK, OnClick);
this.removeEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.removeEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
MovieClip(parent).removeChild(this);
}
}
}//package
Section 40
//Symbol2 (Symbol2)
package {
import flash.display.*;
public dynamic class Symbol2 extends MovieClip {
}
}//package
Section 41
//TractorSpheres (TractorSpheres)
package {
import flash.display.*;
import flash.events.*;
import CPMStar.*;
import flash.media.*;
import flash.text.*;
import flash.net.*;
import flash.external.*;
import flash.utils.*;
public dynamic class TractorSpheres extends MovieClip {
public var notDop300But:MovieClip;
var menuMusic:MenuMusic;
var summaryLine10Left:TextField;
public var unplaced:Boolean;
var blackingIn:Boolean;// = false
var newTS:TSphere;
var summaryLine5Right:TextField;
public var ad:DisplayObject;
var instructionNum:int;// = 1
var xtraTries:int;// = 0
var rightTotalTextFormat:TextFormat;
var currentMusic:Object;
public var percent:TextField;
var finalButton:FinalButton;
var xCat:Number;
var summaryLine7Left:TextField;
var nextSec:int;// = 1
var clickSound:ClickSound;
var grayBox:GrayBox;
public var moreGames:PlayMoreGames;
var yVelocity:Number;// = 0
var theFakeTS:FakeTSphere;
var precision:int;
var vScreen:VictoryScreen;
var radius:int;
var xDistance:Number;
var isBouncing:Boolean;// = false
var yCat:Number;
var level10:LevelData;
var level11:LevelData;
var level12:LevelData;
var level13:LevelData;
var level14:LevelData;
var level15:LevelData;
var level16:LevelData;
var level18:LevelData;
var level19:LevelData;
var playMore:PlayMoreGames;
var level17:LevelData;
var theStartLevelButton:StartLevelButton;
var rolloverSound:RolloverSound;
var noTouchBonus:int;
var level20:LevelData;
var level21:LevelData;
var level22:LevelData;
public var CPMStarSubPoolID:int;
var level24:LevelData;
var level25:LevelData;
public var CPMStarPoolID:int;
var level23:LevelData;
var summaryLine6Right:TextField;
var theMenuButton:MenuButton;
var velocity:Number;
var summaryLine6Left:TextField;
var theInstructionButton:InstructionButton;
var xAcceleration:Number;
var gameTextFormat:TextFormat;
var theMx7fButton:Mx7fButton;
var level1:LevelData;
var level2:LevelData;
var level3:LevelData;
var level4:LevelData;
var level5:LevelData;
var level6:LevelData;
var level7:LevelData;
var level8:LevelData;
public var adButton:MovieClip;
var level9:LevelData;
var leftYellowTextFormat:TextFormat;
var summaryLine10Right:TextField;
var levelArray:Array;
public var loadBar:MovieClip;
var gameMusic:GameMusic;
var blackScreen:BlackOut;
var rightYellowTextFormat:TextFormat;
var summaryLine7Right:TextField;
var timeBonus:int;
var summaryLine5Left:TextField;
var muted:Boolean;// = false
var isRunning:Boolean;// = false
var notFrames:int;// = 0
var xVelocity:Number;// = 0
var notDop:NotDoppler;
var boundingCircleRadius:Number;
var quitScore:TextField;
var theFakeReset:FakeResetButton;
var currentLevel:LevelData;
var theLevel:Walls;
var timeText:TextField;
var timePassed:int;
var theContinueButton:ContinueButton;
var placingSpheres:Boolean;// = false
var expandClock:int;// = 0
var ballColl:Number;
var timeRemaining:Number;
var soundChannel:SoundChannel;
var soundMuted:Boolean;// = false
var goalSound:GoalSound;
var quitting:Boolean;// = false
var currentTS:TSphere;
var scoreDisplay:TextField;
var TSCount:TextField;
var summaryLine4Left:TextField;
var titleImage:TractorSpheresTitle;
var priorScore:int;
var summaryLine8Right:TextField;
var currentX:Number;
var currentY:Number;
var scoreSummaryTitle:TextField;
var ballDir:Number;
var theBall:Ball;
var victory:Boolean;// = false
var finalTSNumber:Number;
var levelTotal:int;
var groundRotation:Number;
var levelTextFormat:TextFormat;
var instruct1:Instructions1;
var instruct2:Instructions2;
var mouseInSpheres:Boolean;
var summaryLine2Right:TextField;
var spotYSphere:Number;
var levelInfo:TextField;
var theNotDopButton:NotDopButton;
var instruct3:Instructions3;
var summaryLine3Left:TextField;
var whitingIn:Boolean;// = false
var leftOrangeTextFormat:TextFormat;
var instruct4:Instructions4;
var lastTime:int;
var accMagnitude:Number;
var rightOrangeTextFormat:TextFormat;
var score:int;// = 0
var expandSound:ExpandSound;
var summaryLine9Right:TextField;
var theta:Number;
var centerX:Number;
public var adBox:MovieClip;
var centerY:Number;
var TSNumber:int;
var subtotalTwo:int;
var subtotalOne:int;
var rightTextFormat:TextFormat;
var theRetryButton:RetryButton;
var finalScore:TextField;
var thePlayButton:PlayButton;
var xtraTryPenalty:int;
var leftTotalTextFormat:TextFormat;
var menuBack:MenuBackdrop;
var summaryLine2Left:TextField;
var summaryLine3Right:TextField;
var spotXSphere:Number;
var expanding:Boolean;// = false
var tracSpheres:Array;
var musicChannel:SoundChannel;
var currentTSNumber:Number;// = 0
var theGoal:Goal;
var bounceAngle:Number;
var victoryMusic:VictoryMusic;
public var fake:MovieClip;
var theNextButton:NextButton;
var totalDistance:Number;
var theReset:ResetButton;
var quitQuestion:TextField;
var summaryLine9Left:TextField;
var bounceSound:BounceSound;
var unusedSphereMultiplier:Number;// = 1
var instructGoal:Goal;
var sumY:Number;
var sphereDiameter:Number;
var sumX:Number;
var collisions:int;
var summaryLine4Right:TextField;
var yDistance:Number;
var theYesButton:YesButton;
var gameStart:Boolean;// = true
var theReturnButton:ReturnButton;
var spotY:Number;
var tries:int;// = 0
var spotX:Number;
var yAcceleration:Number;
var theNoButton:NoButton;
var summaryLine8Left:TextField;
var levelNumber:uint;// = 1
public static const LEVEL_TEXT_X:int = 100;
public static const ACC_COEFF_MULTIPLIER:Number = 0.00075;
public static const LEVEL_TEXT_Y:int = 15;
public static const MENU_SPACE:int = 65;
public static const TITLE_X:int = 25;
public static const TITLE_Y:int = 43;
public static const TITLE_GOAL_Y = (TITLE_Y + 35);
public static const TITLE_GOAL_X = (TITLE_X + 240);
public static const SUMMARY_LINE_3_Y:Number = (SUMMARY_LINE_2_Y + LINE_SEPARATION);
public static const NEXT_Y:int = 500;
public static const SUMMARY_LINE_7_Y:Number = (SUMMARY_LINE_6_Y + LINE_SEPARATION);
public static const MAX_DIAMETER:int = 100;
public static const NEXT_X:int = Math.round(((700 - NEXT_WIDTH) / 2));
public static const PLAY_BUT_X:int = ((700 - PLAY_BUT_WIDTH) / 2);
public static const PLAY_BUT_Y:int = 235;
public static const WALL_SPACE:int = 3;
public static const YES_WIDTH:int = 130;
public static const SUMMARY_LINE_10_Y:Number = (SUMMARY_LINE_9_Y + LINE_SEPARATION);
public static const GAME_BUTTON_HEIGHT:int = 34;
public static const RESET_X:int = 670;
public static const RESET_Y:int = 15;
public static const SCORE_SUMMARY_X:int = 75;
public static const LEVEL_COMPLETION_BONUS:int = 40;
public static const FIRST_BUTTON_X:int = 453;
public static const CONTINUE_BUT_HEIGHT:int = 45;
public static const PRECISION:int = 90;
public static const SUMMARY_LINE_2_Y:Number = (SUMMARY_LINE_1_Y + (LINE_SEPARATION * 1.5));
public static const CONTINUE_BUT_Y:int = 485;
public static const SUMMARY_LINE_6_Y:Number = (SUMMARY_LINE_5_Y + LINE_SEPARATION);
public static const CONTINUE_BUT_X:int = 225;
public static const LINE_SEPARATION:int = 40;
public static const TITLE_GOAL_DIAMETER = 60;
public static const SPHERE_TEXT_X:int = 13;
public static const NEXT_WIDTH:int = 235;
public static const TIME_TEXT_X:int = 193;
public static const PENALTY_PER_TRY:int = 5;
public static const GAME_BUTTON_WIDTH:int = 121;
public static const MAX_VELOCITY:int = 9;
public static const INSTRUCT_BUT_WIDTH:int = PLAY_BUT_WIDTH;
public static const BUTTON_Y:int = 532;
public static const RADIUS:Number = 5.5;
public static const POINTS_PER_SEC:int = 1;
public static const FRAME_RATE:int = 30;
public static const BUTTON_SEPARATION_FACTOR:int = 20;
public static const SUMMARY_LINE_5_Y:Number = (SUMMARY_LINE_4_Y + LINE_SEPARATION);
public static const YES_HEIGHT:int = 40;
public static const SUMMARY_LINE_1_Y:Number = 50;
public static const SUMMARY_LINE_9_Y:Number = (SUMMARY_LINE_8_Y + (LINE_SEPARATION * 1.25));
public static const SCORE_SUMMARY_WIDTH:int = 550;
public static const RESET_DIAMETER = 25;
public static const CONTINUE_BUT_WIDTH:int = 250;
public static const INSTRUCT_BUT_X:int = PLAY_BUT_X;
public static const INSTRUCT_BUT_Y:int = (PLAY_BUT_Y + MENU_SPACE);
public static const PLAY_BUT_HEIGHT:int = 45;
public static const GAME_TEXT_Y:int = 535;
public static const NO_X:int = Math.round(((700 / 2) + BUTTON_SEPARATION_FACTOR));
public static const SCORE_X:int = 300;
public static const LEVEL_TEXT_WIDTH:int = 500;
public static const SUMMARY_LINE_4_Y:Number = (SUMMARY_LINE_3_Y + LINE_SEPARATION);
public static const SUMMARY_LINE_8_Y:Number = (SUMMARY_LINE_7_Y + LINE_SEPARATION);
public static const YES_Y:int = 300;
public static const YES_X:int = Math.round((((700 / 2) - BUTTON_SEPARATION_FACTOR) - YES_WIDTH));
public static const INSTRUCT_BUT_HEIGHT:int = 45;
public static const NEXT_HEIGHT:int = 40;
public static const SECOND_BUTTON_X:int = ((FIRST_BUTTON_X + GAME_BUTTON_WIDTH) + 2);
public static const PLAY_BUT_WIDTH:int = Math.round((PLAY_BUT_HEIGHT * 6));
public function TractorSpheres(){
level1 = new LevelData(1, 150, 280, 1, 10, 520, 280, 100, "Straight Shot");
level2 = new LevelData(2, 150, 140, 3, 20, 560, 430, 100, "Center Square");
level3 = new LevelData(3, 150, 150, 3, 30, 610, 150, 100, "'X'-it, Stage Right");
level4 = new LevelData(4, 200, 150, 3, 30, 560, 200, 100, "The 'U'-niverse");
level5 = new LevelData(5, 335, 100, 4, 40, 353, 450, 100, "Angry Bird?");
level6 = new LevelData(6, 24, 241, 2, 30, 482, 487, 50, "Teed Off");
level7 = new LevelData(7, 200, 150, 4, 50, 610, 470, 100, "Starstruck");
level8 = new LevelData(8, 50, 150, 4, 40, 640, 380, 100, "The Straight and Narrow");
level9 = new LevelData(9, 37, 303, 7, 40, 585, 277, 100, "Some Narrow Passes");
level10 = new LevelData(10, 20, 135, 7, 50, 620, 420, 60, "Polka Dot Hell");
level11 = new LevelData(11, 200, 150, 2, 10, 560, 200, 100, "The 'U'-niverse, Revisited");
level12 = new LevelData(12, 658, 83, 7, 50, 462, 336, 100, "Simple Spiral");
level13 = new LevelData(13, 150, 140, 3, 20, 560, 430, 100, "Invisible Center Square");
level14 = new LevelData(14, 653, 209, 7, 40, 144, 105, 100, "Mess of Smilies");
level15 = new LevelData(15, 570, 443, 7, 50, 166, 412, 85, "Bubbly");
level16 = new LevelData(16, 78, 118, 7, 40, 532, 382, 65, "Squares Everywhere");
level17 = new LevelData(17, 78, 489, 9, 50, 625, 100, 90, "Downright Slanted");
level18 = new LevelData(18, 76, 369, 9, 60, 489, 396, 55, "Namesake");
level19 = new LevelData(19, 605, 479, 7, 30, 477, 451, 40, "'Q'");
level20 = new LevelData(20, 638, 172, 7, 50, 85, 400, 60, "A Long, Winding Path");
level21 = new LevelData(21, 128, 194, 7, 50, 342, 470, 60, "Thunder Strike");
level22 = new LevelData(22, 662, 70, 10, 50, 104, 461, 80, "The Level of Modern Art");
level23 = new LevelData(23, 39, 479, 12, 60, 612, 134, 100, "Some More Narrow Passes");
level24 = new LevelData(24, 668, 75, 15, 99, 340, 291, 80, "Not-So-Simple Spiral");
level25 = new LevelData(25, 125, 220, 7, 40, 534, 84, 60, "'25'");
levelArray = new Array(level1, level2, level3, level4, level5, level6, level7, level8, level9, level10, level11, level12, level13, level14, level15, level16, level17, level18, level19, level20, level21, level22, level23, level24, level25);
levelNumber = 1;
expanding = false;
placingSpheres = false;
isRunning = false;
tracSpheres = new Array();
currentTSNumber = 0;
nextSec = 1;
score = 0;
unusedSphereMultiplier = 1;
tries = 0;
xtraTries = 0;
xVelocity = 0;
yVelocity = 0;
blackingIn = false;
whitingIn = false;
isBouncing = false;
instructionNum = 1;
victory = false;
gameStart = true;
quitting = false;
muted = false;
soundMuted = false;
expandClock = 0;
notFrames = 0;
super();
addFrameScript(0, frame1, 1, frame2, 3, frame4);
}
public function DetectOthers(){
var _local1:int;
TSNumber = (tracSpheres.length - 1);
while (TSNumber >= 0) {
boundingCircleRadius = ((tracSpheres[TSNumber].width + WALL_SPACE) / 2);
precision = PRECISION;
_local1 = 1;
while (_local1 < precision) {
spotXSphere = (tracSpheres[TSNumber].x + (boundingCircleRadius * Math.sin(((_local1 * 360) / precision))));
spotYSphere = (tracSpheres[TSNumber].y - (boundingCircleRadius * Math.cos(((_local1 * 360) / precision))));
if (newTS.hitTestPoint(spotXSphere, spotYSphere, true)){
expanding = false;
soundChannel.stop();
expandClock = 0;
};
_local1++;
};
TSNumber--;
};
}
public function loader(_arg1:Event){
var _local2:Number;
fake.rotation = (fake.rotation + 20);
_local2 = ((root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal) * 100);
this.percent.text = (Math.round(_local2).toString() + "%");
this.loadBar.width = (Math.round(_local2) * 3);
if (_local2 > 99){
adButton.x = 250;
};
}
public function CheckGoal(){
if (theBall.hitTestObject(theGoal)){
if ((((theBall.x - theGoal.x) * (theBall.x - theGoal.x)) + ((theBall.y - theGoal.y) * (theBall.y - theGoal.y))) <= ((theGoal.width * 0.35) * (theGoal.width * 0.35))){
playSound(goalSound);
EndLevel();
BlackIn();
};
};
}
public function NextLevel(){
if (levelNumber < 25){
currentLevel = levelArray[levelNumber];
levelNumber++;
tries = 0;
theLevel.gotoAndStop(levelNumber);
SetLevelInfo();
SetUpLevel();
SetScoreDisplay();
Retry2Start();
CreateReset();
} else {
Victory();
};
}
public function SetTimer(){
timeText.text = ("Time: " + timeRemaining);
}
public function SetLevelInfo(){
levelInfo.text = ((("Level: " + currentLevel.levelNumber) + " -- ") + currentLevel.levelName);
}
public function NotDopWaiting(_arg1:Event){
notFrames++;
if (notFrames >= 185){
this.removeEventListener(Event.ENTER_FRAME, NotDopWaiting);
notDop.Remove();
StartTractorSpheres();
};
}
public function StartLevel(){
isRunning = true;
placingSpheres = false;
tries++;
Start2Retry();
theReset.RemoveButton();
theReset = null;
}
public function VScreen(){
var _local1:*;
victoryMusic = new VictoryMusic();
currentMusic = victoryMusic;
playMusic(currentMusic);
_local1 = new TextFormat("Copperplate", 85);
_local1.color = 0xFFFFFF;
_local1.align = TextFormatAlign.CENTER;
vScreen = new VictoryScreen();
vScreen.x = 15;
vScreen.y = 15;
vScreen.width = 670;
vScreen.height = 550;
addChild(vScreen);
finalScore = new TextField();
finalScore.x = 100;
finalScore.width = (700 - (finalScore.x * 2));
finalScore.y = 270;
finalScore.selectable = false;
finalScore.defaultTextFormat = _local1;
finalScore.text = ("" + score);
addChild(finalScore);
finalButton = new FinalButton(CONTINUE_BUT_X, (CONTINUE_BUT_Y + 15), CONTINUE_BUT_WIDTH, CONTINUE_BUT_HEIGHT);
addChild(finalButton);
}
public function Timing(){
nextSec++;
if (nextSec >= FRAME_RATE){
nextSec = 1;
TimeDecrease();
};
}
function frame1(){
stop();
CPMStarPoolID = 1377;
CPMStarSubPoolID = 301;
unplaced = true;
if (unplaced){
ad = AdLoader.LoadAd(CPMStarPoolID, CPMStarSubPoolID);
adBox.addChild(ad);
unplaced = false;
moreGames = new PlayMoreGames();
addChild(moreGames);
moreGames.x = 550;
moreGames.y = 530;
};
addEventListener(Event.ENTER_FRAME, loader);
}
public function SetSphereCounter(){
TSCount.text = ((("Spheres: " + currentTSNumber) + "/") + currentLevel.TSMax);
}
function frame2(){
gotoAndPlay(1);
}
function frame4(){
stop();
NotDopplerIntro();
}
public function DetectGoal(){
var _local1:int;
boundingCircleRadius = ((theGoal.width * 0.7) / 2);
precision = PRECISION;
_local1 = 1;
while (_local1 < precision) {
spotXSphere = (theGoal.x + (boundingCircleRadius * Math.sin(((_local1 * 360) / precision))));
spotYSphere = (theGoal.y - (boundingCircleRadius * Math.cos(((_local1 * 360) / precision))));
if (newTS.hitTestPoint(spotXSphere, spotYSphere, true)){
expanding = false;
soundChannel.stop();
expandClock = 0;
};
_local1++;
};
}
public function Start2Retry(){
theStartLevelButton.RemoveButton();
theStartLevelButton = null;
theRetryButton = new RetryButton(FIRST_BUTTON_X, BUTTON_Y, GAME_BUTTON_WIDTH, GAME_BUTTON_HEIGHT);
addChild(theRetryButton);
}
public function NewNext(){
theNextButton = new NextButton(NEXT_X, NEXT_Y, NEXT_WIDTH, NEXT_HEIGHT);
addChild(theNextButton);
}
public function InstructionStart(){
instruct1 = new Instructions1();
addChild(instruct1);
instructionNum = 1;
instructGoal = new Goal(580, 200, 80);
addChild(instructGoal);
NewNext();
theFakeTS = new FakeTSphere();
theFakeTS.x = 580;
theFakeTS.y = 420;
addChild(theFakeTS);
}
public function Expansion(){
sphereDiameter = (sphereDiameter + 1);
newTS.width = sphereDiameter;
newTS.height = sphereDiameter;
if (sphereDiameter > MAX_DIAMETER){
expanding = false;
soundChannel.stop();
expandClock = 0;
};
}
public function SetDashboard(){
theStartLevelButton = new StartLevelButton(FIRST_BUTTON_X, BUTTON_Y, GAME_BUTTON_WIDTH, GAME_BUTTON_HEIGHT);
theMenuButton = new MenuButton(SECOND_BUTTON_X, BUTTON_Y, GAME_BUTTON_WIDTH, GAME_BUTTON_HEIGHT);
addChild(theStartLevelButton);
addChild(theMenuButton);
CreateReset();
gameTextFormat = new TextFormat("Copperplate", 24);
gameTextFormat.color = 0xFFFFFF;
leftTotalTextFormat = new TextFormat("Copperplate", 24);
leftTotalTextFormat.color = 0xFF0000;
leftTotalTextFormat.bold = true;
leftOrangeTextFormat = new TextFormat("Copperplate", 24);
leftOrangeTextFormat.color = 0xFFAA00;
leftOrangeTextFormat.bold = true;
leftYellowTextFormat = new TextFormat("Copperplate", 24);
leftYellowTextFormat.color = 16777045;
leftYellowTextFormat.bold = true;
rightTextFormat = new TextFormat("Copperplate", 24);
rightTextFormat.color = 0xFFFFFF;
rightTextFormat.align = TextFormatAlign.RIGHT;
rightTotalTextFormat = new TextFormat("Copperplate", 24);
rightTotalTextFormat.color = 0xFF0000;
rightTotalTextFormat.bold = true;
rightTotalTextFormat.align = TextFormatAlign.RIGHT;
rightOrangeTextFormat = new TextFormat("Copperplate", 24);
rightOrangeTextFormat.color = 0xFFAA00;
rightOrangeTextFormat.bold = true;
rightOrangeTextFormat.align = TextFormatAlign.RIGHT;
rightYellowTextFormat = new TextFormat("Copperplate", 24);
rightYellowTextFormat.color = 16777045;
rightYellowTextFormat.bold = true;
rightYellowTextFormat.align = TextFormatAlign.RIGHT;
TSCount = new TextField();
TSCount.defaultTextFormat = gameTextFormat;
TSCount.text = "Spheres:";
TSCount.selectable = false;
TSCount.x = SPHERE_TEXT_X;
TSCount.y = GAME_TEXT_Y;
TSCount.width = 200;
addChild(TSCount);
timeText = new TextField();
timeText.defaultTextFormat = gameTextFormat;
timeText.text = "Time: ";
timeText.selectable = false;
timeText.x = TIME_TEXT_X;
timeText.y = GAME_TEXT_Y;
timeText.width = 200;
addChild(timeText);
scoreDisplay = new TextField();
scoreDisplay.defaultTextFormat = gameTextFormat;
scoreDisplay.text = "Score:";
scoreDisplay.selectable = false;
scoreDisplay.x = SCORE_X;
scoreDisplay.y = GAME_TEXT_Y;
scoreDisplay.width = 150;
addChild(scoreDisplay);
}
public function Darkening(){
if ((((((blackScreen.alpha < 0.8)) && (!(victory)))) || ((((blackScreen.alpha < 1)) && (victory))))){
blackScreen.alpha = (blackScreen.alpha + 0.04);
} else {
blackingIn = false;
if (victory){
victory = false;
RemoveEverything();
VScreen();
} else {
ScoreSummary();
};
};
}
public function ScoreSummary(){
CalculateLevelScore();
scoreSummaryTitle = new TextField();
scoreSummaryTitle.x = SCORE_SUMMARY_X;
scoreSummaryTitle.width = SCORE_SUMMARY_WIDTH;
scoreSummaryTitle.y = SUMMARY_LINE_1_Y;
scoreSummaryTitle.selectable = false;
scoreSummaryTitle.defaultTextFormat = levelTextFormat;
summaryLine2Left = new TextField();
summaryLine2Left.x = SCORE_SUMMARY_X;
summaryLine2Left.width = SCORE_SUMMARY_WIDTH;
summaryLine2Left.y = SUMMARY_LINE_2_Y;
summaryLine2Left.selectable = false;
summaryLine2Left.defaultTextFormat = gameTextFormat;
summaryLine3Left = new TextField();
summaryLine3Left.x = SCORE_SUMMARY_X;
summaryLine3Left.width = SCORE_SUMMARY_WIDTH;
summaryLine3Left.y = SUMMARY_LINE_3_Y;
summaryLine3Left.selectable = false;
summaryLine3Left.defaultTextFormat = gameTextFormat;
summaryLine4Left = new TextField();
summaryLine4Left.x = SCORE_SUMMARY_X;
summaryLine4Left.width = SCORE_SUMMARY_WIDTH;
summaryLine4Left.y = SUMMARY_LINE_4_Y;
summaryLine4Left.selectable = false;
summaryLine4Left.defaultTextFormat = leftYellowTextFormat;
summaryLine5Left = new TextField();
summaryLine5Left.x = SCORE_SUMMARY_X;
summaryLine5Left.width = SCORE_SUMMARY_WIDTH;
summaryLine5Left.y = SUMMARY_LINE_5_Y;
summaryLine5Left.selectable = false;
summaryLine5Left.defaultTextFormat = gameTextFormat;
summaryLine6Left = new TextField();
summaryLine6Left.x = SCORE_SUMMARY_X;
summaryLine6Left.width = SCORE_SUMMARY_WIDTH;
summaryLine6Left.y = SUMMARY_LINE_6_Y;
summaryLine6Left.selectable = false;
summaryLine6Left.defaultTextFormat = leftYellowTextFormat;
summaryLine7Left = new TextField();
summaryLine7Left.x = SCORE_SUMMARY_X;
summaryLine7Left.width = SCORE_SUMMARY_WIDTH;
summaryLine7Left.y = SUMMARY_LINE_7_Y;
summaryLine7Left.selectable = false;
summaryLine7Left.defaultTextFormat = gameTextFormat;
summaryLine8Left = new TextField();
summaryLine8Left.x = SCORE_SUMMARY_X;
summaryLine8Left.width = SCORE_SUMMARY_WIDTH;
summaryLine8Left.y = SUMMARY_LINE_8_Y;
summaryLine8Left.selectable = false;
summaryLine8Left.defaultTextFormat = leftOrangeTextFormat;
summaryLine9Left = new TextField();
summaryLine9Left.x = SCORE_SUMMARY_X;
summaryLine9Left.width = SCORE_SUMMARY_WIDTH;
summaryLine9Left.y = SUMMARY_LINE_9_Y;
summaryLine9Left.selectable = false;
summaryLine9Left.defaultTextFormat = gameTextFormat;
summaryLine10Left = new TextField();
summaryLine10Left.x = SCORE_SUMMARY_X;
summaryLine10Left.width = SCORE_SUMMARY_WIDTH;
summaryLine10Left.y = SUMMARY_LINE_10_Y;
summaryLine10Left.selectable = false;
summaryLine10Left.defaultTextFormat = leftTotalTextFormat;
summaryLine2Right = new TextField();
summaryLine2Right.x = SCORE_SUMMARY_X;
summaryLine2Right.width = SCORE_SUMMARY_WIDTH;
summaryLine2Right.y = SUMMARY_LINE_2_Y;
summaryLine2Right.selectable = false;
summaryLine2Right.defaultTextFormat = rightTextFormat;
summaryLine3Right = new TextField();
summaryLine3Right.x = SCORE_SUMMARY_X;
summaryLine3Right.width = SCORE_SUMMARY_WIDTH;
summaryLine3Right.y = SUMMARY_LINE_3_Y;
summaryLine3Right.selectable = false;
summaryLine3Right.defaultTextFormat = rightTextFormat;
summaryLine4Right = new TextField();
summaryLine4Right.x = SCORE_SUMMARY_X;
summaryLine4Right.width = SCORE_SUMMARY_WIDTH;
summaryLine4Right.y = SUMMARY_LINE_4_Y;
summaryLine4Right.selectable = false;
summaryLine4Right.defaultTextFormat = rightYellowTextFormat;
summaryLine5Right = new TextField();
summaryLine5Right.x = SCORE_SUMMARY_X;
summaryLine5Right.width = SCORE_SUMMARY_WIDTH;
summaryLine5Right.y = SUMMARY_LINE_5_Y;
summaryLine5Right.selectable = false;
summaryLine5Right.defaultTextFormat = rightTextFormat;
summaryLine6Right = new TextField();
summaryLine6Right.x = SCORE_SUMMARY_X;
summaryLine6Right.width = SCORE_SUMMARY_WIDTH;
summaryLine6Right.y = SUMMARY_LINE_6_Y;
summaryLine6Right.selectable = false;
summaryLine6Right.defaultTextFormat = rightYellowTextFormat;
summaryLine7Right = new TextField();
summaryLine7Right.x = SCORE_SUMMARY_X;
summaryLine7Right.width = SCORE_SUMMARY_WIDTH;
summaryLine7Right.y = SUMMARY_LINE_7_Y;
summaryLine7Right.selectable = false;
summaryLine7Right.defaultTextFormat = rightTextFormat;
summaryLine8Right = new TextField();
summaryLine8Right.x = SCORE_SUMMARY_X;
summaryLine8Right.width = SCORE_SUMMARY_WIDTH;
summaryLine8Right.y = SUMMARY_LINE_8_Y;
summaryLine8Right.selectable = false;
summaryLine8Right.defaultTextFormat = rightOrangeTextFormat;
summaryLine9Right = new TextField();
summaryLine9Right.x = SCORE_SUMMARY_X;
summaryLine9Right.width = SCORE_SUMMARY_WIDTH;
summaryLine9Right.y = SUMMARY_LINE_9_Y;
summaryLine9Right.selectable = false;
summaryLine9Right.defaultTextFormat = rightTextFormat;
summaryLine10Right = new TextField();
summaryLine10Right.x = SCORE_SUMMARY_X;
summaryLine10Right.width = SCORE_SUMMARY_WIDTH;
summaryLine10Right.y = SUMMARY_LINE_10_Y;
summaryLine10Right.selectable = false;
summaryLine10Right.defaultTextFormat = rightTotalTextFormat;
scoreSummaryTitle.text = (("" + currentLevel.levelName) + " Score Summary");
summaryLine2Left.text = "Level Completion Bonus";
summaryLine3Left.text = "Time Bonus";
summaryLine4Left.text = "Subtotal #1";
summaryLine5Left.text = "Unused Sphere Multiplier";
summaryLine6Left.text = "Subtotal #2";
summaryLine7Left.text = "Extra Try Penalty";
summaryLine8Left.text = "Level Total";
summaryLine9Left.text = "Previous Score";
summaryLine10Left.text = "Current Score";
summaryLine2Right.text = ("" + LEVEL_COMPLETION_BONUS);
summaryLine3Right.text = ("+ " + timeBonus);
summaryLine4Right.text = ("" + subtotalOne);
summaryLine5Right.text = ("x" + unusedSphereMultiplier);
summaryLine6Right.text = ("" + subtotalTwo);
summaryLine7Right.text = ("-" + xtraTryPenalty);
summaryLine8Right.text = ("" + levelTotal);
summaryLine9Right.text = ("+" + priorScore);
summaryLine10Right.text = ("" + score);
addChild(scoreSummaryTitle);
addChild(summaryLine2Left);
addChild(summaryLine3Left);
addChild(summaryLine4Left);
addChild(summaryLine5Left);
addChild(summaryLine6Left);
addChild(summaryLine7Left);
addChild(summaryLine8Left);
addChild(summaryLine9Left);
addChild(summaryLine10Left);
addChild(summaryLine2Right);
addChild(summaryLine3Right);
addChild(summaryLine4Right);
addChild(summaryLine5Right);
addChild(summaryLine6Right);
addChild(summaryLine7Right);
addChild(summaryLine8Right);
addChild(summaryLine9Right);
addChild(summaryLine10Right);
theContinueButton = new ContinueButton(CONTINUE_BUT_X, CONTINUE_BUT_Y, CONTINUE_BUT_WIDTH, CONTINUE_BUT_HEIGHT);
addChild(theContinueButton);
}
public function ReturnButtonPress(){
removeChild(instruct4);
theReturnButton.RemoveButton();
}
public function Movement(){
if (isRunning){
currentX = theBall.x;
currentY = theBall.y;
isBouncing = false;
MoveBall();
DetectWalls();
if (isRunning){
TSNumber = (tracSpheres.length - 1);
while (TSNumber >= 0) {
if (((LineOfSight(tracSpheres[TSNumber].x, theBall.x, tracSpheres[TSNumber].y, theBall.y, 10)) && (!(isBouncing)))){
Influence();
};
TSNumber--;
};
theBall.x = currentX;
theBall.y = currentY;
};
};
}
public function Continue(){
removeChild(scoreSummaryTitle);
removeChild(summaryLine2Left);
removeChild(summaryLine3Left);
removeChild(summaryLine4Left);
removeChild(summaryLine5Left);
removeChild(summaryLine6Left);
removeChild(summaryLine7Left);
removeChild(summaryLine8Left);
removeChild(summaryLine9Left);
removeChild(summaryLine10Left);
removeChild(summaryLine2Right);
removeChild(summaryLine3Right);
removeChild(summaryLine4Right);
removeChild(summaryLine5Right);
removeChild(summaryLine6Right);
removeChild(summaryLine7Right);
removeChild(summaryLine8Right);
removeChild(summaryLine9Right);
removeChild(summaryLine10Right);
theContinueButton.RemoveButton();
removeChild(blackScreen);
NextLevel();
}
public function DetermineBounce(){
var _local1:Number;
var _local2:Number;
isBouncing = true;
ballDir = (Math.atan((yVelocity / (xVelocity * -1))) / (Math.PI / 180));
if ((xVelocity * -1) < 0){
ballDir = (ballDir + 180);
};
if (((((xVelocity * -1) >= 0)) && ((yVelocity < 0)))){
ballDir = (ballDir + 360);
};
spotX = (sumX / collisions);
spotY = (sumY / collisions);
xCat = (spotX - currentX);
yCat = (spotY - currentY);
ballColl = (Math.atan((yCat / xCat)) / (Math.PI / 180));
if (xCat < 0){
ballColl = (ballColl + 180);
};
if ((((xCat >= 0)) && ((yCat < 0)))){
ballColl = (ballColl + 360);
};
groundRotation = (ballColl - 90);
if (groundRotation < 0){
groundRotation = (groundRotation + 180);
};
bounceAngle = ((180 - ballDir) - (2 * groundRotation));
if (bounceAngle < 0){
bounceAngle = (bounceAngle + 360);
};
velocity = Math.sqrt(((yVelocity * yVelocity) + (xVelocity * xVelocity)));
xVelocity = (velocity * Math.cos(((bounceAngle * Math.PI) / 180)));
yVelocity = ((velocity * Math.sin(((bounceAngle * Math.PI) / 180))) * -1);
_local1 = Math.sqrt(((xCat * xCat) + (yCat * yCat)));
_local2 = ((RADIUS - _local1) + 0.2);
currentX = (currentX + (_local2 * Math.cos(((ballDir * Math.PI) / 180))));
currentY = (currentY - (_local2 * Math.sin(((ballDir * Math.PI) / 180))));
}
public function MouseInside(){
mouseInSpheres = false;
TSNumber = (tracSpheres.length - 1);
while (TSNumber >= 0) {
if (tracSpheres[TSNumber].hitTestPoint(stage.mouseX, stage.mouseY, true)){
mouseInSpheres = true;
};
TSNumber--;
};
}
public function StartTractorSpheres(){
if (gameStart){
stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDown);
rolloverSound = new RolloverSound();
clickSound = new ClickSound();
expandSound = new ExpandSound();
bounceSound = new BounceSound();
goalSound = new GoalSound();
gameStart = false;
};
menuMusic = new MenuMusic();
currentMusic = menuMusic;
playMusic(currentMusic);
thePlayButton = new PlayButton(PLAY_BUT_X, PLAY_BUT_Y, PLAY_BUT_WIDTH, PLAY_BUT_HEIGHT);
theInstructionButton = new InstructionButton(INSTRUCT_BUT_X, INSTRUCT_BUT_Y, INSTRUCT_BUT_WIDTH, INSTRUCT_BUT_HEIGHT);
theMx7fButton = new Mx7fButton(INSTRUCT_BUT_X, (INSTRUCT_BUT_Y + MENU_SPACE), INSTRUCT_BUT_WIDTH, INSTRUCT_BUT_HEIGHT);
theNotDopButton = new NotDopButton(INSTRUCT_BUT_X, (INSTRUCT_BUT_Y + (MENU_SPACE * 2)), INSTRUCT_BUT_WIDTH, INSTRUCT_BUT_HEIGHT);
titleImage = new TractorSpheresTitle();
titleImage.x = TITLE_X;
titleImage.y = TITLE_Y;
menuBack = new MenuBackdrop();
theGoal = new Goal(TITLE_GOAL_X, TITLE_GOAL_Y, TITLE_GOAL_DIAMETER);
addChild(menuBack);
addChild(thePlayButton);
addChild(titleImage);
addChild(theGoal);
addChild(theInstructionButton);
addChild(theMx7fButton);
addChild(theNotDopButton);
}
public function OnUp(_arg1:MouseEvent){
if (expanding){
expanding = false;
if (soundChannel != null){
soundChannel.stop();
};
expandClock = 0;
};
}
public function ExpandingNoise(){
expandClock++;
if (expandClock > 15){
playSound(expandSound);
expandClock = 0;
};
}
public function EraseGameMenu(){
thePlayButton.RemoveButton();
theInstructionButton.RemoveButton();
theMx7fButton.RemoveButton();
theNotDopButton.RemoveButton();
removeChild(titleImage);
removeChild(menuBack);
theGoal.RemoveGoal();
}
public function TimeOut(){
timeRemaining = 0;
currentTSNumber = 0;
SetSphereCounter();
SetTimer();
ResetLevel();
}
public function SiteLock(){
var urlStart:int;
var urlEnd:int;
var domain:String;
var LastDot:int;
var domEnd:int;
var url:String;
var strUserAgent:String;
var urlRequest:URLRequest;
urlStart = (stage.loaderInfo.url.indexOf("://") + 3);
urlEnd = stage.loaderInfo.url.indexOf("/", urlStart);
domain = stage.loaderInfo.url.substring(urlStart, urlEnd);
LastDot = (domain.lastIndexOf(".") - 1);
domEnd = (domain.lastIndexOf(".", LastDot) + 1);
domain = domain.substring(domEnd, domain.length);
trace(domain);
if (domain != "mx7fgames.com"){
root.x = 50000;
root.y = 40000;
url = "http://www.mx7fgames.com";
if (ExternalInterface.available){
strUserAgent = "what?";
try {
strUserAgent = ExternalInterface.call("function() { return navigator.userAgent; }").toLowerCase();
} catch(error:Error) {
};
if (strUserAgent.indexOf("firefox") != -1){
ExternalInterface.call("window.open", url, "_blank");
} else {
urlRequest = new URLRequest(url);
navigateToURL(urlRequest, "_blank");
};
};
};
}
public function playGame(){
moreGames.Remove();
removeChild(adButton);
removeEventListener(Event.ENTER_FRAME, loader);
gotoAndStop(4);
}
public function Final(){
finalButton.RemoveButton();
removeChild(vScreen);
removeChild(finalScore);
removeChild(blackScreen);
StartTractorSpheres();
}
public function CalculateLevelScore(){
priorScore = score;
timeBonus = (timeRemaining * POINTS_PER_SEC);
subtotalOne = (LEVEL_COMPLETION_BONUS + timeBonus);
unusedSphereMultiplier = (1 + ((currentLevel.TSMax - finalTSNumber) * 0.5));
subtotalTwo = Math.floor((subtotalOne * unusedSphereMultiplier));
xtraTries = (tries - 1);
xtraTryPenalty = (PENALTY_PER_TRY * xtraTries);
if (xtraTryPenalty > subtotalTwo){
xtraTryPenalty = subtotalTwo;
};
levelTotal = (subtotalTwo - xtraTryPenalty);
score = (score + levelTotal);
}
public function BlackIn(){
blackScreen = new BlackOut();
addChild(blackScreen);
blackScreen.alpha = 0;
blackingIn = true;
}
public function PlayGame(){
gameMusic = new GameMusic();
currentMusic = gameMusic;
playMusic(currentMusic);
levelNumber = 1;
EraseGameMenu();
theLevel = new Walls();
ResetScore();
addChild(theLevel);
playMore = new PlayMoreGames();
playMore.x = 0;
addChild(playMore);
SetDashboard();
SetLevelDisplay();
lastTime = getTimer();
stage.addEventListener(MouseEvent.MOUSE_DOWN, OnClick);
stage.addEventListener(MouseEvent.MOUSE_UP, OnUp);
this.addEventListener(Event.ENTER_FRAME, EveryFrame);
currentLevel = level1;
SetUpLevel();
}
public function MoveBall(){
var _local1:Number;
var _local2:Number;
timePassed = (getTimer() - lastTime);
lastTime = (lastTime + timePassed);
_local1 = (((xVelocity * timePassed) * FRAME_RATE) / 1000);
_local2 = (((yVelocity * timePassed) * FRAME_RATE) / 1000);
velocity = Math.sqrt(((yVelocity * yVelocity) + (xVelocity * xVelocity)));
if (velocity > MAX_VELOCITY){
_local1 = ((_local1 / velocity) * MAX_VELOCITY);
_local2 = ((_local2 / velocity) * MAX_VELOCITY);
};
currentX = (currentX + _local1);
currentY = (currentY + _local2);
}
public function CreateReset(){
theReset = new ResetButton(RESET_X, RESET_Y, RESET_DIAMETER, RESET_DIAMETER);
addChild(theReset);
}
public function YesQuit(){
RemoveQuitScreen();
EndGame();
}
public function RemoveEnterFrame(){
this.removeEventListener(Event.ENTER_FRAME, EveryFrame);
}
public function Victory(){
victory = true;
BlackIn();
}
public function SetLevelDisplay(){
levelInfo = new TextField();
levelTextFormat = new TextFormat("Copperplate", 24);
levelTextFormat.color = 0xFFFFFF;
levelTextFormat.align = TextFormatAlign.CENTER;
levelInfo.defaultTextFormat = levelTextFormat;
levelInfo.text = "Level:";
levelInfo.selectable = false;
levelInfo.x = LEVEL_TEXT_X;
levelInfo.y = LEVEL_TEXT_Y;
levelInfo.width = LEVEL_TEXT_WIDTH;
addChild(levelInfo);
}
public function playSound(_arg1:Object){
if (!soundMuted){
soundChannel = _arg1.play();
};
}
public function RemoveEverything(){
removeChild(theLevel);
if (theReset != null){
theReset.RemoveButton();
theReset = null;
};
if (theStartLevelButton != null){
theStartLevelButton.RemoveButton();
theStartLevelButton = null;
};
if (theRetryButton != null){
theRetryButton.RemoveButton();
theRetryButton = null;
};
theMenuButton.RemoveButton();
removeChild(TSCount);
removeChild(timeText);
removeChild(scoreDisplay);
removeChild(levelInfo);
stage.removeEventListener(MouseEvent.MOUSE_DOWN, OnClick);
stage.removeEventListener(MouseEvent.MOUSE_UP, OnUp);
}
public function TimeDecrease(){
if (timeRemaining > 1){
timeRemaining--;
SetTimer();
} else {
TimeOut();
};
}
public function ResetScore(){
score = 0;
}
public function OnClick(_arg1:MouseEvent){
if (((placingSpheres) && (!(quitting)))){
if (currentTSNumber < currentLevel.TSMax){
MouseInside();
if (((((!(theLevel.hitTestPoint(stage.mouseX, stage.mouseY, true))) && (!(mouseInSpheres)))) && (!(theGoal.hitTestPoint(stage.mouseX, stage.mouseY, true))))){
sphereDiameter = 10;
currentTSNumber++;
SetSphereCounter();
newTS = new TSphere(stage.mouseX, stage.mouseY, sphereDiameter);
addChild(newTS);
tracSpheres.push(newTS);
expanding = true;
playSound(expandSound);
};
};
};
}
public function Influence(){
accMagnitude = (Math.pow(tracSpheres[TSNumber].width, 1.5) * ACC_COEFF_MULTIPLIER);
xDistance = (-(currentX) + tracSpheres[TSNumber].x);
yDistance = (currentY - tracSpheres[TSNumber].y);
totalDistance = Math.sqrt(((xDistance * xDistance) + (yDistance * yDistance)));
theta = Math.atan2(xDistance, yDistance);
xAcceleration = (accMagnitude * Math.sin(theta));
yAcceleration = (-(accMagnitude) * Math.cos(theta));
xVelocity = (xVelocity + xAcceleration);
yVelocity = (yVelocity + yAcceleration);
}
public function DetectWalls(){
var _local1:int;
collisions = 0;
sumX = 0;
sumY = 0;
_local1 = 1;
while (_local1 < PRECISION) {
spotX = (currentX + (RADIUS * Math.sin(((_local1 * 360) / PRECISION))));
spotY = (currentY - (RADIUS * Math.cos(((_local1 * 360) / PRECISION))));
if (theLevel.hitTestPoint(spotX, spotY, true)){
collisions++;
sumX = (sumX + spotX);
sumY = (sumY + spotY);
};
_local1++;
};
if (collisions > 0){
DetermineBounce();
playSound(bounceSound);
};
}
public function NotDopplerIntro(){
notDop = new NotDoppler();
addChild(notDop);
this.addEventListener(Event.ENTER_FRAME, NotDopWaiting);
}
public function QuitGame(){
levelNumber;
if (isRunning){
ResetLevel();
};
if (placingSpheres){
ClearSpheres();
SetSphereCounter();
};
quitting = true;
blackScreen = new BlackOut();
quitQuestion = new TextField();
quitQuestion.x = 100;
quitQuestion.width = (700 - (quitQuestion.x * 2));
quitQuestion.y = 240;
quitQuestion.selectable = false;
quitQuestion.defaultTextFormat = levelTextFormat;
quitQuestion.text = "Are you sure you want to quit?";
quitScore = new TextField();
quitScore.x = 100;
quitScore.width = (700 - (quitScore.x * 2));
quitScore.y = 200;
quitScore.selectable = false;
quitScore.defaultTextFormat = levelTextFormat;
quitScore.text = ("FINAL SCORE: " + score);
addChild(blackScreen);
addChild(quitQuestion);
addChild(quitScore);
theYesButton = new YesButton(YES_X, YES_Y, YES_WIDTH, YES_HEIGHT);
theNoButton = new NoButton(NO_X, YES_Y, YES_WIDTH, YES_HEIGHT);
addChild(theYesButton);
addChild(theNoButton);
}
public function SetUpLevel(){
placingSpheres = true;
theBall = new Ball(currentLevel.startX, currentLevel.startY);
addChild(theBall);
theGoal = new Goal(currentLevel.goalX, currentLevel.goalY, currentLevel.goalDiameter);
addChild(theGoal);
xVelocity = 0;
yVelocity = 0;
nextSec = 1;
timeRemaining = currentLevel.timeLimit;
SetTimer();
SetSphereCounter();
SetLevelInfo();
SetScoreDisplay();
}
public function DetectWall(){
var _local1:int;
boundingCircleRadius = ((newTS.width + WALL_SPACE) / 2);
precision = PRECISION;
_local1 = 1;
while (_local1 < precision) {
spotXSphere = (newTS.x + (boundingCircleRadius * Math.sin(((_local1 * 360) / precision))));
spotYSphere = (newTS.y - (boundingCircleRadius * Math.cos(((_local1 * 360) / precision))));
if (theLevel.hitTestPoint(spotXSphere, spotYSphere, true)){
expanding = false;
soundChannel.stop();
expandClock = 0;
};
_local1++;
};
}
public function RemoveBallAndGoal(){
removeChild(theBall);
theGoal.RemoveGoal();
}
public function EndGame(){
RemoveEverything();
RemoveEnterFrame();
RemoveBallAndGoal();
ResetScore();
currentLevel = level1;
StartTractorSpheres();
}
public function EveryFrame(_arg1:Event){
if (expanding){
ExpandingNoise();
DetectOthers();
DetectWall();
DetectGoal();
Expansion();
};
if (isRunning){
Movement();
Timing();
CheckGoal();
};
if (blackingIn){
Darkening();
};
}
public function playMusic(_arg1:Object){
if (musicChannel != null){
musicChannel.stop();
};
if (!muted){
musicChannel = _arg1.play(0, 999999);
};
}
public function RemoveQuitScreen(){
quitting = false;
theYesButton.RemoveButton();
theNoButton.RemoveButton();
removeChild(quitQuestion);
removeChild(quitScore);
removeChild(blackScreen);
}
public function ClearSpheres(){
while (tracSpheres.length != 0) {
currentTS = tracSpheres[0];
tracSpheres.shift();
currentTS.RemoveTS();
};
currentTSNumber = 0;
}
public function LineOfSight(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Boolean{
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Boolean;
var _local14:int;
_local6 = Math.sqrt((((_arg1 - _arg2) * (_arg1 - _arg2)) + ((_arg3 - _arg4) * (_arg3 - _arg4))));
_local7 = (_local6 / _arg5);
_local8 = (-(Math.atan2((_arg1 - _arg2), (_arg3 - _arg4))) / (Math.PI / 180));
_local9 = (_arg5 * Math.sin((_local8 * (Math.PI / 180))));
_local10 = (_arg5 * Math.cos((_local8 * (Math.PI / 180))));
_local11 = _arg1;
_local12 = _arg3;
_local13 = true;
_local14 = 1;
while (_local14 <= _local7) {
_local12 = (_local12 - _local10);
_local11 = (_local11 + _local9);
if (theLevel.hitTestPoint(_local11, _local12, _local13)){
return (false);
};
_local14++;
};
return (true);
}
public function NextInstruction(){
if (instructionNum == 1){
instructionNum++;
instruct2 = new Instructions2();
addChild(instruct2);
removeChild(instruct1);
removeChild(theFakeTS);
instructGoal.RemoveGoal();
ReplaceNext();
} else {
if (instructionNum == 2){
instructionNum++;
instruct3 = new Instructions3();
addChild(instruct3);
removeChild(instruct2);
ReplaceNext();
theFakeReset = new FakeResetButton(570, 335, RESET_DIAMETER, RESET_DIAMETER);
addChild(theFakeReset);
} else {
if (instructionNum == 3){
instructionNum++;
instruct4 = new Instructions4();
addChild(instruct4);
removeChild(instruct3);
theFakeReset.RemoveButton();
theNextButton.RemoveButton();
theReturnButton = new ReturnButton(NEXT_X, NEXT_Y, NEXT_WIDTH, NEXT_HEIGHT);
addChild(theReturnButton);
instructionNum = 1;
};
};
};
}
public function SetScoreDisplay(){
scoreDisplay.text = ("Score: " + score);
}
public function ResetLevel(){
theBall.x = currentLevel.startX;
theBall.y = currentLevel.startY;
isRunning = false;
ClearSpheres();
placingSpheres = true;
Retry2Start();
xVelocity = 0;
yVelocity = 0;
timeRemaining = currentLevel.timeLimit;
SetTimer();
SetSphereCounter();
CreateReset();
}
public function EndLevel(){
isRunning = false;
finalTSNumber = currentTSNumber;
ClearSpheres();
removeChild(theBall);
theGoal.RemoveGoal();
xVelocity = 0;
yVelocity = 0;
}
public function KeyDown(_arg1:KeyboardEvent){
if (_arg1.keyCode == 77){
if (muted){
muted = false;
playMusic(currentMusic);
} else {
musicChannel.stop();
muted = true;
};
};
if (_arg1.keyCode == 83){
if (soundMuted){
soundMuted = false;
} else {
soundMuted = true;
};
};
}
public function ReplaceNext(){
theNextButton.RemoveButton();
NewNext();
}
public function NoQuit(){
RemoveQuitScreen();
}
public function Retry2Start(){
theRetryButton.RemoveButton();
theRetryButton = null;
theStartLevelButton = new StartLevelButton(FIRST_BUTTON_X, BUTTON_Y, GAME_BUTTON_WIDTH, GAME_BUTTON_HEIGHT);
addChild(theStartLevelButton);
}
}
}//package
Section 42
//TractorSpheresTitle (TractorSpheresTitle)
package {
import flash.display.*;
public dynamic class TractorSpheresTitle extends MovieClip {
}
}//package
Section 43
//TSphere (TSphere)
package {
import flash.display.*;
public class TSphere extends MovieClip {
public function TSphere(_arg1=0, _arg2=0, _arg3=0){
this.x = _arg1;
this.y = _arg2;
this.width = _arg3;
this.height = _arg3;
}
public function RemoveTS(){
parent.removeChild(this);
}
}
}//package
Section 44
//Walls (Walls)
package {
import flash.display.*;
public class Walls extends MovieClip {
public function Walls(){
addFrameScript(0, frame1);
this.x = 0;
this.y = 0;
}
function frame1(){
stop();
}
}
}//package
Section 45
//VictoryMusic (VictoryMusic)
package {
import flash.media.*;
public dynamic class VictoryMusic extends Sound {
}
}//package
Section 46
//VictoryScreen (VictoryScreen)
package {
import flash.display.*;
public dynamic class VictoryScreen extends MovieClip {
}
}//package
Section 47
//YesButton (YesButton)
package {
import flash.display.*;
import flash.events.*;
public class YesButton extends MovieClip {
public function YesButton(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){
this.x = _arg1;
this.y = _arg2;
this.height = _arg4;
this.width = _arg3;
this.addEventListener(MouseEvent.CLICK, OnClick);
this.gotoAndStop(1);
this.addEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
}
public function OnMouseOut(_arg1:MouseEvent){
this.gotoAndStop(1);
}
public function OnClick(_arg1:MouseEvent){
MovieClip(parent).playSound(MovieClip(parent).clickSound);
MovieClip(parent).YesQuit();
}
public function OnMouseOver(_arg1:MouseEvent){
this.gotoAndStop(2);
MovieClip(parent).playSound(MovieClip(parent).rolloverSound);
}
public function RemoveButton(){
this.removeEventListener(MouseEvent.CLICK, OnClick);
this.removeEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
this.removeEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
MovieClip(parent).removeChild(this);
}
}
}//package