Section 1
//StageBack (Assets.StageBack)
package Assets {
import flash.display.*;
import Core.*;
public class StageBack extends MovieClip {
public function StageBack(){
super();
var bg:Bitmap = new Resourcen.instance.IMAGE_BACK_GREEN();
bg.smoothing = true;
addChild(bg);
bg.x = -((bg.width / 2));
bg.y = -((bg.height / 2));
}
}
}//package Assets
Section 2
//Vector2D (com.cheezeworld.math.Vector2D)
package com.cheezeworld.math {
import flash.geom.*;
public class Vector2D {
private var v2:Vector2D;
private var _length:Number;
private var _oldX:Number;
private var v1:Vector2D;
private var _oldY:Number;
public var x:Number;
public var y:Number;
private static const DEG_TO_RAD:Number = 0.0174532925199433;
private static const RAD_TO_DEG:Number = 57.2957795130823;
public function Vector2D(X:Number=0, Y:Number=0){
super();
x = X;
y = Y;
_length = 0;
}
public function divide(scalar:Number):void{
if (scalar == 0){
trace("Vector::dividedBy() - Illegal Divide by Zero!");
} else {
x = (x / scalar);
y = (y / scalar);
};
}
public function isZero():Boolean{
return ((((x == 0)) || ((y == 0))));
}
public function Set(x:Number, y:Number):void{
this.x = x;
this.y = y;
}
public function sign(vector:Vector2D):int{
if ((y * vector.x) > (x * vector.y)){
return (-1);
};
return (1);
}
public function dotOf(vector:Vector2D):Number{
return (((x * vector.x) + (y * vector.y)));
}
public function dividedBy(scalar:Number):Vector2D{
if (scalar == 0){
trace("Vector::dividedBy() - Illegal Divide by Zero!");
return (new Vector2D());
};
return (new Vector2D((x / scalar), (y / scalar)));
}
public function normalize():void{
if (length != 0){
x = (x / _length);
y = (y / _length);
};
}
public function isParallelTo(vector:Vector2D):Boolean{
v1 = copy();
v1.normalize();
v2 = vector.copy();
v2.normalize();
return ((((((v1.x == v2.x)) && ((v1.y == v2.y)))) || ((((v1.x == -(v2.x))) && ((v1.y == -(v2.y)))))));
}
public function distanceTo(vector:Vector2D):Number{
var xSep:Number = (vector.x - x);
var ySep:Number = (vector.y - y);
return (Math.sqrt(((ySep * ySep) + (xSep * xSep))));
}
public function subtract(vector:Vector2D):void{
x = (x - vector.x);
y = (y - vector.y);
}
public function toPoint():Point{
return (new Point(x, y));
}
public function toRotation():Number{
var ang:Number = (Math.atan((y / x)) * RAD_TO_DEG);
if ((((y < 0)) && ((x > 0)))){
return (ang);
};
if ((((((y < 0)) && ((x < 0)))) || ((((y > 0)) && ((x < 0)))))){
return ((ang + 180));
};
return ((ang + 360));
}
public function isInsideRegion(topLeft:Vector2D, botRight:Vector2D):Boolean{
return (!((((((((x < topLeft.x)) || ((x > (topLeft.x + botRight.x))))) || ((y < topLeft.y)))) || ((y > (topLeft.y + botRight.y))))));
}
public function addedTo(vector:Vector2D):Vector2D{
return (new Vector2D((x + vector.x), (y + vector.y)));
}
public function perpDotOf(vector:Vector2D):Number{
return (getPerp().dotOf(vector));
}
public function projectionOn(vector:Vector2D):Vector2D{
v1 = vector.copy();
v1.multiply((this.dotOf(vector) / vector.dotOf(vector)));
return (v1);
}
public function distanceSqTo(vector:Vector2D):Number{
var xSep:Number = (vector.y - y);
var ySep:Number = (vector.x - x);
return (((ySep * ySep) + (xSep * xSep)));
}
public function get lengthSq():Number{
return (((x * x) + (y * y)));
}
public function get length():Number{
if (((!((_oldX == x))) || (!((_oldY == y))))){
_oldX = x;
_oldY = y;
_length = Math.sqrt(((x * x) + (y * y)));
};
return (_length);
}
public function getPerp():Vector2D{
return (new Vector2D(-(y), x));
}
public function subtractedBy(vector:Vector2D):Vector2D{
return (new Vector2D((x - vector.x), (y - vector.y)));
}
public function multiply(scalar:Number):void{
x = (x * scalar);
y = (y * scalar);
}
public function toString():String{
return ((((("(" + x) + ",") + y) + ")"));
}
public function truncate(max:Number):void{
if (lengthSq > (max * max)){
normalize();
multiply(max);
};
}
public function angleTo(vector:Vector2D):Number{
return (Math.acos((dotOf(vector) / (length * vector.length))));
}
public function multipliedBy(scalar:Number):Vector2D{
return (new Vector2D((x * scalar), (y * scalar)));
}
public function getNormalized():Vector2D{
if (length == 0){
return (new Vector2D());
};
return (new Vector2D((x / _length), (y / _length)));
}
public function copy():Vector2D{
var newVector:Vector2D = new Vector2D(x, y);
newVector._length = _length;
newVector._oldX = x;
newVector._oldY = y;
return (newVector);
}
public function wrapAround(topLeft:Vector2D, botRight:Vector2D):void{
if (x > botRight.x){
x = (topLeft.x + (x - botRight.x));
} else {
if (x < topLeft.x){
x = (botRight.x + x);
};
};
if (y < topLeft.y){
y = (botRight.y + y);
} else {
if (y > botRight.y){
y = (topLeft.y + (y - botRight.y));
};
};
}
public function getReverse():Vector2D{
return (new Vector2D(-(x), -(y)));
}
public function addTo(vector:Vector2D):void{
x = (x + vector.x);
y = (y + vector.y);
}
public function reflect(norm:Vector2D):void{
v1 = norm.getReverse();
v1.multiply((2 * dotOf(norm)));
addTo(v1);
}
public function crossOf(vector:Vector2D):Number{
return (((x * vector.y) - (y * vector.x)));
}
public static function rotToHeading(rotInDegrees:Number):Vector2D{
var rotInRad:Number = (rotInDegrees * DEG_TO_RAD);
var xPart:Number = Math.cos(rotInRad);
var yPart:Number = Math.sin(rotInRad);
return (new Vector2D(xPart, yPart));
}
public static function is2ndInFOVof1st(pos1st:Vector2D, facing1st:Vector2D, fov:Number, pos2nd:Vector2D):Boolean{
var toTarget:Vector2D = pos2nd.copy();
toTarget.subtract(pos1st);
toTarget.normalize();
return ((facing1st.dotOf(toTarget) >= Math.cos((fov / 2))));
}
public static function pointToVector(point:Point):Vector2D{
return (new Vector2D(point.x, point.y));
}
}
}//package com.cheezeworld.math
Section 3
//Input (com.cheezeworld.utils.Input)
package com.cheezeworld.utils {
import flash.events.*;
import flash.display.*;
import com.cheezeworld.math.*;
import flash.utils.*;
public class Input {
private var _ot:int;
public var _keyBuffer:Array;
private var _timeMousePressed:int;
public var mouseDelta:int;// = 0
public var lastKeyName:String;// = ""
private var _bufferSize:int;
private var _keyArr:Array;
private var _timeKeyPressed:int;
private var _timeMouseReleased:int;
private var _dt:int;
private var _keyState:Array;
public var mouseX:Number;// = 0
public var mouseY:Number;// = 0
private var _hasMouseScrolled:Boolean;
private var _ascii:Array;
public var isMouseDown:Boolean;// = false
private var _nt:int;
public var mousePos:Vector2D;
private var _timeKeyReleased:int;
public var lastKeyCode:int;// = 0
public var isMouseReleased:Boolean;// = false
private var _stage:Stage;
private static const BUFFER_SIZE:int = 5;
private static var _instance:Input;
public function Input(enforcer:SingletonEnforcer){
super();
_timeKeyPressed = (_nt = (_ot = getTimer()));
_dt = 0;
mousePos = new Vector2D();
_ascii = new Array(222);
fillAscii();
_keyState = new Array(222);
_keyArr = new Array();
var i:int;
while (i < 222) {
_keyState[i] = new int(0);
if (_ascii[i] != undefined){
_keyArr.push(i);
};
i++;
};
_bufferSize = Input.BUFFER_SIZE;
_keyBuffer = new Array(_bufferSize);
var j:int;
while (j < _bufferSize) {
_keyBuffer[j] = new Array(0, 0);
j++;
};
}
public function get hasMouseScrolled():Boolean{
if (_hasMouseScrolled){
_hasMouseScrolled = false;
return (true);
};
return (false);
}
public function isKeyPressed(keyCode:int):Boolean{
return ((_keyState[keyCode] == 1));
}
private function fillAscii():void{
_ascii[65] = "A";
_ascii[66] = "B";
_ascii[67] = "C";
_ascii[68] = "D";
_ascii[69] = "E";
_ascii[70] = "F";
_ascii[71] = "G";
_ascii[72] = "H";
_ascii[73] = "I";
_ascii[74] = "J";
_ascii[75] = "K";
_ascii[76] = "L";
_ascii[77] = "M";
_ascii[78] = "N";
_ascii[79] = "O";
_ascii[80] = "P";
_ascii[81] = "Q";
_ascii[82] = "R";
_ascii[83] = "S";
_ascii[84] = "T";
_ascii[85] = "U";
_ascii[86] = "V";
_ascii[87] = "W";
_ascii[88] = "X";
_ascii[89] = "Y";
_ascii[90] = "Z";
_ascii[48] = "0";
_ascii[49] = "1";
_ascii[50] = "2";
_ascii[51] = "3";
_ascii[52] = "4";
_ascii[53] = "5";
_ascii[54] = "6";
_ascii[55] = "7";
_ascii[56] = "8";
_ascii[57] = "9";
_ascii[32] = "Space";
_ascii[13] = "Enter";
_ascii[17] = "Ctrl";
_ascii[16] = "Shift";
_ascii[192] = "~";
_ascii[38] = "Up";
_ascii[40] = "Down";
_ascii[37] = "Left";
_ascii[39] = "Right";
_ascii[96] = "Numpad 0";
_ascii[97] = "Numpad 1";
_ascii[98] = "Numpad 2";
_ascii[99] = "Numpad 3";
_ascii[100] = "Numpad 4";
_ascii[101] = "Numpad 5";
_ascii[102] = "Numpad 6";
_ascii[103] = "Numpad 7";
_ascii[104] = "Numpad 8";
_ascii[105] = "Numpad 9";
_ascii[111] = "Numpad /";
_ascii[106] = "Numpad *";
_ascii[109] = "Numpad -";
_ascii[107] = "Numpad +";
_ascii[110] = "Numpad .";
_ascii[45] = "Insert";
_ascii[46] = "Delete";
_ascii[33] = "Page Up";
_ascii[34] = "Page Down";
_ascii[35] = "End";
_ascii[36] = "Home";
_ascii[112] = "F1";
_ascii[113] = "F2";
_ascii[114] = "F3";
_ascii[115] = "F4";
_ascii[116] = "F5";
_ascii[117] = "F6";
_ascii[118] = "F7";
_ascii[119] = "F8";
_ascii[188] = ",";
_ascii[190] = ".";
_ascii[186] = ";";
_ascii[222] = "'";
_ascii[219] = "[";
_ascii[221] = "]";
_ascii[189] = "-";
_ascii[187] = "+";
_ascii[220] = "\\";
_ascii[191] = "/";
_ascii[9] = "TAB";
_ascii[8] = "Backspace";
_ascii[27] = "ESC";
}
public function get timeSinceMouseReleased():int{
return ((getTimer() - _timeMouseReleased));
}
private function mouseMove(e:MouseEvent):void{
mouseX = (e.stageX - _stage.x);
mouseY = (e.stageY - _stage.y);
mousePos.x = mouseX;
mousePos.y = mouseY;
}
public function isKeyDown(keyCode:int):Boolean{
return ((_keyState[keyCode] > 0));
}
public function getKeyString(keyCode:int):String{
return (_ascii[keyCode]);
}
private function mouseRelease(e:MouseEvent):void{
isMouseDown = false;
isMouseReleased = true;
_timeMouseReleased = getTimer();
}
private function keyPress(e:KeyboardEvent):void{
_keyState[e.keyCode] = Math.max(_keyState[e.keyCode], 1);
lastKeyName = _ascii[e.keyCode];
lastKeyCode = e.keyCode;
if (_keyState[e.keyCode] == 1){
_timeKeyPressed = getTimer();
};
}
private function mousePress(e:MouseEvent):void{
isMouseDown = true;
_timeMousePressed = getTimer();
}
private function keyRelease(e:KeyboardEvent):void{
_keyState[e.keyCode] = -1;
var i:int = (_bufferSize - 1);
while (i > 0) {
_keyBuffer[i] = _keyBuffer[(i - 1)];
i--;
};
_keyBuffer[0] = [e.keyCode, 0];
_timeKeyReleased = getTimer();
}
public function get timeSinceLastKeyRelease():int{
return ((getTimer() - _timeKeyReleased));
}
public function isKeyReleased(keyCode:int):Boolean{
return ((_keyState[keyCode] == -1));
}
public function isKeyInBuffer(keyCode:int, i:int, t:int):Boolean{
return ((((_keyBuffer[i][0] == keyCode)) && ((_keyBuffer[i][1] <= t))));
}
public function update():void{
_nt = getTimer();
_dt = (_nt - _ot);
_ot = _nt;
var i:int;
while (i < _keyArr.length) {
if (_keyState[_keyArr[i]] != 0){
var _local3 = _keyState;
var _local4 = _keyArr[i];
var _local5 = (_local3[_local4] + 1);
_local3[_local4] = _local5;
};
i++;
};
var j:int;
while (j < _bufferSize) {
_keyBuffer[j][1] = (_keyBuffer[j][1] + _dt);
j++;
};
isMouseReleased = false;
}
public function get timeSinceMousePressed():int{
return ((getTimer() - _timeMousePressed));
}
private function mouseScroll(e:MouseEvent):void{
_hasMouseScrolled = true;
mouseDelta = e.delta;
}
public function get timeSinceLastKeyPress():int{
return ((getTimer() - _timeKeyPressed));
}
public function activate(stage:Stage):void{
_stage = stage;
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPress, false, 0, true);
stage.addEventListener(KeyboardEvent.KEY_UP, keyRelease, false, 0, true);
stage.addEventListener(MouseEvent.MOUSE_DOWN, mousePress, false, 0, true);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseRelease, false, 0, true);
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMove, false, 0, true);
stage.addEventListener(MouseEvent.MOUSE_WHEEL, mouseScroll, false, 0, true);
}
public static function get instance():Input{
if (Input._instance == null){
Input._instance = new Input(new SingletonEnforcer());
};
return (Input._instance);
}
}
}//package com.cheezeworld.utils
class SingletonEnforcer {
private function SingletonEnforcer(){
super();
}
}
Section 4
//GTween (com.gskinner.motion.GTween)
package com.gskinner.motion {
import flash.events.*;
import flash.utils.*;
public class GTween extends EventDispatcher {
public var autoPlay:Boolean;// = true
protected var _position:Number;// = 0
protected var ticker:ITicker;
protected var _delay:Number;// = 0
public var duration:Number;// = 1
public var repeat:int;// = 0
protected var positionOffset:Number;
protected var _previousPosition:Number;
protected var startValues:Object;
public var data;
protected var inited:Boolean;
protected var _target:Object;
protected var _tweenPosition:Number;// = 0
protected var _reversed:Boolean;
public var snapping:Boolean;// = false
public var reflect:Boolean;// = false
public var nextTween:GTween;
protected var assignmentProperty:String;
public var autoVisible:Boolean;// = true
protected var assignmentTarget:Object;
protected var _lockStartProperties:Boolean;
public var autoRotation:Boolean;// = false
protected var endValues:Object;
protected var inTick:Boolean;
protected var _paused:Boolean;// = true
protected var _propertyTarget:Object;
public var ease:Function;
protected var _proxy:TargetProxy;
protected var _previousTweenPosition:Number;
public static const START:String = "start";
public static const FRAME:String = "frame";
public static const TWEEN:String = "tween";
public static const TIME:String = "time";
public static const DELAY:String = "delay";
public static const END:String = "end";
public static const HYBRID:String = "hybrid";
public static var snappingProperties:Object = {x:true, y:true};
public static var pauseAll:Boolean = false;
protected static var activeTweens:Dictionary = new Dictionary();
protected static var _activeTicker:ITicker;
protected static var _timeInterval:uint = 10;
public static var rotationProperties:Object = {rotation:true, rotationX:true, rotationY:true, rotationZ:true};
public static var defaultEase:Function;
protected static var _timingMode:String;
public function GTween(target:Object=null, duration:Number=10, properties:Object=null, tweenProperties:Object=null){
ease = linearEase;
super();
ticker = activeTicker;
this.target = target;
this.duration = duration;
ease = ((defaultEase) || (linearEase));
setProperties(properties);
setTweenProperties(tweenProperties);
}
protected function setGCLock(value:Boolean):void{
if (value){
if ((_target is IEventDispatcher)){
_target.addEventListener("GDS__NONEXISTENT_EVENT", nullListener, false, 0, false);
} else {
activeTweens[this] = true;
};
} else {
if ((_target is IEventDispatcher)){
_target.removeEventListener("GDS__NONEXISTENT_EVENT", nullListener);
};
delete activeTweens[this];
};
}
public function get target():Object{
return (_target);
}
public function get delay():Number{
return (_delay);
}
public function set delay(value:Number):void{
if (_position == -(_delay)){
setPosition(-(value));
};
_delay = value;
}
protected function init():void{
var n:String;
var r:Number;
var tr:Number;
inited = true;
if (_lockStartProperties){
return;
};
startValues = {};
if (((assignmentTarget) && (assignmentProperty))){
_propertyTarget = assignmentTarget[assignmentProperty];
};
for (n in endValues) {
if (((autoRotation) && (rotationProperties[n]))){
r = (endValues[n] = (endValues[n] % 360));
tr = (_propertyTarget[n] % 360);
startValues[n] = (tr + ((Math.abs((tr - r)))<180) ? 0 : ((tr)>r) ? -360 : 360);
} else {
startValues[n] = _propertyTarget[n];
};
};
}
public function get state():String{
return (((((_position == -(_delay))) && (_paused))) ? START : ((_position)<0) ? DELAY : (((!((repeat == -1))) && ((_position >= ((repeat + 1) * duration))))) ? END : TWEEN);
}
public function get lockStartProperties():Boolean{
return (_lockStartProperties);
}
public function deleteProperty(name:String):Boolean{
return (delete endValues[name]);
}
public function set target(value:Object):void{
_propertyTarget = (_target = ((value)===null) ? {} : value);
inited = false;
}
public function set reversed(value:Boolean):void{
if (value == _reversed){
return;
};
_reversed = value;
if (!inited){
init();
};
setPosition(_position, true);
}
public function get position():Number{
return (_position);
}
public function setPosition(position:Number, suppressEvents:Boolean=true):void{
var tp:Number;
_previousPosition = _position;
_position = position;
if (((!(inTick)) && (!(paused)))){
updatePositionOffset();
};
var maxPos:Number = ((repeat + 1) * duration);
if (position < 0){
tp = (_reversed) ? duration : 0;
} else {
if ((((repeat == -1)) || ((position < maxPos)))){
tp = (position % duration);
if (((reflect) && ((((position / duration) % 2) >= 1))) != _reversed){
tp = (duration - tp);
};
} else {
tp = ((((reflect) && (((repeat % 2) >= 1))))!=_reversed) ? 0 : duration;
};
};
if (tp == _tweenPosition){
return;
};
_previousTweenPosition = _tweenPosition;
_tweenPosition = tp;
if (((!(suppressEvents)) && (hasEventListener(Event.CHANGE)))){
dispatchEvent(new Event(Event.CHANGE));
};
if (((((!(inited)) && ((_previousPosition <= 0)))) && ((_position >= 0)))){
init();
if (((!(suppressEvents)) && (hasEventListener(Event.INIT)))){
dispatchEvent(new Event(Event.INIT));
};
};
updateProperties();
if (((((!((repeat == -1))) && ((_previousPosition < maxPos)))) && ((position >= maxPos)))){
if (((!(suppressEvents)) && (hasEventListener(Event.COMPLETE)))){
dispatchEvent(new Event(Event.COMPLETE));
};
paused = true;
if (nextTween){
nextTween.paused = false;
};
};
}
public function set lockStartProperties(value:Boolean):void{
if (((value) && (!(inited)))){
init();
};
_lockStartProperties = value;
}
public function get paused():Boolean{
return (_paused);
}
public function get tweenPosition():Number{
return (_tweenPosition);
}
public function invalidate():void{
inited = false;
if (_position > 0){
_position = 0;
updatePositionOffset();
};
if (autoPlay){
paused = false;
};
}
public function getProperties():Object{
return (copyObject(endValues));
}
public function get propertyTarget():Object{
return (_propertyTarget);
}
public function play():void{
paused = false;
}
public function setAssignment(assignmentTarget:Object=null, assignmentProperty:String=null):void{
this.assignmentTarget = assignmentTarget;
this.assignmentProperty = assignmentProperty;
inited = false;
}
public function get reversed():Boolean{
return (_reversed);
}
public function set position(value:Number):void{
setPosition(value, true);
}
protected function updateProperty(property:String, startValue:Number, endValue:Number, tweenRatio:Number):void{
var value:Number = (startValue + ((endValue - startValue) * tweenRatio));
if (((snapping) && (snappingProperties[property]))){
value = Math.round(value);
};
if (property == "currentFrame"){
_propertyTarget.gotoAndStop((value << 0));
} else {
_propertyTarget[property] = value;
};
}
public function setProperties(properties:Object):void{
var n:String;
endValues = {};
for (n in properties) {
setProperty(n, properties[n]);
};
}
public function getProperty(name:String):Number{
return (endValues[name]);
}
public function end():void{
setPosition(((repeat)==-1) ? duration : ((repeat + 1) * duration));
}
public function set paused(value:Boolean):void{
if (value == _paused){
return;
};
_paused = value;
if (value){
ticker.removeEventListener("tick", handleTick);
} else {
ticker.addEventListener("tick", handleTick, false, 0, true);
if (((!((repeat == -1))) && ((_position >= (duration * (repeat + 1)))))){
position = 0;
} else {
updatePositionOffset();
};
};
setGCLock(!(value));
}
public function beginning():void{
setPosition(-(_delay));
}
public function setProperty(name:String, value:Number):void{
if (isNaN(value)){
return;
};
endValues[name] = value;
if (((_lockStartProperties) && ((startValues[name] == null)))){
startValues[name] = _propertyTarget[name];
};
invalidate();
}
protected function updatePositionOffset():void{
positionOffset = (ticker.position - _position);
}
protected function copyObject(o:Object):Object{
var n:String;
var copy:Object = {};
for (n in o) {
copy[o] = o[n];
};
return (copy);
}
public function setTweenProperties(properties:Object):void{
var positionValue:Number;
var n:String;
if (!properties){
return;
};
if (("position" in properties)){
positionValue = properties.position;
delete properties.position;
};
if (("initListener" in properties)){
addEventListener(Event.INIT, properties.initListener, false, 0, true);
delete properties.initListener;
};
if (("completeListener" in properties)){
addEventListener(Event.COMPLETE, properties.completeListener, false, 0, true);
delete properties.completeListener;
};
if (("changeListener" in properties)){
addEventListener(Event.CHANGE, properties.changeListener, false, 0, true);
delete properties.changeListener;
};
for (n in properties) {
this[n] = properties[n];
};
if (!isNaN(positionValue)){
position = positionValue;
};
}
protected function updateProperties():void{
var n:String;
var ratio:Number = ease((_tweenPosition / duration), 0, 1, 1);
for (n in endValues) {
updateProperty(n, startValues[n], endValues[n], ratio);
};
if (((((((autoVisible) && (("alpha" in endValues)))) && (("alpha" in _propertyTarget)))) && (("visible" in _propertyTarget)))){
_propertyTarget.visible = (_propertyTarget.alpha > 0);
};
if (((assignmentTarget) && (assignmentProperty))){
assignmentTarget[assignmentProperty] = _propertyTarget;
};
}
public function reverse(suppressEvents:Boolean=true):void{
var pos:Number = ((repeat == -1)) ? (duration - (_position % duration)) : (((repeat + 1) * duration) - _position);
if (reflect){
_reversed = !((((((position / duration) % 2) >= 1) == (((pos / duration) % 2) >= 1)) == _reversed));
} else {
_reversed = !(_reversed);
};
setPosition(pos, suppressEvents);
}
public function setStartProperties(properties:Object):void{
startValues = copyObject(properties);
inited = true;
}
protected function handleTick(evt:Event):void{
inTick = true;
if (pauseAll){
updatePositionOffset();
} else {
setPosition((ticker.position - positionOffset), false);
};
inTick = false;
}
public function get proxy():Object{
if (_proxy == null){
_proxy = new TargetProxy(this);
};
return (_proxy);
}
public function pause():void{
paused = true;
}
protected function nullListener(evt:Event):void{
}
public function getStartProperties():Object{
return (copyObject(startValues));
}
public static function set timeInterval(value:uint):void{
_timeInterval = value;
if ((_activeTicker is TimeTicker)){
(_activeTicker as TimeTicker).interval = (_timeInterval / 1000);
};
}
public static function get timingMode():String{
return (_timingMode);
}
public static function get activeTicker():ITicker{
if (_timingMode == null){
timingMode = HYBRID;
};
return (_activeTicker);
}
public static function set timingMode(value:String):void{
value = ((((value == FRAME)) || ((value == TIME)))) ? value : HYBRID;
if (value == _timingMode){
return;
};
_timingMode = value;
if (_timingMode == TIME){
_activeTicker = new TimeTicker();
(_activeTicker as TimeTicker).interval = (_timeInterval / 1000);
} else {
if (_timingMode == FRAME){
_activeTicker = new FrameTicker();
} else {
_activeTicker = new HybridTicker();
};
};
}
public static function linearEase(t:Number, b:Number, c:Number, d:Number):Number{
return (t);
}
public static function get timeInterval():uint{
return (_timeInterval);
}
}
}//package com.gskinner.motion
import flash.events.*;
import flash.display.*;
import flash.utils.*;
interface ITicker extends IEventDispatcher {
"GTween.as$5:ITicker"?? function get position():Number;
}
class FrameTicker extends EventDispatcher implements ITicker {
protected var shape:Shape;
protected var _position:Number;// = 0
private function FrameTicker():void{
super();
shape = new Shape();
shape.addEventListener(Event.ENTER_FRAME, tick);
}
public function get position():Number{
return (_position);
}
protected function tick(evt:Event):void{
_position++;
dispatchEvent(new Event("tick"));
}
}
dynamic class TargetProxy extends Proxy {
private var gTween:GTween;
private function TargetProxy(gTween:GTween):void{
super();
this.gTween = gTween;
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function deleteProperty(prop):Boolean{
return (gTween.deleteProperty(prop));
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function callProperty(methodName, ... _args){
return (gTween.propertyTarget[methodName].apply(null, _args));
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(prop, value):void{
if (isNaN(value)){
gTween.propertyTarget[prop] = value;
} else {
gTween.setProperty(String(prop), Number(value));
};
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(prop){
var value:Number = gTween.getProperty(prop);
return ((isNaN(value)) ? gTween.propertyTarget[prop] : value);
}
}
class HybridTicker extends EventDispatcher implements ITicker {
protected var shape:Shape;
private function HybridTicker():void{
super();
shape = new Shape();
shape.addEventListener(Event.ENTER_FRAME, tick);
}
public function get position():Number{
return ((getTimer() / 1000));
}
protected function tick(evt:Event):void{
dispatchEvent(new Event("tick"));
}
}
class TimeTicker extends EventDispatcher implements ITicker {
protected var timer:Timer;
private function TimeTicker():void{
super();
timer = new Timer(20);
timer.start();
timer.addEventListener(TimerEvent.TIMER, tick);
}
public function get position():Number{
return ((getTimer() / 1000));
}
public function set interval(value:Number):void{
timer.delay = (value * 1000);
}
protected function tick(evt:TimerEvent):void{
dispatchEvent(new Event("tick"));
evt.updateAfterEvent();
}
}
Section 5
//Camera2D (com.normsoule.pixelblitz.core.Camera2D)
package com.normsoule.pixelblitz.core {
import flash.geom.*;
public class Camera2D {
public var boundry:Rectangle;
public var ease:Number;// = 0.1
public var target:Point;
private var distX:int;
private var distY:int;
public var basePoint:Point;
private static var instance:Camera2D;
private static var allowInstance:Boolean;
public function Camera2D(){
basePoint = new Point();
boundry = new Rectangle();
super();
if (!allowInstance){
throw (new Error("Camera2D is instantiated internally"));
};
}
public function scroll():void{
if (target){
scrollTarget();
};
}
private function scrollTarget():void{
if ((((target.x < boundry.right)) && ((target.x > boundry.left)))){
distX = ((boundry.left - target.x) - basePoint.x);
basePoint.x = (basePoint.x + (distX * ease));
} else {
if (target.x > boundry.right){
distX = (boundry.left - (boundry.right + basePoint.x));
basePoint.x = (basePoint.x + (distX * ease));
};
if (target.x < boundry.left){
distX = (boundry.left - (boundry.left + basePoint.x));
basePoint.x = (basePoint.x + (distX * ease));
};
};
if ((((target.y < boundry.bottom)) && ((target.y > boundry.top)))){
distY = ((boundry.top - target.y) - basePoint.y);
basePoint.y = (basePoint.y + (distY * ease));
} else {
if (target.y > boundry.bottom){
distY = (boundry.top - (boundry.bottom + basePoint.y));
basePoint.y = (basePoint.y + (distY * ease));
};
if (target.y < boundry.top){
distY = (boundry.top - (boundry.top + basePoint.y));
basePoint.y = (basePoint.y + (distY * ease));
};
};
}
public static function getInstance():Camera2D{
if (!instance){
allowInstance = true;
instance = new (Camera2D);
allowInstance = false;
};
return (instance);
}
}
}//package com.normsoule.pixelblitz.core
Section 6
//TextButton (Core.DialogBoxes.TextButton)
package Core.DialogBoxes {
import flash.events.*;
import flash.display.*;
import Core.*;
import flash.text.*;
public class TextButton extends Sprite {
public var txt:TextField;
public var number:int;// = 1
public var image:Sprite;
public var isOver:Boolean;// = false
public function TextButton(p:Sprite, px:Number, py:Number, n:int, onClick:Function=null, enabled:Boolean=true){
var img:Bitmap;
image = new Sprite();
super();
if (!enabled){
img = new Resourcen.instance.IMAGE_BUTTON_RECT();
} else {
img = new Resourcen.instance.IMAGE_BUTTON_RECT();
};
img.smoothing = true;
image.addChild(img);
img.x = (-(img.width) / 2);
img.y = (-(img.height) / 2);
number = n;
addChild(image);
buttonMode = true;
if (enabled){
addEventListener(MouseEvent.MOUSE_OVER, onOver);
addEventListener(MouseEvent.MOUSE_OUT, onOut);
addEventListener(Event.ENTER_FRAME, update);
addEventListener(MouseEvent.CLICK, onClick);
};
AddText(n.toString());
x = px;
y = py;
p.addChild(this);
}
public function update(e:Event):void{
}
private function AddText(s:String):void{
var fmt:TextFormat = new TextFormat("soolidium", 12, 0, "Regular");
txt = new TextField();
txt.y = 7;
txt.height = 20;
txt.selectable = false;
txt.text = s;
txt.setTextFormat(fmt, 0, txt.text.length);
var bmp:BitmapData = new BitmapData(txt.width, txt.height, true, 0);
bmp.draw(txt);
var b:Bitmap = new Bitmap(bmp);
b.y = -8;
if (s.length < 2){
b.x = -5;
} else {
b.x = -8;
};
addChild(b);
}
public function onOut(e:Event):void{
isOver = false;
}
public function onOver(e:Event):void{
isOver = true;
}
}
}//package Core.DialogBoxes
Section 7
//AbstractLevelItem (Core.LevelItems.AbstractLevelItem)
package Core.LevelItems {
import flash.geom.*;
import Core.View.LevelItems.*;
public class AbstractLevelItem {
public var b:Number;
public var view:AbstractLevelItemView;
public var g:Number;
public var name:String;
public var r:Number;
public var id:uint;
public var isCollected:Boolean;// = false
public function AbstractLevelItem(id:uint){
super();
this.id = id;
}
public function reset():void{
this.isCollected = false;
}
public function walkableTest(playerPosition:Point):Boolean{
throw (new Error("Usage of Absctact class"));
}
}
}//package Core.LevelItems
Section 8
//Cloud (Core.LevelItems.Cloud)
package Core.LevelItems {
import flash.geom.*;
import Core.View.LevelItems.*;
public class Cloud extends AbstractLevelItem {
public function Cloud(id:int){
super(id);
r = 10;
g = 0;
b = 0;
name = "cloud";
view = new CloudView();
}
override public function walkableTest(playerPosition:Point):Boolean{
return (true);
}
}
}//package Core.LevelItems
Section 9
//Coin (Core.LevelItems.Coin)
package Core.LevelItems {
import flash.geom.*;
import Core.View.LevelItems.*;
public class Coin extends AbstractLevelItem {
public function Coin(id:int){
super(id);
r = 20;
g = 0;
b = 100;
name = "coin";
view = new CoinView();
}
override public function walkableTest(playerPosition:Point):Boolean{
return (false);
}
}
}//package Core.LevelItems
Section 10
//LevelEnder (Core.LevelItems.LevelEnder)
package Core.LevelItems {
import flash.geom.*;
import Core.View.LevelItems.*;
public class LevelEnder extends AbstractLevelItem {
public function LevelEnder(id:int){
super(id);
r = 60;
g = 0xFF;
b = 0xFF;
name = "levelender";
view = new LevelEnderView();
}
override public function walkableTest(playerPosition:Point):Boolean{
return (false);
}
}
}//package Core.LevelItems
Section 11
//Luck (Core.LevelItems.Luck)
package Core.LevelItems {
import flash.geom.*;
import Core.View.LevelItems.*;
public class Luck extends AbstractLevelItem {
private var rotation:Number;
private var direction:Point;
public function Luck(id:int, direction:Number){
super(id);
view = new LuckView();
direction = (direction % 360);
rotation = direction;
if (direction == 90){
r = 60;
g = 0;
b = 60;
name = "luckRight";
this.direction = new Point(1, 0);
};
if (direction == 180){
r = 0;
g = 60;
b = 0;
name = "luckDown";
this.direction = new Point(0, 1);
};
if (direction == 270){
r = 0;
g = 0;
b = 60;
name = "luckLeft";
this.direction = new Point(-1, 0);
};
if (direction == 0){
r = 60;
g = 0;
b = 0;
name = "luckUp";
this.direction = new Point(0, -1);
};
view.rotation = rotation;
}
override public function walkableTest(playerDirection:Point):Boolean{
if (((!((playerDirection.x == direction.x))) || (!((playerDirection.y == direction.y))))){
return (true);
};
return (false);
}
public function get Direction():Number{
return (this.rotation);
}
}
}//package Core.LevelItems
Section 12
//Level (Core.model.Level)
package Core.model {
import flash.events.*;
import flash.geom.*;
import util.math.*;
import Core.LevelItems.*;
public class Level extends EventDispatcher {
private var matrix:Grid;
private var locks:Array;
private var startPosition:Point;
private var index:uint;
private var rotation:Number;
public function Level(index:uint, widht:uint=0, height:uint=0){
super();
this.matrix = new Grid(widht, height);
this.startPosition = new Point(uint((widht / 2)), uint((height / 2)));
this.rotation = 0;
this.locks = new Array();
this.index = index;
}
public function set Rotation(rotation:Number):void{
this.rotation = rotation;
}
public function getItemAtPosition(x:uint, y:uint):AbstractLevelItem{
return (AbstractLevelItem(matrix.getField(x, y)));
}
public function get Width():uint{
return (this.matrix.Width);
}
public function get Height():uint{
return (this.matrix.Height);
}
public function get Rotation():Number{
return (this.rotation);
}
public function reset():void{
var x:int;
this.rotation = 0;
var y:int;
while (y < this.Height) {
x = 0;
while (x < this.Width) {
x++;
};
y++;
};
}
public function setItemAtPosition(x:uint, y:uint, item:AbstractLevelItem):void{
matrix.setField(x, y, item);
}
public function collectKey(color:uint):void{
var i:int;
while (i < this.locks.length) {
i++;
};
}
public function get Index():uint{
return (this.index);
}
public function get StartPosition():Point{
return (this.startPosition);
}
public function set StartPosition(position:Point):void{
this.startPosition = position;
}
}
}//package Core.model
Section 13
//Player (Core.model.Player)
package Core.model {
import flash.events.*;
import flash.geom.*;
import util.math.*;
public class Player extends EventDispatcher {
private var points:int;
private var position:Point;
private var movementVector:Vector2;
public function Player(){
super();
position = new Point();
points = 0;
movementVector = new Vector2(0, 0);
}
public function set Position(position:Point):void{
this.position = position;
dispatchEvent(new Event(Event.CHANGE));
}
public function set Points(points:int):void{
this.points = points;
dispatchEvent(new Event(Event.CHANGE));
}
public function get Position():Point{
return (this.position);
}
public function get Points():int{
return (this.points);
}
public function set MovementVector(movementVector:Vector2):void{
this.movementVector = movementVector;
dispatchEvent(new Event(Event.CHANGE));
}
public function get MovementVector():Vector2{
return (this.movementVector);
}
public function destruct():void{
this.position = null;
this.points = 0;
this.movementVector = null;
}
}
}//package Core.model
Section 14
//DialogEnd (Core.Screens.Dialogs.DialogEnd)
package Core.Screens.Dialogs {
import com.gskinner.motion.*;
import flash.events.*;
import flash.display.*;
import Core.*;
import flash.text.*;
import mx.effects.easing.*;
public class DialogEnd extends Sprite {
public var mBtnNext:Sprite;
private var mNext:Bitmap;
public var txtScore:TextField;
public var time:String;
public var coins:int;
public var score:int;
public var level:int;// = 0
public var txtTime:TextField;
public var txtCoins:TextField;
private var mNextOver:Bitmap;
public var nbtn:NavButton;
private var mParent:Sprite;
private var mBack:Bitmap;
public function DialogEnd(p:Sprite){
mBack = new Resourcen.instance.IMAGE_DIALOG_COMPLETE();
mBtnNext = new Sprite();
mNext = new Resourcen.instance.IMAGE_BUTTON_OK();
mNextOver = new Resourcen.instance.IMAGE_BUTTON_OK();
txtScore = new TextField();
txtTime = new TextField();
txtCoins = new TextField();
nbtn = new NavButton();
super();
mParent = p;
mBack.smoothing = true;
addChild(mBack);
mBtnNext.addChild(mNext);
mBtnNext.x = ((720 / 2) - (mNext.width / 2));
mBtnNext.y = 320;
mBtnNext.buttonMode = true;
addChild(mBtnNext);
this.addChild(txtScore);
this.addChild(txtCoins);
this.addChild(txtTime);
addChild(nbtn);
nbtn.x = (730 / 2);
nbtn.y = (320 - nbtn.height);
this.visible = false;
this.y = -(this.height);
}
public function SetSubmit(f:Function):void{
}
public function ShowDialog():void{
mParent.addChild(this);
this.visible = true;
var myTween:GTween = new GTween(this, 0.8, {y:0}, {reflect:true, ease:Back.easeOut});
}
public function HideDialog():void{
var myTween:GTween = new GTween(this, 0.8, {y:-(height)}, {reflect:true, ease:Back.easeOut});
myTween.addEventListener(Event.COMPLETE, hideComplete);
}
public function SetBack(f:Function):void{
}
public function update():void{
}
public function hideComplete(e:Event):void{
this.visible = false;
mParent.removeChild(this);
}
public function SetClick(f:Function):void{
mBtnNext.addEventListener(MouseEvent.CLICK, f);
}
public function onNextOver(e:Event):void{
}
public function onNext(e:Event):void{
}
public function onNextOut(e:Event):void{
}
public function setTextInfo(textBox:TextField, text:String, px:Number, py:Number):void{
var tfmt:TextFormat = new TextFormat("Tahoma", 26, 0, "bold");
tfmt.font = "Tahoma";
tfmt.size = 16;
textBox.selectable = false;
textBox.x = px;
textBox.textColor = 0xFFFFFF;
textBox.y = py;
textBox.autoSize = TextFieldAutoSize.LEFT;
textBox.text = text;
textBox.setTextFormat(tfmt);
}
}
}//package Core.Screens.Dialogs
Section 15
//DialogStart (Core.Screens.Dialogs.DialogStart)
package Core.Screens.Dialogs {
import com.gskinner.motion.*;
import flash.events.*;
import flash.display.*;
import Core.*;
import flash.text.*;
import mx.effects.easing.*;
public class DialogStart extends Sprite {
public var mBtnNext:Sprite;
private var mNext:Bitmap;
public var txtScore:TextField;
public var time:String;
public var coins:int;
public var score:int;
public var level:int;// = 0
public var txtTime:TextField;
public var txtCoins:TextField;
private var mNextOver:Bitmap;
private var mParent:Sprite;
private var mBack:Bitmap;
public function DialogStart(p:Sprite){
mBack = new Resourcen.instance.IMAGE_LEVEL_START();
mBtnNext = new Sprite();
mNext = new Resourcen.instance.IMAGE_BUTTON_OK();
mNextOver = new Resourcen.instance.IMAGE_BUTTON_OK();
txtScore = new TextField();
txtTime = new TextField();
txtCoins = new TextField();
super();
mParent = p;
mBack.smoothing = true;
addChild(mBack);
mBtnNext.addChild(mNext);
mBtnNext.x = ((720 / 2) - (mNext.width / 2));
mBtnNext.y = 320;
mBtnNext.buttonMode = true;
addChild(mBtnNext);
this.addChild(txtScore);
this.addChild(txtCoins);
this.addChild(txtTime);
this.visible = false;
this.y = -(this.height);
}
public function SetSubmit(f:Function):void{
}
public function ShowDialog():void{
mParent.addChild(this);
this.visible = true;
var myTween:GTween = new GTween(this, 0.8, {y:0}, {reflect:true, ease:Back.easeOut});
}
public function HideDialog():void{
var myTween:GTween = new GTween(this, 0.8, {y:-(height)}, {reflect:true, ease:Back.easeOut});
myTween.addEventListener(Event.COMPLETE, hideComplete);
}
public function SetBack(f:Function):void{
}
public function update():void{
}
private function hideComplete(e:Event):void{
this.visible = false;
mParent.removeChild(this);
}
public function SetClick(f:Function):void{
mBtnNext.addEventListener(MouseEvent.CLICK, f);
}
public function onNextOver(e:Event):void{
}
public function onNext(e:Event):void{
}
public function onNextOut(e:Event):void{
}
public function setTextInfo(textBox:TextField, text:String, px:Number, py:Number):void{
var tfmt:TextFormat = new TextFormat("Tahoma", 26, 0, "bold");
tfmt.font = "Tahoma";
tfmt.size = 16;
textBox.selectable = false;
textBox.x = px;
textBox.textColor = 0xFFFFFF;
textBox.y = py;
textBox.autoSize = TextFieldAutoSize.LEFT;
textBox.text = text;
textBox.setTextFormat(tfmt);
}
}
}//package Core.Screens.Dialogs
Section 16
//LevelSelect (Core.Screens.Dialogs.LevelSelect)
package Core.Screens.Dialogs {
import com.gskinner.motion.*;
import flash.events.*;
import flash.display.*;
import Core.*;
import mx.effects.easing.*;
import Core.DialogBoxes.*;
public class LevelSelect extends Sprite {
public var imageBack:Bitmap;
public var nbtn:NavButton;
public var mParent:Main;
public function LevelSelect(p:Main){
imageBack = new Resourcen.instance.IMAGE_LEVEL_SELECT();
nbtn = new NavButton();
super();
mParent = p;
imageBack.smoothing = true;
addChild(imageBack);
var btn1:TextButton = new TextButton(this, 185, 170, 1, onSelect, true);
var btn2:TextButton = new TextButton(this, 245, 170, 2, onSelect, (GlobalInfo.instance.lev > 1));
var btn3:TextButton = new TextButton(this, 305, 170, 3, onSelect, (GlobalInfo.instance.lev > 2));
var btn4:TextButton = new TextButton(this, 365, 170, 4, onSelect, (GlobalInfo.instance.lev > 3));
var btn5:TextButton = new TextButton(this, 425, 170, 5, onSelect, (GlobalInfo.instance.lev > 4));
var btn6:TextButton = new TextButton(this, 485, 170, 6, onSelect, (GlobalInfo.instance.lev > 5));
var btn7:TextButton = new TextButton(this, 545, 170, 7, onSelect, (GlobalInfo.instance.lev > 6));
var btn8:TextButton = new TextButton(this, 185, 230, 8, onSelect, (GlobalInfo.instance.lev > 7));
var btn9:TextButton = new TextButton(this, 245, 230, 9, onSelect, (GlobalInfo.instance.lev > 8));
var btn10:TextButton = new TextButton(this, 305, 230, 10, onSelect, (GlobalInfo.instance.lev > 9));
var btn11:TextButton = new TextButton(this, 365, 230, 11, onSelect, (GlobalInfo.instance.lev > 10));
var btn12:TextButton = new TextButton(this, 425, 230, 12, onSelect, (GlobalInfo.instance.lev > 11));
var btn13:TextButton = new TextButton(this, 485, 230, 13, onSelect, (GlobalInfo.instance.lev > 12));
var btn14:TextButton = new TextButton(this, 545, 230, 14, onSelect, (GlobalInfo.instance.lev > 13));
var btn15:TextButton = new TextButton(this, 215, 290, 15, onSelect, (GlobalInfo.instance.lev > 14));
var btn16:TextButton = new TextButton(this, 275, 290, 16, onSelect, (GlobalInfo.instance.lev > 15));
var btn17:TextButton = new TextButton(this, 335, 290, 17, onSelect, (GlobalInfo.instance.lev > 16));
var btn18:TextButton = new TextButton(this, 395, 290, 18, onSelect, (GlobalInfo.instance.lev > 17));
var btn19:TextButton = new TextButton(this, 455, 290, 19, onSelect, (GlobalInfo.instance.lev > 18));
var btn20:TextButton = new TextButton(this, 515, 290, 20, onSelect, (GlobalInfo.instance.lev > 19));
addChild(nbtn);
nbtn.x = (730 / 2);
nbtn.y = (305 + nbtn.height);
nbtn.stop();
this.visible = false;
this.y = -(this.height);
}
public function onSelect(e:Event):void{
var t:TextButton = (e.currentTarget as TextButton);
this.visible = false;
mParent.initBoard(t.number);
}
public function HideDialog():void{
var myTween:GTween = new GTween(this, 0.8, {y:-(height)}, {reflect:true, ease:Back.easeOut});
myTween.addEventListener(Event.COMPLETE, hideComplete);
}
private function hideComplete(e:Event):void{
this.visible = false;
mParent.removeChild(this);
}
public function ShowDialog():void{
mParent.addChild(this);
this.visible = true;
var myTween:GTween = new GTween(this, 0.8, {y:0}, {reflect:true, ease:Back.easeOut});
}
}
}//package Core.Screens.Dialogs
Section 17
//InfoBar (Core.Screens.Layers.InfoBar)
package Core.Screens.Layers {
import flash.display.*;
import flash.text.*;
public class InfoBar extends Sprite {
private var textFormat:TextFormat;
private var label:TextField;
public var redensec:Class;
private var mBitmap:Bitmap;
private var mParent:Sprite;
public function InfoBar(parentSprite:Sprite, px:Number, py:Number, font:String, fontSize:int, color:Object, bgBitmap:Bitmap=null){
redensec = InfoBar_redensec;
super();
this.mParent = parentSprite;
if (bgBitmap != null){
this.mBitmap = bgBitmap;
this.mBitmap.smoothing = true;
this.mBitmap.x = 0;
this.mBitmap.y = 2;
this.addChild(this.mBitmap);
};
this.label = new TextField();
this.label.selectable = false;
this.label.autoSize = TextFieldAutoSize.LEFT;
this.label.text = "Score: ";
this.addChild(this.label);
this.label.x = 10;
this.label.y = 5;
this.x = px;
this.y = py;
var f:Font = new redensec();
this.setTextFormat("Redensek_12pt_st", fontSize, color);
this.textFormat.font = "Redensek_12pt_st";
this.label.setTextFormat(textFormat, 0, this.label.text.length);
this.mParent.addChild(this);
}
public function updateLayer(text:String):void{
this.label.text = text;
this.label.setTextFormat(this.textFormat, 0, this.label.text.length);
}
private function setTextFormat(font:String, size:int, color:Object):void{
this.textFormat = new TextFormat("Redensek_12pt_st", size, color);
}
}
}//package Core.Screens.Layers
Section 18
//InfoBar_redensec (Core.Screens.Layers.InfoBar_redensec)
package Core.Screens.Layers {
import flash.display.*;
import mx.core.*;
public class InfoBar_redensec extends FontAsset {
public var mText:DisplayObject;
}
}//package Core.Screens.Layers
Section 19
//UILayer (Core.Screens.Layers.UILayer)
package Core.Screens.Layers {
import flash.events.*;
import flash.display.*;
import Core.*;
import UI.*;
public class UILayer extends MovieClip {
private var btnSound:Button;
private var btnClose:Button;
private var scoreLayer:InfoBar;
public function UILayer(){
super();
this.btnSound = new Button(this, 650, 0, new Resourcen.instance.IMAGE_BTN_SOUND(), null, this.onSound);
this.scoreLayer = new InfoBar(this, 10, 5, "redensec", 15, 0xFFFFFF, new Resourcen.instance.IMAGE_BALKE());
}
public function onSound(e:Event):void{
GlobalInfo.instance.isSound = !(GlobalInfo.instance.isSound);
GlobalInfo.instance.isMusic = !(GlobalInfo.instance.isMusic);
if (!GlobalInfo.instance.isMusic){
GlobalInfo.instance.StopMusic();
} else {
GlobalInfo.instance.PlayMusic();
};
}
public function getScoreLayer():InfoBar{
return (scoreLayer);
}
public function onClose(e:Event):void{
}
}
}//package Core.Screens.Layers
Section 20
//Board (Core.Screens.Board)
package Core.Screens {
import framework.Widgets.*;
import flash.events.*;
import flash.display.*;
import Core.model.*;
import Core.*;
import Core.Screens.Layers.*;
import util.sound.*;
import flash.utils.*;
import mx.effects.easing.*;
import Assets.*;
import Core.Screens.Dialogs.*;
import Core.View.*;
import org.flashdevelop.utils.*;
public dynamic class Board extends Widget {
public var theParent:Main;
private var stageBack:StageBack;
private var score:int;// = 0
private var _dlgEnd:DialogEnd;
private var uiLayer:UILayer;
private var lLoader:LevelLoader;
private var _dlgStart:DialogStart;
private var curLevel:int;// = 0
public var levelLayer:MovieClip;
public var nbtn:NavButton;
private var mMap:MapView;
private var levelView:LevelView;
private var sTime:String;
private var player:PlayerView;
private var coinsCollected:int;// = 0
private var isPause:Boolean;// = false
private var levels:Array;
public function Board(par:Main, lvl:int){
stageBack = new StageBack();
levelLayer = new MovieClip();
levels = new Array();
nbtn = new NavButton();
super();
this.SetupStartDialog();
curLevel = (lvl - 1);
lLoader = new LevelLoader();
this.initLevels();
this.initLayers();
this.initListeners();
this.setNextLevel();
this.SetupEndDialog();
this.uiLayer = new UILayer();
this.uiLayer.x = 0;
this.uiLayer.y = 0;
this.addChildAt(this.uiLayer, 2);
addChild(nbtn);
nbtn.x = (730 - (nbtn.width / 2));
nbtn.y = (420 - (nbtn.height / 2));
nbtn.stop();
}
private function setNextLevel():void{
levelView = new LevelView(this);
levelView.level = getNextLevel();
levelView.updateLevel();
this.levelView.setup();
this.levelView.startRendering();
levelLayer.x = (730 / 2);
levelLayer.y = (420 / 2);
stageBack.x = (730 / 2);
stageBack.y = (420 / 2);
levelView.addPlayerView();
if (curLevel == 0){
_dlgStart.ShowDialog();
};
}
private function initListeners():void{
addEventListener(MouseEvent.MOUSE_MOVE, mouseMove);
addEventListener(MouseEvent.MOUSE_DOWN, mouseDown);
addEventListener(MouseEvent.MOUSE_UP, mouseUp);
addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
addEventListener(KeyboardEvent.KEY_UP, keyUp);
}
public function onCoinCollected(coinsCollected:int, score:int):void{
this.coinsCollected = coinsCollected;
this.score = score;
GlobalInfo.instance.PlayCoin();
}
public function keyDown(e:KeyboardEvent):void{
}
public function mouseMove(evt:MouseEvent):void{
}
private function SetupEndDialog():void{
_dlgEnd = new DialogEnd(this);
_dlgEnd.SetClick(onNext);
}
public function mouseUp(evt:MouseEvent):void{
}
public function getNextLevel():Level{
return (lLoader.createLevel(levels[curLevel]));
}
private function SetupStartDialog():void{
_dlgStart = new DialogStart(this);
_dlgStart.SetClick(onStart);
}
public function initLevels():void{
var l1:Bitmap = new Resourcen.instance.LEVEL_1();
var l2:Bitmap = new Resourcen.instance.LEVEL_2();
var l3:Bitmap = new Resourcen.instance.LEVEL_3();
var l4:Bitmap = new Resourcen.instance.LEVEL_4();
var l5:Bitmap = new Resourcen.instance.LEVEL_5();
var l6:Bitmap = new Resourcen.instance.LEVEL_6();
var l7:Bitmap = new Resourcen.instance.LEVEL_7();
var l8:Bitmap = new Resourcen.instance.LEVEL_8();
var l9:Bitmap = new Resourcen.instance.LEVEL_9();
var l10:Bitmap = new Resourcen.instance.LEVEL_10();
var l11:Bitmap = new Resourcen.instance.LEVEL_11();
var l12:Bitmap = new Resourcen.instance.LEVEL_12();
var l13:Bitmap = new Resourcen.instance.LEVEL_13();
var l14:Bitmap = new Resourcen.instance.LEVEL_14();
var l15:Bitmap = new Resourcen.instance.LEVEL_15();
var l16:Bitmap = new Resourcen.instance.LEVEL_16();
var l17:Bitmap = new Resourcen.instance.LEVEL_17();
var l18:Bitmap = new Resourcen.instance.LEVEL_18();
var l19:Bitmap = new Resourcen.instance.LEVEL_19();
var l20:Bitmap = new Resourcen.instance.LEVEL_20();
levels.push(l1.bitmapData);
levels.push(l2.bitmapData);
levels.push(l3.bitmapData);
levels.push(l4.bitmapData);
levels.push(l5.bitmapData);
levels.push(l6.bitmapData);
levels.push(l7.bitmapData);
levels.push(l8.bitmapData);
levels.push(l9.bitmapData);
levels.push(l10.bitmapData);
levels.push(l11.bitmapData);
levels.push(l12.bitmapData);
levels.push(l13.bitmapData);
levels.push(l14.bitmapData);
levels.push(l15.bitmapData);
levels.push(l16.bitmapData);
levels.push(l17.bitmapData);
levels.push(l18.bitmapData);
levels.push(l19.bitmapData);
levels.push(l20.bitmapData);
}
private function onStart(e:Event):void{
_dlgStart.HideDialog();
stage.focus = this;
}
override public function update(nTime:Number):void{
if (isPause){
return;
};
sTime = clockTime((getTimer() - levelView.levelStartTime));
uiLayer.getScoreLayer().updateLayer(((((("Coins: " + coinsCollected) + " Score: ") + score) + " Time: ") + sTime));
}
public function removeBoard():void{
}
public function levelComplete():void{
SoundController.Instance.stopSound("[object Resourcen_SOUND_FALLING]");
_dlgEnd.setTextInfo(_dlgEnd.txtTime, sTime, 135, 210);
_dlgEnd.setTextInfo(_dlgEnd.txtScore, score.toString(), 540, 210);
_dlgEnd.setTextInfo(_dlgEnd.txtCoins, coinsCollected.toString(), 325, 210);
_dlgEnd.ShowDialog();
isPause = true;
}
public function rotateLevel(angle:Number):void{
levelLayer.rotation = angle;
stageBack.rotation = angle;
}
public function mouseDown(evt:MouseEvent):void{
}
private function initLayers():void{
addChild(stageBack);
addChild(levelLayer);
stageBack.x = (stageBack.width / 2);
stageBack.y = (stageBack.width / 2);
}
public function onNext(e:Event):void{
_dlgEnd.HideDialog();
stage.focus = this;
isPause = false;
coinsCollected = 0;
removeChild(levelLayer);
levelLayer = new MovieClip();
addChild(levelLayer);
removeChild(uiLayer);
addChild(uiLayer);
rotateLevel(0);
FlashConnect.trace(curLevel);
if (curLevel == 19){
theParent.initMenu();
theParent.removeBoard();
return;
};
if (curLevel < 20){
curLevel++;
if (GlobalInfo.instance.lev < (curLevel + 1)){
GlobalInfo.instance.lev = (curLevel + 1);
GlobalInfo.instance.save();
};
setNextLevel();
};
}
public function clockTime(ms:int):String{
var seconds:int = Math.floor((ms / 1000));
var minutes:int = Math.floor((seconds / 60));
seconds = (seconds - (minutes * 60));
var timeString:String = ((minutes.toString() + ":") + String((seconds + 100)).substr(1, 2));
return (timeString);
}
public function keyUp(e:KeyboardEvent):void{
FlashConnect.trace(e.keyCode);
if (e.keyCode == 39){
levelView.rotate(1);
} else {
if (e.keyCode == 37){
levelView.rotate(-1);
};
};
}
}
}//package Core.Screens
Section 21
//LevelView (Core.Screens.LevelView)
package Core.Screens {
import flash.events.*;
import flash.display.*;
import Core.model.*;
import flash.geom.*;
import util.math.*;
import Core.LevelItems.*;
import Core.*;
import util.sound.*;
import com.normsoule.pixelblitz.core.*;
import flash.utils.*;
import Core.View.*;
import org.flashdevelop.utils.*;
import Core.View.LevelItems.*;
public class LevelView {
private var startRotation:Number;// = 0
public var coins:int;
private var currentPlayerPosition:Point;
public var level:Level;
private var fallingSpeed:Number;// = 0
public var score:int;
private var currentRotation:Number;// = 0
private var fallingDistance:Number;// = 0
public var rotationStarted:Boolean;// = false
public var camera:Camera2D;
public var playerView:PlayerView;
private var parent:Board;
public var levelStartTime:int;
private var lastFall:Number;// = 0
public var rotateTo:int;
private var fallingDirection:Vector2;
private var oldRotation:Number;
private var viewMatrix:Grid;
public var outofrange;
private var rotStart:Number;// = 0
private var viewMovementVector:Vector2;
public var levelContainer:Sprite;
public var player:Player;
private var starsCollected:int;
private var rotationSpeed:Number;// = 1
private var rodDirection:Number;// = 0
private var fallenDistance:Number;// = 0
public var isFalling:Boolean;// = false
private var isStarted:Boolean;// = false
public function LevelView(b:Board){
camera = Camera2D.getInstance();
levelStartTime = getTimer();
super();
parent = b;
player = new Player();
setCameraBoundry(new Rectangle(0, 0, 4800, 4880));
}
private function calcFallingDistance():int{
var distance:int;
var position:Point;
var x:int;
var y:int;
var levelItem:AbstractLevelItem;
var movementVector:Vector2 = player.MovementVector;
var levelWidth:int = level.Width;
var levelHeight:int = level.Height;
var maxDistance:int = ((movementVector.x)!=0) ? levelWidth : levelHeight;
var i = 1;
while (i < maxDistance) {
position = new Point();
position.x = (player.Position.x + (movementVector.x * i));
position.y = (player.Position.y + (movementVector.y * i));
if (position.x < 0){
position.x = (position.x + levelWidth);
FlashConnect.trace("OUT OF RANGE X");
};
if (position.y < 0){
position.y = (position.y + levelHeight);
FlashConnect.trace("OUT OF RANGE Y");
};
x = (position.x % levelWidth);
y = (position.y % levelHeight);
levelItem = level.getItemAtPosition(x, y);
if (levelItem != null){
if ((levelItem is LevelEnder)){
};
if ((levelItem is Coin)){
};
if (levelItem.walkableTest(movementVector)){
player.Position.x = (position.x - movementVector.x);
player.Position.y = (position.y - movementVector.y);
return (((i - 1) * 32));
};
};
i++;
};
return (int.MAX_VALUE);
}
public function setup():void{
var levelItemView:MovieClip;
var x:int;
var currentPos:Point;
var currentMatrixPos:Point;
var item:AbstractLevelItem;
this.levelStartTime = getTimer();
this.starsCollected = 0;
this.score = 0;
var previousPosition:Point = new Point(levelContainer.x, levelContainer.y);
var renderingAreaWidth:int = ((this.level.Width)>64) ? 64 : this.level.Width;
var renderingAreaHeigth:int = ((this.level.Height)>64) ? 64 : this.level.Height;
var y:int = -(uint((renderingAreaHeigth / 2)));
while (y < (renderingAreaHeigth / 2)) {
x = -(uint((renderingAreaWidth / 2)));
while (x < (renderingAreaWidth / 2)) {
currentPos = new Point(x, y);
currentMatrixPos = new Point(currentPos.x, currentPos.y);
while (currentMatrixPos.x < 0) {
currentMatrixPos.x = (currentMatrixPos.x + this.level.Width);
};
currentMatrixPos.x = (currentMatrixPos.x % this.level.Width);
while (currentMatrixPos.y < 0) {
currentMatrixPos.y = (currentMatrixPos.y + this.level.Height);
};
currentMatrixPos.y = (currentMatrixPos.y % this.level.Height);
item = level.getItemAtPosition(currentMatrixPos.x, currentMatrixPos.y);
if (item == null){
} else {
if (item.view.visible){
item.view.x = ((currentMatrixPos.x - (this.level.Width / 2)) * 32);
item.view.y = ((currentMatrixPos.y - (this.level.Height / 2)) * 32);
levelContainer.addChild(item.view);
};
};
x++;
};
y++;
};
parent.levelLayer.addChild(levelContainer);
this.levelContainer.x = (-((level.StartPosition.x - (this.level.Width / 2))) * 32);
this.levelContainer.y = (-((level.StartPosition.y - (this.level.Height / 2))) * 32);
}
private function onRotate(e:Event):void{
if (rodDirection == 0){
return;
};
var t:Number = ((getTimer() - this.rotStart) / 400);
var f:Number = (t + ((1 - Math.pow((2 * (0.5 - t)), 2)) * 0.4));
if (t >= 1){
t = 1;
this.currentRotation = (this.startRotation + (this.rodDirection * 90));
parent.rotateLevel(this.currentRotation);
rotationStarted = false;
this.levelContainer.removeEventListener(Event.ENTER_FRAME, onRotate);
this.rodDirection = 0;
this.onRotationComplete();
return;
};
parent.rotateLevel(this.currentRotation);
this.currentRotation = (this.startRotation + ((this.rodDirection * 90) * f));
}
public function stopFall():void{
var distance:uint;
if (this.fallingSpeed != 0){
this.playerView.view.x = ((player.Position.x - (this.level.Width / 2)) * 32);
this.playerView.view.y = ((player.Position.y - (this.level.Height / 2)) * 32);
this.levelContainer.x = (-((player.Position.x - (this.level.Width / 2))) * 32);
this.levelContainer.y = (-((player.Position.y - (this.level.Height / 2))) * 32);
distance = uint((this.fallingDistance / 32));
this.fallingDistance = 0;
this.fallenDistance = 0;
this.fallingSpeed = 0;
this.lastFall = 0;
playerView.view.gotoAndStop(0);
SoundController.Instance.stopSound("[object Resourcen_SOUND_FALLING]");
isFalling = false;
GlobalInfo.instance.PlayFalled();
};
}
public function setCameraBoundry(r:Rectangle):void{
camera.boundry = r;
}
public function startFall(direction:Vector2, distance:int):void{
this.fallingDirection = direction;
this.fallingDistance = distance;
this.fallenDistance = 0;
this.lastFall = getTimer();
if (fallingSpeed < 1){
fallingSpeed = 1;
};
if (((!((playerView == null))) && (!((playerView.view == null))))){
playerView.view.play();
};
}
public function addPlayerView():void{
player.Position = level.StartPosition;
playerView = new PlayerView(levelContainer);
playerView.view.x = ((level.StartPosition.x - (this.level.Width / 2)) * 32);
playerView.view.y = ((level.StartPosition.y - (this.level.Height / 2)) * 32);
}
public function updateLevel():void{
var width:uint = this.level.Width;
var height:uint = this.level.Height;
levelContainer = new Sprite();
}
private function collectItems():void{
var y:int;
var item:AbstractLevelItem;
var x1:int;
var y1:int;
var rcPlayer:Rectangle;
var expl:Explosion;
var x:int;
while (x < level.Width) {
y = 0;
while (y < level.Height) {
item = level.getItemAtPosition(x, y);
if (item != null){
x1 = ((this.playerView.view.x / 32) + (this.level.Width / 2));
y1 = ((this.playerView.view.y / 32) + (this.level.Height / 2));
rcPlayer = new Rectangle(x1, y1, 16, 16);
if ((((x1 == x)) && ((y1 == y)))){
if ((item is Coin)){
if (item.view.visible){
this.starsCollected++;
this.score = (this.score + 20);
parent.onCoinCollected(starsCollected, score);
expl = new Explosion(levelContainer, playerView.view.x, playerView.view.y);
};
item.view.visible = false;
};
if ((item is LevelEnder)){
item.view.visible = false;
this.onLevelComplete();
};
};
};
y++;
};
x++;
};
}
private function onLevelComplete():void{
levelContainer.removeEventListener(Event.ENTER_FRAME, render);
parent.levelComplete();
}
public function render(e:Event):void{
var previousPosition:Point = new Point(levelContainer.x, levelContainer.y);
this.fall(previousPosition);
}
public function startRendering():void{
this.fallingDirection = new Vector2(0, 0);
this.fallingSpeed = 0;
this.currentPlayerPosition = new Point();
this.lastFall = 0;
var fallingDistance:int;
this.startFall(player.MovementVector, fallingDistance);
this.levelContainer.addEventListener(Event.ENTER_FRAME, render);
this.fallingSpeed = 24;
}
public function rotate(dir:int):void{
if (rotationStarted){
return;
};
if (isFalling){
if (outofrange == true){
} else {
return;
};
};
GlobalInfo.instance.PlayRotate();
rodDirection = dir;
rotationStarted = dir;
rotationStarted = true;
this.oldRotation = this.levelContainer.rotation;
this.rotStart = getTimer();
this.startRotation = this.currentRotation;
this.levelContainer.addEventListener(Event.ENTER_FRAME, onRotate);
}
public function onRotationComplete():void{
var rotation:Number = currentRotation;
level.Rotation = rotation;
rotation = ((rotation + 360) % 360);
this.playerView.getView().rotation = rotation;
if (rotation < 0){
rotation = (360 + rotation);
};
if (rotation == 0){
player.MovementVector = Vector2.DOWN_VECTOR;
};
if (rotation == 270){
player.MovementVector = Vector2.RIGHT_VECTOR;
this.playerView.getView().rotation = (this.playerView.getView().rotation - 180);
};
if (rotation == 90){
player.MovementVector = Vector2.LEFT_VECTOR;
this.playerView.getView().rotation = (this.playerView.getView().rotation + 180);
};
if (rotation == 180){
player.MovementVector = Vector2.UP_VECTOR;
};
var fallingDistance:int = this.calcFallingDistance();
this.startFall(player.MovementVector, fallingDistance);
isStarted = true;
}
private function fall(oldPos:Point):void{
if (this.fallingDistance == 0){
isFalling = false;
return;
};
isFalling = true;
if (fallingSpeed < 34){
fallingSpeed = (fallingSpeed + ((getTimer() - this.lastFall) / 20));
};
this.lastFall = getTimer();
if (fallingDistance <= (fallenDistance + uint(fallingSpeed))){
fallingSpeed = (fallingDistance - fallenDistance);
};
fallenDistance = (fallenDistance + uint(fallingSpeed));
this.levelContainer.x = (oldPos.x - (fallingDirection.x * uint(fallingSpeed)));
this.levelContainer.y = (oldPos.y - (fallingDirection.y * uint(fallingSpeed)));
var lastPlayerPosition:Point = new Point(0, 0);
lastPlayerPosition.x = this.player.Position.x;
lastPlayerPosition.y = this.player.Position.y;
currentPlayerPosition.x = -(Math.round(((levelContainer.x / 32) - (level.Width / 2))));
currentPlayerPosition.y = -(Math.round(((levelContainer.y / 32) - (level.Height / 2))));
if (currentPlayerPosition.x >= level.Width){
FlashConnect.trace("out 1");
outofrange = true;
this.onLevelComplete();
};
if (currentPlayerPosition.x < 0){
FlashConnect.trace("out 2");
outofrange = true;
this.onLevelComplete();
};
if (currentPlayerPosition.y >= level.Height){
FlashConnect.trace("out 3");
outofrange = true;
this.onLevelComplete();
};
if (currentPlayerPosition.y < 0){
FlashConnect.trace("out 4");
outofrange = true;
this.onLevelComplete();
};
player.Position = currentPlayerPosition;
this.playerView.view.x = (this.playerView.view.x + (fallingSpeed * this.player.MovementVector.x));
this.playerView.view.y = (this.playerView.view.y + (fallingSpeed * this.player.MovementVector.y));
GlobalInfo.instance.PlayFalling();
this.collectItems();
if (fallingDistance <= fallenDistance){
this.stopFall();
};
}
}
}//package Core.Screens
Section 22
//MainMenu (Core.Screens.MainMenu)
package Core.Screens {
import framework.Widgets.*;
import flash.events.*;
import flash.display.*;
import Core.*;
import Core.Screens.Dialogs.*;
import UI.*;
import flash.net.*;
public class MainMenu extends Widget {
public var nbutton:NavButton;
private var mMore:Button;
private var mBtnPlay:Button;
public var theParent:Main;
private var mBack:Bitmap;
public var mParent:DisplayObject;
public var dlgSelect:LevelSelect;
public function MainMenu(p:Main){
nbutton = new NavButton();
mBack = new Resourcen.instance.IMAGE_MENU();
super();
GlobalInfo.instance.PlayMusic();
mBack.smoothing = true;
addChild(mBack);
var play:Bitmap = new Resourcen.instance.BUTTON_PLAY();
var more:Bitmap = new Resourcen.instance.BUTTON_MORE();
mBtnPlay = new Button(this, ((730 / 2) - (play.width / 2)), (230 - (play.height / 2)), play, null, this.onPlay);
mMore = new Button(this, ((730 / 2) - (more.width / 2)), ((mBtnPlay.y + mBtnPlay.height) + 15), more, null, this.onLogo);
dlgSelect = new LevelSelect(p);
this.addChild(nbutton);
nbutton.stop();
nbutton.x = (730 / 2);
nbutton.y = ((mMore.y + mMore.height) + 40);
}
override public function update(nTime:Number):void{
}
public function Remove():void{
}
public function onMore(e:Event):void{
}
public function onMusic(e:Event):void{
GlobalInfo.instance.isMusic = !(GlobalInfo.instance.isMusic);
GlobalInfo.instance.MUSICCHANEL.stop();
if (GlobalInfo.instance.isMusic){
};
}
public function onLogo(e:Event):void{
var urlRequest:URLRequest = new URLRequest("http://www.gamesclub.com/");
navigateToURL(urlRequest, "_blank");
}
private function PlayMusic():void{
}
public function onTime(e:Event):void{
theParent.initBoard(2);
theParent.removeMenu();
}
public function onPlay(e:Event):void{
if (this.theParent == null){
return;
};
removeChild(nbutton);
this.dlgSelect.ShowDialog();
}
public function onSound(e:Event):void{
GlobalInfo.instance.isSound = !(GlobalInfo.instance.isSound);
}
}
}//package Core.Screens
Section 23
//AbstractLevelItemView (Core.View.LevelItems.AbstractLevelItemView)
package Core.View.LevelItems {
import flash.display.*;
import flash.geom.*;
public class AbstractLevelItemView extends MovieClip {
protected var viewID:int;
private var view:MovieClip;
protected var coords:Point;
public function AbstractLevelItemView(){
super();
}
public function reset():void{
this.visible = true;
}
public function setCoords(x:uint, y:uint):void{
this.coords = new Point(x, y);
}
}
}//package Core.View.LevelItems
Section 24
//CloudView (Core.View.LevelItems.CloudView)
package Core.View.LevelItems {
public class CloudView extends AbstractLevelItemView {
public function CloudView(){
super();
}
}
}//package Core.View.LevelItems
Section 25
//CoinView (Core.View.LevelItems.CoinView)
package Core.View.LevelItems {
public class CoinView extends AbstractLevelItemView {
public function CoinView(){
super();
}
}
}//package Core.View.LevelItems
Section 26
//Explosion (Core.View.LevelItems.Explosion)
package Core.View.LevelItems {
import flash.events.*;
import flash.display.*;
public class Explosion extends MovieClip {
private var mParent:Sprite;
public function Explosion(p:Sprite, px:Number, py:Number){
super();
mParent = p;
this.x = px;
this.y = py;
mParent.addChild(this);
this.addEventListener(Event.ENTER_FRAME, onEnter);
}
public function onEnter(e:Event):void{
if (this.currentFrame == 17){
mParent.removeChild(this);
this.removeEventListener(Event.ENTER_FRAME, onEnter);
};
}
}
}//package Core.View.LevelItems
Section 27
//LevelEnderView (Core.View.LevelItems.LevelEnderView)
package Core.View.LevelItems {
public class LevelEnderView extends AbstractLevelItemView {
public function LevelEnderView(){
super();
}
}
}//package Core.View.LevelItems
Section 28
//LuckView (Core.View.LevelItems.LuckView)
package Core.View.LevelItems {
public class LuckView extends AbstractLevelItemView {
public function LuckView(){
super();
}
}
}//package Core.View.LevelItems
Section 29
//PlayerClip (Core.View.LevelItems.PlayerClip)
package Core.View.LevelItems {
import flash.display.*;
public class PlayerClip extends MovieClip {
public function PlayerClip(){
super();
this.stop();
}
}
}//package Core.View.LevelItems
Section 30
//MapView (Core.View.MapView)
package Core.View {
import flash.display.*;
public class MapView extends MovieClip {
private var mParent:Sprite;
private var map:Bitmap;
public function MapView(p:Sprite){
super();
mParent = p;
this.x = 50;
this.y = 360;
}
public function createMap(b:BitmapData):void{
var j:int;
var currentPixel:uint;
var red:uint;
var green:uint;
var blue:uint;
var mapSprite:Sprite = new Sprite();
this.graphics.beginFill(0xFFFFFF, 0.6);
this.graphics.drawRect(0, 0, 100, 100);
this.graphics.endFill();
var startX:int = (50 - (b.width / 2));
var startY:int = (50 - (b.height / 2));
var i:int;
while (i < b.width) {
j = 0;
while (j < b.height) {
currentPixel = b.getPixel(i, j);
red = ((currentPixel & 0xFF0000) >> 16);
green = ((currentPixel & 0xFF00) >> 8);
blue = (currentPixel & 0xFF);
if ((((((red + green) + blue) < (3 * 0xFF))) && (!((((((green > 250)) && ((blue < 5)))) && ((red < 5))))))){
mapSprite.graphics.beginFill(0);
mapSprite.graphics.drawRect((3 * i), (3 * j), 2, 2);
mapSprite.graphics.endFill();
};
j++;
};
i++;
};
this.addChild(mapSprite);
mParent.addChild(this);
}
public function updateMap():void{
}
}
}//package Core.View
Section 31
//PlayerView (Core.View.PlayerView)
package Core.View {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import Core.View.LevelItems.*;
public class PlayerView {
public var fallingSpeed:Number;
public var view:MovieClip;
public var lastMove:int;
private var parent:Sprite;
private var idleTimer:Timer;
public var fallingTarget:int;
public function PlayerView(p:Sprite){
super();
view = new PlayerClip();
parent = p;
parent.addChild(view);
}
public function playIntroAnimation():void{
view.y = -50;
fallingSpeed = 1;
fallingTarget = 15;
this.view.addEventListener(Event.ENTER_FRAME, fall);
}
public function setFallingTarget(target:int):void{
fallingTarget = target;
this.view.addEventListener(Event.ENTER_FRAME, fall);
}
public function getView():MovieClip{
return (view);
}
private function fall(e:Event):void{
view.y = (view.y + fallingSpeed);
fallingSpeed++;
if (view.y > fallingTarget){
view.y = fallingTarget;
this.view.removeEventListener(Event.ENTER_FRAME, fall);
};
}
}
}//package Core.View
Section 32
//GlobalInfo (Core.GlobalInfo)
package Core {
import util.sound.*;
import flash.media.*;
import flash.net.*;
public class GlobalInfo {
public var money:int;// = 85
public var isSound:Boolean;// = true
public var MUSIC:Sound;
public var time:String;// = "0"
public var score:int;// = 0
public var isMusic:Boolean;// = true
public var lev:int;// = 1
private var sharedData:SharedObject;// = null
public var MUSICCHANEL:SoundChannel;
private static var _instance:GlobalInfo;
public function GlobalInfo(){
super();
sharedData = SharedObject.getLocal("starGameData");
if (sharedData.data.level == undefined){
lev = 1;
} else {
lev = sharedData.data.level;
};
if (sharedData.data.ismusic == undefined){
isMusic = true;
} else {
isMusic = sharedData.data.ismusic;
};
if (sharedData.data.issound == undefined){
isSound = true;
} else {
isSound = sharedData.data.issound;
};
}
public function PlayFalled():void{
if (!isSound){
return;
};
var s:Sound = new Resourcen.instance.SOUND_LANDING();
SoundController.Instance.playSound(s, 0, false, 0.6);
}
public function PlayRotate():void{
if (!isSound){
return;
};
var s:Sound = new Resourcen.instance.SOUND_ROTATE();
SoundController.Instance.playSound(s, 0, false, 0.6);
}
public function PlayFalling():void{
if (!isSound){
return;
};
var s:Sound = new Resourcen.instance.SOUND_FALLING();
SoundController.Instance.playSound(s, 0, false, 0.4);
}
public function PlayCoin():void{
if (!isSound){
return;
};
var s:Sound = new Resourcen.instance.SOUND_COIN();
SoundController.Instance.playSound(s, 0, false, 1);
}
public function StopMusic():void{
SoundController.Instance.stopSound("[object Resourcen_SOUND_MUSIC]", 0.6);
}
public function PlayMusic():void{
if (!isMusic){
return;
};
var s:Sound = new Resourcen.instance.SOUND_MUSIC();
SoundController.Instance.playSound(s, 0, true, 0.7);
}
public function save():void{
sharedData.data.level = lev;
sharedData.data.ismusic = isMusic;
sharedData.data.issound = isSound;
sharedData.flush();
}
public static function get instance():GlobalInfo{
if (GlobalInfo._instance == null){
GlobalInfo._instance = new (GlobalInfo);
};
return (GlobalInfo._instance);
}
}
}//package Core
Section 33
//LevelLoader (Core.LevelLoader)
package Core {
import flash.display.*;
import Core.model.*;
import flash.geom.*;
import Core.LevelItems.*;
public class LevelLoader {
public var GameItemAssets:Array;
private var levelIndex:uint;
public function LevelLoader(){
GameItemAssets = new Array();
super();
GameItemAssets.push(new Cloud(1));
GameItemAssets.push(new LevelEnder(1));
GameItemAssets.push(new Coin(1));
GameItemAssets.push(new Luck(1, 0));
GameItemAssets.push(new Luck(1, 90));
GameItemAssets.push(new Luck(1, 180));
GameItemAssets.push(new Luck(1, 270));
}
private function mapColorToArrayIndex(r:uint, g:uint, b:uint):int{
var dr:Number;
var dg:Number;
var db:Number;
var d:Number = Number.MAX_VALUE;
var nextIndex = -1;
var i:int;
while (i < GameItemAssets.length) {
dr = Math.abs((Number(GameItemAssets[i].r) - r));
dg = Math.abs((Number(GameItemAssets[i].g) - g));
db = Math.abs((Number(GameItemAssets[i].b) - b));
if (((dr + dg) + db) < d){
d = ((dr + dg) + db);
nextIndex = i;
};
i++;
};
return (nextIndex);
}
public function createLevel(data:BitmapData):Level{
var x:int;
var currentPixel:uint;
var red:uint;
var green:uint;
var blue:uint;
var index:int;
var item:AbstractLevelItem;
var level:Level = new Level(this.levelIndex, data.width, data.height);
var y:int;
while (y < data.height) {
x = 0;
for (;x < data.width;x++) {
currentPixel = data.getPixel(x, y);
red = ((currentPixel & 0xFF0000) >> 16);
green = ((currentPixel & 0xFF00) >> 8);
blue = (currentPixel & 0xFF);
if ((((((red + green) + blue) < (3 * 0xFF))) && (!((((((green > 250)) && ((blue < 5)))) && ((red < 5))))))){
index = this.mapColorToArrayIndex(red, green, blue);
if (index >= GameItemAssets.length){
continue;
};
item = null;
switch (GameItemAssets[index].name){
case "cloud":
item = new Cloud(index);
break;
case "levelender":
item = new LevelEnder(index);
break;
case "coin":
item = new Coin(index);
break;
case "luckUp":
item = new Luck(index, 0);
break;
case "luckDown":
item = new Luck(index, 180);
break;
case "luckRight":
item = new Luck(index, 90);
break;
case "luckLeft":
item = new Luck(index, 270);
break;
};
level.setItemAtPosition(x, y, item);
};
if ((((((green == 0xFF)) && ((red == 0)))) && ((blue == 0)))){
level.StartPosition = new Point(x, y);
};
};
y++;
};
return (level);
}
}
}//package Core
Section 34
//Resourcen (Core.Resourcen)
package Core {
import flash.text.*;
public class Resourcen {
public var IMAGE_BALKE:Class;
public var IMAGE_BUTTON_OK:Class;
public var IMAGE_BACK_GREEN:Class;
public var IMAGE_CLOUD:Class;
public var LEVEL_1:Class;
public var LEVEL_2:Class;
public var IMAGE_BTN_CLOSE:Class;
public var LEVEL_4:Class;
public var LEVEL_5:Class;
public var LEVEL_6:Class;
public var LEVEL_7:Class;
public var LEVEL_8:Class;
public var LEVEL_9:Class;
public var LEVEL_3:Class;
public var textFmt:TextFormat;
public var BUTTON_PLAY:Class;
public var IMAGE_LEVEL_START:Class;
public var SOUND_FALLING:Class;
public var SOUND_LANDING:Class;
public var IMAGE_BTN_SOUND:Class;
public var SOUND_ROTATE:Class;
public var SCOREBAR:Class;
public var MOVIE_BACK:Class;
public var BUTTON_SCORE:Class;
public var IMAGE_DIALOG_COMPLETE:Class;
public var SOUND_MUSIC:Class;
public var IMAGE_LEVEL_SELECT:Class;
public var IMAGE_BUTTON_RECT:Class;
public var LEVEL_10:Class;
public var LEVEL_11:Class;
public var LEVEL_12:Class;
public var LEVEL_13:Class;
public var LEVEL_14:Class;
public var LEVEL_15:Class;
public var LEVEL_16:Class;
public var LEVEL_17:Class;
public var LEVEL_18:Class;
public var LEVEL_19:Class;
public var IMAGE_STAR:Class;
public var SOUND_COIN:Class;
public var IMAGE_GREAT:Class;
public var BUTTON_MORE:Class;
public var LEVEL_20:Class;
public var IMAGE_MENU:Class;
private static var _instance:Resourcen;
public function Resourcen(){
SCOREBAR = Resourcen_SCOREBAR;
MOVIE_BACK = Resourcen_MOVIE_BACK;
IMAGE_BACK_GREEN = Resourcen_IMAGE_BACK_GREEN;
IMAGE_CLOUD = Resourcen_IMAGE_CLOUD;
LEVEL_1 = Resourcen_LEVEL_1;
LEVEL_2 = Resourcen_LEVEL_2;
LEVEL_3 = Resourcen_LEVEL_3;
LEVEL_4 = Resourcen_LEVEL_4;
LEVEL_5 = Resourcen_LEVEL_5;
LEVEL_6 = Resourcen_LEVEL_6;
LEVEL_7 = Resourcen_LEVEL_7;
LEVEL_8 = Resourcen_LEVEL_8;
LEVEL_9 = Resourcen_LEVEL_9;
LEVEL_10 = Resourcen_LEVEL_10;
LEVEL_11 = Resourcen_LEVEL_11;
LEVEL_12 = Resourcen_LEVEL_12;
LEVEL_13 = Resourcen_LEVEL_13;
LEVEL_14 = Resourcen_LEVEL_14;
LEVEL_15 = Resourcen_LEVEL_15;
LEVEL_16 = Resourcen_LEVEL_16;
LEVEL_17 = Resourcen_LEVEL_17;
LEVEL_18 = Resourcen_LEVEL_18;
LEVEL_19 = Resourcen_LEVEL_19;
LEVEL_20 = Resourcen_LEVEL_20;
IMAGE_BTN_SOUND = Resourcen_IMAGE_BTN_SOUND;
IMAGE_BTN_CLOSE = Resourcen_IMAGE_BTN_CLOSE;
IMAGE_BALKE = Resourcen_IMAGE_BALKE;
SOUND_COIN = Resourcen_SOUND_COIN;
SOUND_LANDING = Resourcen_SOUND_LANDING;
SOUND_ROTATE = Resourcen_SOUND_ROTATE;
SOUND_FALLING = Resourcen_SOUND_FALLING;
SOUND_MUSIC = Resourcen_SOUND_MUSIC;
IMAGE_GREAT = Resourcen_IMAGE_GREAT;
IMAGE_STAR = Resourcen_IMAGE_STAR;
IMAGE_MENU = Resourcen_IMAGE_MENU;
BUTTON_PLAY = Resourcen_BUTTON_PLAY;
BUTTON_MORE = Resourcen_BUTTON_MORE;
BUTTON_SCORE = Resourcen_BUTTON_SCORE;
IMAGE_DIALOG_COMPLETE = Resourcen_IMAGE_DIALOG_COMPLETE;
IMAGE_BUTTON_OK = Resourcen_IMAGE_BUTTON_OK;
IMAGE_LEVEL_SELECT = Resourcen_IMAGE_LEVEL_SELECT;
IMAGE_LEVEL_START = Resourcen_IMAGE_LEVEL_START;
IMAGE_BUTTON_RECT = Resourcen_IMAGE_BUTTON_RECT;
textFmt = new TextFormat("Tahoma", 13, 0xFFFFFF, "bold");
super();
}
public static function get instance():Resourcen{
if (Resourcen._instance == null){
Resourcen._instance = new (Resourcen);
};
return (Resourcen._instance);
}
}
}//package Core
Section 35
//Resourcen_BUTTON_MORE (Core.Resourcen_BUTTON_MORE)
package Core {
import mx.core.*;
public class Resourcen_BUTTON_MORE extends BitmapAsset {
}
}//package Core
Section 36
//Resourcen_BUTTON_PLAY (Core.Resourcen_BUTTON_PLAY)
package Core {
import mx.core.*;
public class Resourcen_BUTTON_PLAY extends BitmapAsset {
}
}//package Core
Section 37
//Resourcen_BUTTON_SCORE (Core.Resourcen_BUTTON_SCORE)
package Core {
import mx.core.*;
public class Resourcen_BUTTON_SCORE extends BitmapAsset {
}
}//package Core
Section 38
//Resourcen_IMAGE_BACK_GREEN (Core.Resourcen_IMAGE_BACK_GREEN)
package Core {
import mx.core.*;
public class Resourcen_IMAGE_BACK_GREEN extends BitmapAsset {
}
}//package Core
Section 39
//Resourcen_IMAGE_BALKE (Core.Resourcen_IMAGE_BALKE)
package Core {
import mx.core.*;
public class Resourcen_IMAGE_BALKE extends BitmapAsset {
}
}//package Core
Section 40
//Resourcen_IMAGE_BTN_CLOSE (Core.Resourcen_IMAGE_BTN_CLOSE)
package Core {
import mx.core.*;
public class Resourcen_IMAGE_BTN_CLOSE extends BitmapAsset {
}
}//package Core
Section 41
//Resourcen_IMAGE_BTN_SOUND (Core.Resourcen_IMAGE_BTN_SOUND)
package Core {
import mx.core.*;
public class Resourcen_IMAGE_BTN_SOUND extends BitmapAsset {
}
}//package Core
Section 42
//Resourcen_IMAGE_BUTTON_OK (Core.Resourcen_IMAGE_BUTTON_OK)
package Core {
import mx.core.*;
public class Resourcen_IMAGE_BUTTON_OK extends BitmapAsset {
}
}//package Core
Section 43
//Resourcen_IMAGE_BUTTON_RECT (Core.Resourcen_IMAGE_BUTTON_RECT)
package Core {
import mx.core.*;
public class Resourcen_IMAGE_BUTTON_RECT extends BitmapAsset {
}
}//package Core
Section 44
//Resourcen_IMAGE_CLOUD (Core.Resourcen_IMAGE_CLOUD)
package Core {
import flash.display.*;
import mx.core.*;
public class Resourcen_IMAGE_CLOUD extends SpriteAsset {
public var mText:DisplayObject;
}
}//package Core
Section 45
//Resourcen_IMAGE_DIALOG_COMPLETE (Core.Resourcen_IMAGE_DIALOG_COMPLETE)
package Core {
import mx.core.*;
public class Resourcen_IMAGE_DIALOG_COMPLETE extends BitmapAsset {
}
}//package Core
Section 46
//Resourcen_IMAGE_GREAT (Core.Resourcen_IMAGE_GREAT)
package Core {
import mx.core.*;
public class Resourcen_IMAGE_GREAT extends BitmapAsset {
}
}//package Core
Section 47
//Resourcen_IMAGE_LEVEL_SELECT (Core.Resourcen_IMAGE_LEVEL_SELECT)
package Core {
import mx.core.*;
public class Resourcen_IMAGE_LEVEL_SELECT extends BitmapAsset {
}
}//package Core
Section 48
//Resourcen_IMAGE_LEVEL_START (Core.Resourcen_IMAGE_LEVEL_START)
package Core {
import mx.core.*;
public class Resourcen_IMAGE_LEVEL_START extends BitmapAsset {
}
}//package Core
Section 49
//Resourcen_IMAGE_MENU (Core.Resourcen_IMAGE_MENU)
package Core {
import mx.core.*;
public class Resourcen_IMAGE_MENU extends BitmapAsset {
}
}//package Core
Section 50
//Resourcen_IMAGE_STAR (Core.Resourcen_IMAGE_STAR)
package Core {
import mx.core.*;
public class Resourcen_IMAGE_STAR extends BitmapAsset {
}
}//package Core
Section 51
//Resourcen_LEVEL_1 (Core.Resourcen_LEVEL_1)
package Core {
import mx.core.*;
public class Resourcen_LEVEL_1 extends BitmapAsset {
}
}//package Core
Section 52
//Resourcen_LEVEL_10 (Core.Resourcen_LEVEL_10)
package Core {
import mx.core.*;
public class Resourcen_LEVEL_10 extends BitmapAsset {
}
}//package Core
Section 53
//Resourcen_LEVEL_11 (Core.Resourcen_LEVEL_11)
package Core {
import mx.core.*;
public class Resourcen_LEVEL_11 extends BitmapAsset {
}
}//package Core
Section 54
//Resourcen_LEVEL_12 (Core.Resourcen_LEVEL_12)
package Core {
import mx.core.*;
public class Resourcen_LEVEL_12 extends BitmapAsset {
}
}//package Core
Section 55
//Resourcen_LEVEL_13 (Core.Resourcen_LEVEL_13)
package Core {
import mx.core.*;
public class Resourcen_LEVEL_13 extends BitmapAsset {
}
}//package Core
Section 56
//Resourcen_LEVEL_14 (Core.Resourcen_LEVEL_14)
package Core {
import mx.core.*;
public class Resourcen_LEVEL_14 extends BitmapAsset {
}
}//package Core
Section 57
//Resourcen_LEVEL_15 (Core.Resourcen_LEVEL_15)
package Core {
import mx.core.*;
public class Resourcen_LEVEL_15 extends BitmapAsset {
}
}//package Core
Section 58
//Resourcen_LEVEL_16 (Core.Resourcen_LEVEL_16)
package Core {
import mx.core.*;
public class Resourcen_LEVEL_16 extends BitmapAsset {
}
}//package Core
Section 59
//Resourcen_LEVEL_17 (Core.Resourcen_LEVEL_17)
package Core {
import mx.core.*;
public class Resourcen_LEVEL_17 extends BitmapAsset {
}
}//package Core
Section 60
//Resourcen_LEVEL_18 (Core.Resourcen_LEVEL_18)
package Core {
import mx.core.*;
public class Resourcen_LEVEL_18 extends BitmapAsset {
}
}//package Core
Section 61
//Resourcen_LEVEL_19 (Core.Resourcen_LEVEL_19)
package Core {
import mx.core.*;
public class Resourcen_LEVEL_19 extends BitmapAsset {
}
}//package Core
Section 62
//Resourcen_LEVEL_2 (Core.Resourcen_LEVEL_2)
package Core {
import mx.core.*;
public class Resourcen_LEVEL_2 extends BitmapAsset {
}
}//package Core
Section 63
//Resourcen_LEVEL_20 (Core.Resourcen_LEVEL_20)
package Core {
import mx.core.*;
public class Resourcen_LEVEL_20 extends BitmapAsset {
}
}//package Core
Section 64
//Resourcen_LEVEL_3 (Core.Resourcen_LEVEL_3)
package Core {
import mx.core.*;
public class Resourcen_LEVEL_3 extends BitmapAsset {
}
}//package Core
Section 65
//Resourcen_LEVEL_4 (Core.Resourcen_LEVEL_4)
package Core {
import mx.core.*;
public class Resourcen_LEVEL_4 extends BitmapAsset {
}
}//package Core
Section 66
//Resourcen_LEVEL_5 (Core.Resourcen_LEVEL_5)
package Core {
import mx.core.*;
public class Resourcen_LEVEL_5 extends BitmapAsset {
}
}//package Core
Section 67
//Resourcen_LEVEL_6 (Core.Resourcen_LEVEL_6)
package Core {
import mx.core.*;
public class Resourcen_LEVEL_6 extends BitmapAsset {
}
}//package Core
Section 68
//Resourcen_LEVEL_7 (Core.Resourcen_LEVEL_7)
package Core {
import mx.core.*;
public class Resourcen_LEVEL_7 extends BitmapAsset {
}
}//package Core
Section 69
//Resourcen_LEVEL_8 (Core.Resourcen_LEVEL_8)
package Core {
import mx.core.*;
public class Resourcen_LEVEL_8 extends BitmapAsset {
}
}//package Core
Section 70
//Resourcen_LEVEL_9 (Core.Resourcen_LEVEL_9)
package Core {
import mx.core.*;
public class Resourcen_LEVEL_9 extends BitmapAsset {
}
}//package Core
Section 71
//Resourcen_MOVIE_BACK (Core.Resourcen_MOVIE_BACK)
package Core {
import flash.display.*;
import mx.core.*;
public class Resourcen_MOVIE_BACK extends SpriteAsset {
public var mText:DisplayObject;
}
}//package Core
Section 72
//Resourcen_SCOREBAR (Core.Resourcen_SCOREBAR)
package Core {
import flash.display.*;
import mx.core.*;
public class Resourcen_SCOREBAR extends SpriteAsset {
public var mText:DisplayObject;
}
}//package Core
Section 73
//Resourcen_SOUND_COIN (Core.Resourcen_SOUND_COIN)
package Core {
import flash.display.*;
import mx.core.*;
public class Resourcen_SOUND_COIN extends SoundAsset {
public var mText:DisplayObject;
}
}//package Core
Section 74
//Resourcen_SOUND_FALLING (Core.Resourcen_SOUND_FALLING)
package Core {
import flash.display.*;
import mx.core.*;
public class Resourcen_SOUND_FALLING extends SoundAsset {
public var mText:DisplayObject;
}
}//package Core
Section 75
//Resourcen_SOUND_LANDING (Core.Resourcen_SOUND_LANDING)
package Core {
import flash.display.*;
import mx.core.*;
public class Resourcen_SOUND_LANDING extends SoundAsset {
public var mText:DisplayObject;
}
}//package Core
Section 76
//Resourcen_SOUND_MUSIC (Core.Resourcen_SOUND_MUSIC)
package Core {
import flash.display.*;
import mx.core.*;
public class Resourcen_SOUND_MUSIC extends SoundAsset {
public var mText:DisplayObject;
}
}//package Core
Section 77
//Resourcen_SOUND_ROTATE (Core.Resourcen_SOUND_ROTATE)
package Core {
import flash.display.*;
import mx.core.*;
public class Resourcen_SOUND_ROTATE extends SoundAsset {
public var mText:DisplayObject;
}
}//package Core
Section 78
//IWidget (framework.Widgets.IWidget)
package framework.Widgets {
import flash.events.*;
public interface IWidget extends IEventDispatcher {
function onCollideDetected(_arg1:int, _arg2:Number, _arg3:Number):void;
function get currentScreen():IWidget;
function get parentScreen():IWidget;
function update(:Number):void;
function setWidget(:Class):void;
function dispose():void;
function onCollide(_arg1:Number, _arg2:Number):void;
}
}//package framework.Widgets
Section 79
//Root (framework.Widgets.Root)
package framework.Widgets {
import flash.display.*;
public class Root extends Sprite {
public function Root(){
super();
}
}
}//package framework.Widgets
Section 80
//Widget (framework.Widgets.Widget)
package framework.Widgets {
import flash.display.*;
public class Widget extends MovieClip implements IWidget {
public function Widget(){
super();
}
public function onCollideDetected(cType:int, x_:Number, y_:Number):void{
}
public function update(nTime:Number):void{
}
public function get currentScreen():IWidget{
return (null);
}
public function setWidget(widget:Class):void{
}
public function dispose():void{
}
public function get parentScreen():IWidget{
return (null);
}
public function onCollide(x_:Number, y_:Number):void{
}
}
}//package framework.Widgets
Section 81
//WidgetManager (framework.Widgets.WidgetManager)
package framework.Widgets {
public class WidgetManager {
private var parent:Root;
private var widgets:Array;
private static var _instance:WidgetManager;
public function WidgetManager(){
super();
widgets = new Array();
}
public function addWidget(w:Widget):void{
widgets.push(w);
parent.addChild(w);
}
public function removeWidget(w:Widget):void{
var w1:Widget;
parent.removeChild(w);
var i:int;
while (i < widgets.length) {
w1 = widgets[i];
if (w1 == w){
widgets.splice(i, 1);
break;
};
i++;
};
}
public function update(nTime:Number):void{
var w:Widget;
var i:int;
while (i < widgets.length) {
w = widgets[i];
w.update(nTime);
i++;
};
}
public function SetParent(r:Root):void{
parent = r;
}
public static function get instance():WidgetManager{
if (WidgetManager._instance == null){
WidgetManager._instance = new (WidgetManager);
};
return (WidgetManager._instance);
}
}
}//package framework.Widgets
Section 82
//BitmapAsset (mx.core.BitmapAsset)
package mx.core {
import flash.display.*;
public class BitmapAsset extends FlexBitmap implements IFlexAsset, IFlexDisplayObject {
mx_internal static const VERSION:String = "3.5.0.12683";
public function BitmapAsset(bitmapData:BitmapData=null, pixelSnapping:String="auto", smoothing:Boolean=false){
super(bitmapData, pixelSnapping, smoothing);
}
public function get measuredWidth():Number{
if (bitmapData){
return (bitmapData.width);
};
return (0);
}
public function get measuredHeight():Number{
if (bitmapData){
return (bitmapData.height);
};
return (0);
}
public function setActualSize(newWidth:Number, newHeight:Number):void{
width = newWidth;
height = newHeight;
}
public function move(x:Number, y:Number):void{
this.x = x;
this.y = y;
}
}
}//package mx.core
Section 83
//EdgeMetrics (mx.core.EdgeMetrics)
package mx.core {
public class EdgeMetrics {
public var top:Number;
public var left:Number;
public var bottom:Number;
public var right:Number;
mx_internal static const VERSION:String = "3.5.0.12683";
public static const EMPTY:EdgeMetrics = new EdgeMetrics(0, 0, 0, 0);
;
public function EdgeMetrics(left:Number=0, top:Number=0, right:Number=0, bottom:Number=0){
super();
this.left = left;
this.top = top;
this.right = right;
this.bottom = bottom;
}
public function clone():EdgeMetrics{
return (new EdgeMetrics(left, top, right, bottom));
}
}
}//package mx.core
Section 84
//FlexBitmap (mx.core.FlexBitmap)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexBitmap extends Bitmap {
mx_internal static const VERSION:String = "3.5.0.12683";
public function FlexBitmap(bitmapData:BitmapData=null, pixelSnapping:String="auto", smoothing:Boolean=false){
var bitmapData = bitmapData;
var pixelSnapping = pixelSnapping;
var smoothing = smoothing;
super(bitmapData, pixelSnapping, smoothing);
name = NameUtil.createUniqueName(this);
//unresolved jump
var _slot1 = e;
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 85
//FlexSprite (mx.core.FlexSprite)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexSprite extends Sprite {
mx_internal static const VERSION:String = "3.5.0.12683";
public function FlexSprite(){
super();
name = NameUtil.createUniqueName(this);
//unresolved jump
var _slot1 = e;
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 86
//FontAsset (mx.core.FontAsset)
package mx.core {
import flash.text.*;
public class FontAsset extends Font implements IFlexAsset {
mx_internal static const VERSION:String = "3.5.0.12683";
public function FontAsset(){
super();
}
}
}//package mx.core
Section 87
//IBorder (mx.core.IBorder)
package mx.core {
public interface IBorder {
function get borderMetrics():EdgeMetrics;
}
}//package mx.core
Section 88
//IFlexAsset (mx.core.IFlexAsset)
package mx.core {
public interface IFlexAsset {
}
}//package mx.core
Section 89
//IFlexDisplayObject (mx.core.IFlexDisplayObject)
package mx.core {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.accessibility.*;
public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher {
function get visible():Boolean;
function get rotation():Number;
function localToGlobal(void:Point):Point;
function get name():String;
function set width(flash.display:Number):void;
function get measuredHeight():Number;
function get blendMode():String;
function get scale9Grid():Rectangle;
function set name(flash.display:String):void;
function set scaleX(flash.display:Number):void;
function set scaleY(flash.display:Number):void;
function get measuredWidth():Number;
function get accessibilityProperties():AccessibilityProperties;
function set scrollRect(flash.display:Rectangle):void;
function get cacheAsBitmap():Boolean;
function globalToLocal(void:Point):Point;
function get height():Number;
function set blendMode(flash.display:String):void;
function get parent():DisplayObjectContainer;
function getBounds(String:DisplayObject):Rectangle;
function get opaqueBackground():Object;
function set scale9Grid(flash.display:Rectangle):void;
function setActualSize(_arg1:Number, _arg2:Number):void;
function set alpha(flash.display:Number):void;
function set accessibilityProperties(flash.display:AccessibilityProperties):void;
function get width():Number;
function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean;
function set cacheAsBitmap(flash.display:Boolean):void;
function get scaleX():Number;
function get scaleY():Number;
function get scrollRect():Rectangle;
function get mouseX():Number;
function get mouseY():Number;
function set height(flash.display:Number):void;
function set mask(flash.display:DisplayObject):void;
function getRect(String:DisplayObject):Rectangle;
function get alpha():Number;
function set transform(flash.display:Transform):void;
function move(_arg1:Number, _arg2:Number):void;
function get loaderInfo():LoaderInfo;
function get root():DisplayObject;
function hitTestObject(mx.core:IFlexDisplayObject/mx.core:IFlexDisplayObject:stage/get:DisplayObject):Boolean;
function set opaqueBackground(flash.display:Object):void;
function set visible(flash.display:Boolean):void;
function get mask():DisplayObject;
function set x(flash.display:Number):void;
function set y(flash.display:Number):void;
function get transform():Transform;
function set filters(flash.display:Array):void;
function get x():Number;
function get y():Number;
function get filters():Array;
function set rotation(flash.display:Number):void;
function get stage():Stage;
}
}//package mx.core
Section 90
//IRepeaterClient (mx.core.IRepeaterClient)
package mx.core {
public interface IRepeaterClient {
function get instanceIndices():Array;
function set instanceIndices(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void;
function get isDocument():Boolean;
function set repeaters(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void;
function initializeRepeaterArrays(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:IRepeaterClient):void;
function get repeaters():Array;
function set repeaterIndices(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void;
function get repeaterIndices():Array;
}
}//package mx.core
Section 91
//mx_internal (mx.core.mx_internal)
package mx.core {
public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal";
}//package mx.core
Section 92
//SoundAsset (mx.core.SoundAsset)
package mx.core {
import flash.media.*;
public class SoundAsset extends Sound implements IFlexAsset {
mx_internal static const VERSION:String = "3.5.0.12683";
public function SoundAsset(){
super();
}
}
}//package mx.core
Section 93
//SpriteAsset (mx.core.SpriteAsset)
package mx.core {
public class SpriteAsset extends FlexSprite implements IFlexAsset, IFlexDisplayObject, IBorder {
private var _measuredHeight:Number;
private var _measuredWidth:Number;
mx_internal static const VERSION:String = "3.5.0.12683";
public function SpriteAsset(){
super();
_measuredWidth = width;
_measuredHeight = height;
}
public function get measuredWidth():Number{
return (_measuredWidth);
}
public function get measuredHeight():Number{
return (_measuredHeight);
}
public function setActualSize(newWidth:Number, newHeight:Number):void{
width = newWidth;
height = newHeight;
}
public function move(x:Number, y:Number):void{
this.x = x;
this.y = y;
}
public function get borderMetrics():EdgeMetrics{
if (scale9Grid == null){
return (EdgeMetrics.EMPTY);
};
return (new EdgeMetrics(scale9Grid.left, scale9Grid.top, Math.ceil((measuredWidth - scale9Grid.right)), Math.ceil((measuredHeight - scale9Grid.bottom))));
}
}
}//package mx.core
Section 94
//Back (mx.effects.easing.Back)
package mx.effects.easing {
import mx.core.*;
public class Back {
mx_internal static const VERSION:String = "3.5.0.12683";
public function Back(){
super();
}
public static function easeIn(t:Number, b:Number, c:Number, d:Number, s:Number=0):Number{
if (!s){
s = 1.70158;
};
t = (t / d);
return (((((c * t) * t) * (((s + 1) * t) - s)) + b));
}
public static function easeInOut(t:Number, b:Number, c:Number, d:Number, s:Number=0):Number{
if (!s){
s = 1.70158;
};
t = (t / (d / 2));
if (t < 1){
s = (s * 1.525);
return ((((c / 2) * ((t * t) * (((s + 1) * t) - s))) + b));
};
t = (t - 2);
s = (s * 1.525);
return ((((c / 2) * (((t * t) * (((s + 1) * t) + s)) + 2)) + b));
}
public static function easeOut(t:Number, b:Number, c:Number, d:Number, s:Number=0):Number{
if (!s){
s = 1.70158;
};
t = ((t / d) - 1);
return (((c * (((t * t) * (((s + 1) * t) + s)) + 1)) + b));
}
}
}//package mx.effects.easing
Section 95
//NameUtil (mx.utils.NameUtil)
package mx.utils {
import flash.display.*;
import mx.core.*;
import flash.utils.*;
public class NameUtil {
mx_internal static const VERSION:String = "3.5.0.12683";
private static var counter:int = 0;
public function NameUtil(){
super();
}
public static function displayObjectToString(displayObject:DisplayObject):String{
var result:String;
var o:DisplayObject;
var s:String;
var indices:Array;
var displayObject = displayObject;
o = displayObject;
while (o != null) {
if (((((o.parent) && (o.stage))) && ((o.parent == o.stage)))){
break;
};
s = o.name;
if ((o is IRepeaterClient)){
indices = IRepeaterClient(o).instanceIndices;
if (indices){
s = (s + (("[" + indices.join("][")) + "]"));
};
};
result = ((result == null)) ? s : ((s + ".") + result);
o = o.parent;
};
//unresolved jump
var _slot1 = e;
return (result);
}
public static function createUniqueName(object:Object):String{
if (!object){
return (null);
};
var name:String = getQualifiedClassName(object);
var index:int = name.indexOf("::");
if (index != -1){
name = name.substr((index + 2));
};
var charCode:int = name.charCodeAt((name.length - 1));
if ((((charCode >= 48)) && ((charCode <= 57)))){
name = (name + "_");
};
return ((name + counter++));
}
}
}//package mx.utils
Section 96
//FlashConnect (org.flashdevelop.utils.FlashConnect)
package org.flashdevelop.utils {
import flash.events.*;
import flash.xml.*;
import flash.utils.*;
import flash.net.*;
public class FlashConnect {
public static var onReturnData:Function;
public static var port:Number = 1978;
private static var interval:Number;
private static var messages:Array;
public static var onConnection:Function;
public static var host:String = "localhost";
public static var status:Number = 0;
private static var socket:XMLSocket;
public static var limit:Number = 1000;
private static var counter:Number;
public function FlashConnect(){
super();
}
private static function onIOError(event:IOErrorEvent):void{
FlashConnect.status = -1;
if (FlashConnect.onConnection != null){
FlashConnect.onConnection();
};
}
public static function atrace(... _args):void{
var result:String = _args.join(",");
var message:XMLNode = createMsgNode(result, TraceLevel.DEBUG);
FlashConnect.send(message);
}
private static function createMsgNode(message:String, level:Number):XMLNode{
if (isNaN(level)){
level = TraceLevel.DEBUG;
};
var msgNode:XMLNode = new XMLNode(1, null);
var txtNode:XMLNode = new XMLNode(3, encodeURI(message));
msgNode.attributes.state = level.toString();
msgNode.attributes.cmd = "trace";
msgNode.nodeName = "message";
msgNode.appendChild(txtNode);
return (msgNode);
}
public static function send(message:XMLNode):void{
if (messages == null){
initialize();
};
messages.push(message);
}
private static function onSecurityError(event:SecurityErrorEvent):void{
FlashConnect.status = -1;
if (FlashConnect.onConnection != null){
FlashConnect.onConnection();
};
}
public static function flush():Boolean{
if (status){
sendStack();
return (true);
};
return (false);
}
public static function trace(value:Object, level:Number=1):void{
var msgNode:XMLNode = createMsgNode(value.toString(), level);
FlashConnect.send(msgNode);
}
private static function onConnect(event:Event):void{
FlashConnect.status = 1;
if (FlashConnect.onConnection != null){
FlashConnect.onConnection();
};
}
public static function initialize():int{
if (socket){
return (status);
};
counter = 0;
messages = new Array();
socket = new XMLSocket();
socket.addEventListener(DataEvent.DATA, onData);
socket.addEventListener(Event.CONNECT, onConnect);
socket.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
interval = setInterval(sendStack, 50);
socket.connect(host, port);
return (status);
}
private static function sendStack():void{
var message:XMLDocument;
var rootNode:XMLNode;
var msg:String;
var errorNode:XMLNode;
var msgNode:XMLNode;
if ((((messages.length > 0)) && ((status == 1)))){
message = new XMLDocument();
rootNode = message.createElement("flashconnect");
while (messages.length != 0) {
counter++;
if (counter > limit){
clearInterval(interval);
msg = new String("FlashConnect aborted. You have reached the limit of maximum messages.");
errorNode = createMsgNode(msg, TraceLevel.ERROR);
rootNode.appendChild(errorNode);
break;
} else {
msgNode = XMLNode(messages.shift());
rootNode.appendChild(msgNode);
};
};
message.appendChild(rootNode);
socket.send(message);
};
}
private static function onData(event:DataEvent):void{
FlashConnect.status = 1;
if (FlashConnect.onReturnData != null){
FlashConnect.onReturnData(event.data);
};
}
public static function mtrace(value:Object, method:String, path:String, line:Number):void{
var fixed:String = path.split("/").join("\\");
var formatted:String = ((((fixed + ":") + line) + ":") + value);
FlashConnect.trace(formatted, TraceLevel.DEBUG);
}
}
}//package org.flashdevelop.utils
Section 97
//TraceLevel (org.flashdevelop.utils.TraceLevel)
package org.flashdevelop.utils {
public class TraceLevel {
public static const DEBUG:Number = 1;
public static const FATAL:Number = 4;
public static const WARNING:Number = 2;
public static const INFO:Number = 0;
public static const ERROR:Number = 3;
public function TraceLevel(){
super();
}
}
}//package org.flashdevelop.utils
Section 98
//Button (UI.Button)
package UI {
import flash.events.*;
import flash.display.*;
public class Button extends Sprite {
private var mButtonSprite:Bitmap;// = null
private var mDisabled:Boolean;// = false
private var mParent:Sprite;
private var mButtonOverSprite:Bitmap;// = null
public function Button(parentSprite:Sprite, px:Number, py:Number, btnSprite:Bitmap, btnOverSprite:Bitmap=null, f:Function=null){
super();
mParent = parentSprite;
mButtonSprite = btnSprite;
mButtonSprite.smoothing = true;
if (btnOverSprite != null){
mButtonOverSprite = btnOverSprite;
mButtonOverSprite.smoothing = true;
};
this.buttonMode = true;
addChild(mButtonSprite);
if (btnOverSprite != null){
this.addChild(mButtonOverSprite);
this.addEventListener(MouseEvent.MOUSE_OVER, onOver);
this.addEventListener(MouseEvent.MOUSE_OUT, onOut);
};
if (f != null){
addEventListener(MouseEvent.CLICK, f);
};
this.x = px;
this.y = py;
mParent.addChild(this);
}
public function IsDisabled():Boolean{
return (mDisabled);
}
private function onOut(e:Event):void{
if (mButtonOverSprite == null){
return;
};
removeChild(mButtonOverSprite);
addChild(mButtonSprite);
}
private function play():void{
}
private function onOver(e:Event):void{
if (mDisabled){
return;
};
play();
if (mButtonOverSprite == null){
return;
};
removeChild(mButtonSprite);
addChild(mButtonOverSprite);
}
public function SetDisabled(d:Boolean):void{
mDisabled = d;
visible = !(d);
}
}
}//package UI
Section 99
//Grid (util.math.Grid)
package util.math {
import org.flashdevelop.utils.*;
public class Grid {
private var m:Array;
public function Grid(width:uint, heigth:uint){
super();
m = new Array(width);
var i:int;
while (i < m.length) {
m[i] = new Array(heigth);
i++;
};
}
public function getField(x:uint, y:uint):Object{
var x = x;
var y = y;
return (m[x][y]);
//unresolved jump
var _slot1 = e;
FlashConnect.trace(((("Error: x " + x) + " y: ") + y));
return (null);
}
public function get Width():uint{
return (m.length);
}
public function get Height():uint{
if (m[0] == null){
return (0);
};
return (m[0].length);
}
public function setField(x:uint, y:uint, item:Object):void{
this.m[x][y] = item;
}
}
}//package util.math
Section 100
//Vector2 (util.math.Vector2)
package util.math {
import flash.geom.*;
public class Vector2 extends Point {
public static const DOWN_VECTOR:Vector2 = new Vector2(0, 1);
;
public static const RIGHT_VECTOR:Vector2 = new Vector2(-1, 0);
;
public static const UP_VECTOR:Vector2 = new Vector2(0, -1);
;
public static const LEFT_VECTOR:Vector2 = new Vector2(1, 0);
;
public function Vector2(... _args){
var args = _args;
super();
if (args.length == 2){
this.x = (args[0].x - args[1].x);
this.y = (args[0].y - args[1].y);
return;
//unresolved jump
var _slot1 = e;
this.x = args[0];
this.y = args[1];
//unresolved jump
var _slot1 = e2;
return;
};
}
public function scale(factor:Number):Vector2{
return (new Vector2((this.x * factor), (this.y * factor)));
}
public function get Angle():Number{
if (this.x <= 0){
return (((Math.acos(this.Normal.y) * 180) / Math.PI));
};
return ((-(((Math.acos(this.Normal.y) * 180) / Math.PI)) + 360));
}
public function rotate(angle:Number):void{
x = ((x * Math.cos(angle)) - (y * Math.sin(angle)));
y = ((y * Math.cos(angle)) + (x * Math.sin(angle)));
}
public function get Length():Number{
return (Math.sqrt((Math.pow(this.x, 2) + Math.pow(this.y, 2))));
}
public function get Normal():Vector2{
var length:Number = this.Length;
return (new Vector2((this.x / length), (this.y / length)));
}
}
}//package util.math
Section 101
//SoundController (util.sound.SoundController)
package util.sound {
import flash.events.*;
import flash.media.*;
import flash.utils.*;
public class SoundController {
private var loops:Dictionary;
private var playingSounds:Array;
private var defaultVolumes:Object;
private var volume:Number;
private var fadingSounds:Dictionary;
private var soundChannels:Object;
private static var instance:SoundController;
public function SoundController(){
super();
this.playingSounds = new Array();
this.soundChannels = new Object();
this.defaultVolumes = new Object();
this.loops = new Dictionary();
this.fadingSounds = new Dictionary();
this.volume = 1;
}
private function onFadeIn(e:TimerEvent):void{
var t:Number = ((getTimer() - this.fadingSounds[e.target].t0) / (this.fadingSounds[e.target].t1 - this.fadingSounds[e.target].t0));
SoundChannel(this.fadingSounds[e.target].channel).soundTransform = new SoundTransform((t * this.fadingSounds[e.target].targetVolume));
if (t >= 1){
t = 1;
Timer(e.target).removeEventListener(TimerEvent.TIMER, onFadeIn);
Timer(e.target).stop();
delete this.fadingSounds[t];
};
}
private function onFadeOut(e:TimerEvent):void{
var t:Number;
var p:String;
var s:String;
var e = e;
t = ((getTimer() - this.fadingSounds[e.target].t0) / (this.fadingSounds[e.target].t1 - this.fadingSounds[e.target].t0));
SoundChannel(this.fadingSounds[e.target].channel).soundTransform = new SoundTransform(((1 - t) * this.fadingSounds[e.target].startVolume));
if (t >= 1){
t = 1;
Timer(e.target).removeEventListener(TimerEvent.TIMER, onFadeIn);
Timer(e.target).stop();
delete this.fadingSounds[t];
for (p in this.soundChannels) {
if (this.soundChannels[p] == this.fadingSounds[e.target].channel){
this.stopSound(p);
return;
};
};
};
//unresolved jump
var _slot1 = te;
Timer(e.target).removeEventListener(TimerEvent.TIMER, onFadeIn);
Timer(e.target).stop();
for (s in this.soundChannels) {
if (this.soundChannels[s] == this.fadingSounds[e.target].channel){
this.stopSound(s);
return;
};
};
}
public function stopAllSounds(fadeTime:Number=0):void{
var p:String;
for (p in this.soundChannels) {
this.stopSound(p, fadeTime);
};
}
public function get Volume():Number{
return (this.volume);
}
private function isPlaying(s:Sound):Boolean{
if (this.soundChannels[s] != null){
return (true);
};
return (false);
}
public function set Volume(v:Number):void{
this.volume = v;
SoundMixer.soundTransform = new SoundTransform(v);
}
public function stopSound(sound:String, fadeOutTime:Number=0):void{
var t:Timer;
var sound = sound;
var fadeOutTime = fadeOutTime;
if (fadeOutTime > 0){
t = new Timer(10);
this.fadingSounds[t] = {channel:SoundChannel(this.soundChannels[sound]), t0:getTimer(), t1:(getTimer() + fadeOutTime), startVolume:SoundChannel(this.soundChannels[sound]).soundTransform.volume};
t.addEventListener(TimerEvent.TIMER, onFadeOut);
t.start();
//unresolved jump
var _slot1 = e;
} else {
SoundChannel(this.soundChannels[sound]).soundTransform = new SoundTransform(0);
SoundChannel(this.soundChannels[sound]).stop();
SoundChannel(this.soundChannels[sound]).removeEventListener(Event.SOUND_COMPLETE, onSoundComplete);
SoundChannel(this.soundChannels[sound]).removeEventListener(Event.SOUND_COMPLETE, onLoopComplete);
delete this.soundChannels[sound];
delete this.defaultVolumes[sound];
//unresolved jump
var _slot1 = e;
};
}
private function onSoundComplete(e:Event):void{
var p:String;
SoundChannel(e.target).removeEventListener(Event.SOUND_COMPLETE, onSoundComplete);
for (p in this.soundChannels) {
if (this.soundChannels[p] == e.target){
delete this.soundChannels[p];
delete this.defaultVolumes[p];
return;
};
};
}
public function playSound(sound:Sound, fadeInTime:Number=0, loop:Boolean=false, volume:Number=1):void{
var s:Sound;
var c:SoundChannel;
var t:Timer;
var sound = sound;
var fadeInTime = fadeInTime;
var loop = loop;
var volume = volume;
if (((isPlaying(sound)) && (!((sound.toString() == "[object Resourcen_SOUND_COIN]"))))){
return;
};
s = sound;
playingSounds.push(s.toString());
c = s.play();
c.soundTransform = new SoundTransform(((fadeInTime)>0) ? 0 : (volume * this.volume));
this.soundChannels[sound] = c;
this.defaultVolumes[sound] = volume;
if (loop){
c.addEventListener(Event.SOUND_COMPLETE, onLoopComplete);
this.loops[c] = s;
} else {
c.addEventListener(Event.SOUND_COMPLETE, onSoundComplete);
};
if (fadeInTime > 0){
t = new Timer(100);
this.fadingSounds[t] = {channel:c, t0:getTimer(), t1:(getTimer() + fadeInTime), targetVolume:volume};
t.addEventListener(TimerEvent.TIMER, onFadeIn);
t.start();
};
//unresolved jump
var _slot1 = e;
return;
}
private function onLoopComplete(e:Event):void{
var volume:Number;
var sound:String;
var p:String;
var s:Sound;
var c:SoundChannel;
SoundChannel(e.target).removeEventListener(Event.SOUND_COMPLETE, onLoopComplete);
for (p in this.soundChannels) {
if (this.soundChannels[p] == e.target){
sound = p;
volume = this.defaultVolumes[p];
delete this.soundChannels[p];
delete this.defaultVolumes[p];
break;
};
};
s = Sound(this.loops[e.target]);
delete this.loops[e.target];
c = s.play();
c.addEventListener(Event.SOUND_COMPLETE, onLoopComplete);
c.soundTransform = new SoundTransform((volume * this.volume));
this.soundChannels[sound] = c;
this.defaultVolumes[sound] = volume;
this.loops[c] = s;
}
public static function get Instance():SoundController{
if (instance == null){
instance = new (SoundController);
};
return (instance);
}
}
}//package util.sound
Section 102
//Main (Main)
package {
import com.gskinner.motion.*;
import framework.Widgets.*;
import flash.events.*;
import com.cheezeworld.utils.*;
import flash.display.*;
import Core.Screens.*;
import flash.utils.*;
import mx.effects.easing.*;
public dynamic class Main extends Root {
private var _input:Input;
private var time:Number;
public var menu:MainMenu;
private var prevTime:Number;// = 0
private var board:Board;
private var fps:Number;
public var mParent:DisplayObject;
private static var m_isUpdateOn:Boolean;
public function Main():void{
_input = Input.instance;
super();
m_isUpdateOn = true;
if (stage){
init();
} else {
addEventListener(Event.ADDED_TO_STAGE, init);
};
}
public function menuHide(e:Event):void{
WidgetManager.instance.removeWidget(menu);
menu = null;
}
public function removeBoard():void{
WidgetManager.instance.removeWidget(board);
}
public function removeMenu():void{
menu.Remove();
WidgetManager.instance.removeWidget(menu);
}
public function ShowDialog(d:Widget, prop:Object):GTween{
this.visible = true;
var myTween:GTween = new GTween(d, 1.1, prop, {reflect:true, ease:Back.easeOut});
return (myTween);
}
private function update(nTime:Number):void{
_input.update();
WidgetManager.instance.update(nTime);
}
public function HideDialog(d:Widget, prop:Object):GTween{
var myTween:GTween = new GTween(d, 1.1, prop, {reflect:true, ease:Back.easeOut});
return (myTween);
}
public function initMenu():void{
menu = new MainMenu(this);
menu.theParent = this;
WidgetManager.instance.addWidget(menu);
}
private function init(e:Event=null):void{
removeEventListener(Event.ADDED_TO_STAGE, init);
WidgetManager.instance.SetParent(this);
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMove);
stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseUp);
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUp);
this.addEventListener(Event.ENTER_FRAME, enterFrame);
Input.instance.activate(this.stage);
initMenu();
}
public function mouseMove(evt:MouseEvent):void{
if (board != null){
};
}
public function keyDown(e:KeyboardEvent):void{
if (board != null){
board.keyDown(e);
};
}
public function mouseDown(evt:MouseEvent):void{
if (board != null){
};
}
public function mouseUp(evt:MouseEvent):void{
if (board != null){
};
}
public function keyUp(e:KeyboardEvent):void{
if (board != null){
board.keyUp(e);
};
}
public function enterFrame(evt:Event):void{
time = getTimer();
fps = ((time - prevTime) / 100);
prevTime = getTimer();
update(fps);
}
public function initBoard(mode:int=1):void{
var tween:GTween;
if (menu != null){
tween = this.HideDialog(menu, {y:-(menu.height)});
tween.addEventListener(Event.COMPLETE, menuHide);
};
board = new Board(this, mode);
board.y = (board.height / 5);
board.theParent = this;
stage.focus = board;
WidgetManager.instance.addWidget(board);
var tween1:GTween = this.HideDialog(board, {y:0});
}
}
}//package
Section 103
//NavButton (NavButton)
package {
import flash.events.*;
import flash.display.*;
import flash.net.*;
public class NavButton extends MovieClip {
public var But;
public function NavButton(){
super();
width = 239.2;
height = 35.75;
buttonMode = true;
addEventListener(MouseEvent.MOUSE_OVER, onOver);
addEventListener(MouseEvent.MOUSE_OUT, onOut);
addEventListener(MouseEvent.CLICK, onClick);
gotoAndStop(1);
But = this;
addEventListener(Event.ENTER_FRAME, Depth);
}
public function onOver(e:Event):void{
gotoAndStop(2);
}
public function onClick(e:Event):void{
var urlRequest:URLRequest = new URLRequest("http://www.gamesclub.com");
navigateToURL(urlRequest, "_blank");
}
public function Depth(e:Event):void{
if (parent){
parent.setChildIndex(But, (parent.numChildren - 1));
};
}
public function onOut(e:Event):void{
gotoAndStop(1);
}
}
}//package