Section 1
//MainTimeline (brain_shift_overdrive_game_fla.MainTimeline)
package brain_shift_overdrive_game_fla {
import flash.display.*;
import com.lumoslabs.games.brainShift.*;
public dynamic class MainTimeline extends MovieClip {
public function MainTimeline(){
addFrameScript(0, frame1);
}
function frame1(){
BrainShiftOverdriveGame.main(this);
}
}
}//package brain_shift_overdrive_game_fla
Section 2
//PropTween (com.greensock.core.PropTween)
package com.greensock.core {
public class PropTween {
public var priority:int;
public var start:Number;
public var prevNode:PropTween;
public var change:Number;
public var target:Object;
public var name:String;
public var property:String;
public var nextNode:PropTween;
public var isPlugin:Boolean;
public function PropTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number, _arg5:String, _arg6:Boolean, _arg7:PropTween=null, _arg8:int=0){
this.target = _arg1;
this.property = _arg2;
this.start = _arg3;
this.change = _arg4;
this.name = _arg5;
this.isPlugin = _arg6;
if (_arg7){
_arg7.prevNode = this;
this.nextNode = _arg7;
};
this.priority = _arg8;
}
}
}//package com.greensock.core
Section 3
//SimpleTimeline (com.greensock.core.SimpleTimeline)
package com.greensock.core {
public class SimpleTimeline extends TweenCore {
public var autoRemoveChildren:Boolean;
protected var _lastChild:TweenCore;
protected var _firstChild:TweenCore;
public function SimpleTimeline(_arg1:Object=null){
super(0, _arg1);
}
override public function renderTime(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void{
var _local5:Number;
var _local6:TweenCore;
var _local4:TweenCore = _firstChild;
this.cachedTotalTime = _arg1;
this.cachedTime = _arg1;
while (_local4) {
_local6 = _local4.nextNode;
if (((_local4.active) || ((((((_arg1 >= _local4.cachedStartTime)) && (!(_local4.cachedPaused)))) && (!(_local4.gc)))))){
if (!_local4.cachedReversed){
_local4.renderTime(((_arg1 - _local4.cachedStartTime) * _local4.cachedTimeScale), _arg2, false);
} else {
_local5 = (_local4.cacheIsDirty) ? _local4.totalDuration : _local4.cachedTotalDuration;
_local4.renderTime((_local5 - ((_arg1 - _local4.cachedStartTime) * _local4.cachedTimeScale)), _arg2, false);
};
};
_local4 = _local6;
};
}
public function addChild(_arg1:TweenCore):void{
if (((!(_arg1.cachedOrphan)) && (_arg1.timeline))){
_arg1.timeline.remove(_arg1, true);
};
_arg1.timeline = this;
if (_arg1.gc){
_arg1.setEnabled(true, true);
};
if (_firstChild){
_firstChild.prevNode = _arg1;
};
_arg1.nextNode = _firstChild;
_firstChild = _arg1;
_arg1.prevNode = null;
_arg1.cachedOrphan = false;
}
public function remove(_arg1:TweenCore, _arg2:Boolean=false):void{
if (_arg1.cachedOrphan){
return;
};
if (!_arg2){
_arg1.setEnabled(false, true);
};
if (_arg1.nextNode){
_arg1.nextNode.prevNode = _arg1.prevNode;
} else {
if (_lastChild == _arg1){
_lastChild = _arg1.prevNode;
};
};
if (_arg1.prevNode){
_arg1.prevNode.nextNode = _arg1.nextNode;
} else {
if (_firstChild == _arg1){
_firstChild = _arg1.nextNode;
};
};
_arg1.cachedOrphan = true;
}
public function get rawTime():Number{
return (this.cachedTotalTime);
}
}
}//package com.greensock.core
Section 4
//TweenCore (com.greensock.core.TweenCore)
package com.greensock.core {
import com.greensock.*;
public class TweenCore {
public var initted:Boolean;
protected var _hasUpdate:Boolean;
public var active:Boolean;
protected var _delay:Number;
public var cachedTime:Number;
public var cachedReversed:Boolean;
public var nextNode:TweenCore;
protected var _rawPrevTime:Number;// = -1
public var vars:Object;
public var cachedTotalTime:Number;
public var data;
public var timeline:SimpleTimeline;
public var cachedOrphan:Boolean;
public var cachedStartTime:Number;
public var prevNode:TweenCore;
public var cachedDuration:Number;
public var gc:Boolean;
protected var _pauseTime:Number;
public var cacheIsDirty:Boolean;
public var cachedPaused:Boolean;
public var cachedTimeScale:Number;
public var cachedTotalDuration:Number;
public static const version:Number = 1.382;
protected static var _classInitted:Boolean;
public function TweenCore(_arg1:Number=0, _arg2:Object=null){
this.vars = ((_arg2)!=null) ? _arg2 : {};
this.cachedDuration = (this.cachedTotalDuration = _arg1);
_delay = (this.vars.delay) ? Number(this.vars.delay) : 0;
this.cachedTimeScale = (this.vars.timeScale) ? Number(this.vars.timeScale) : 1;
this.active = Boolean((((((_arg1 == 0)) && ((_delay == 0)))) && (!((this.vars.immediateRender == false)))));
this.cachedTotalTime = (this.cachedTime = 0);
this.data = this.vars.data;
if (!_classInitted){
if (isNaN(TweenLite.rootFrame)){
TweenLite.initClass();
_classInitted = true;
} else {
return;
};
};
var _local3:SimpleTimeline = ((this.vars.timeline is SimpleTimeline)) ? this.vars.timeline : (this.vars.useFrames) ? TweenLite.rootFramesTimeline : TweenLite.rootTimeline;
this.cachedStartTime = (_local3.cachedTotalTime + _delay);
_local3.addChild(this);
if (this.vars.reversed){
this.cachedReversed = true;
};
if (this.vars.paused){
this.paused = true;
};
}
public function renderTime(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void{
}
public function get delay():Number{
return (_delay);
}
public function restart(_arg1:Boolean=false, _arg2:Boolean=true):void{
this.reversed = false;
this.paused = false;
this.setTotalTime((_arg1) ? -(_delay) : 0, _arg2);
}
public function get duration():Number{
return (this.cachedDuration);
}
public function set reversed(_arg1:Boolean):void{
if (_arg1 != this.cachedReversed){
this.cachedReversed = _arg1;
setTotalTime(this.cachedTotalTime, true);
};
}
public function set startTime(_arg1:Number):void{
var _local2:Boolean = Boolean(((!((this.timeline == null))) && (((!((_arg1 == this.cachedStartTime))) || (this.gc)))));
this.cachedStartTime = _arg1;
if (_local2){
this.timeline.addChild(this);
};
}
public function set delay(_arg1:Number):void{
this.startTime = (this.startTime + (_arg1 - _delay));
_delay = _arg1;
}
public function resume():void{
this.paused = false;
}
public function get paused():Boolean{
return (this.cachedPaused);
}
public function play():void{
this.reversed = false;
this.paused = false;
}
public function set duration(_arg1:Number):void{
this.cachedDuration = (this.cachedTotalDuration = _arg1);
setDirtyCache(false);
}
public function invalidate():void{
}
public function complete(_arg1:Boolean=false, _arg2:Boolean=false):void{
if (!_arg1){
renderTime(this.totalDuration, _arg2, false);
return;
};
if (this.timeline.autoRemoveChildren){
this.setEnabled(false, false);
} else {
this.active = false;
};
if (!_arg2){
if (((((this.vars.onComplete) && ((this.cachedTotalTime == this.cachedTotalDuration)))) && (!(this.cachedReversed)))){
this.vars.onComplete.apply(null, this.vars.onCompleteParams);
} else {
if (((((this.cachedReversed) && ((this.cachedTotalTime == 0)))) && (this.vars.onReverseComplete))){
this.vars.onReverseComplete.apply(null, this.vars.onReverseCompleteParams);
};
};
};
}
public function get reversed():Boolean{
return (this.cachedReversed);
}
public function get totalTime():Number{
return (this.cachedTotalTime);
}
public function get startTime():Number{
return (this.cachedStartTime);
}
public function set currentTime(_arg1:Number):void{
setTotalTime(_arg1, false);
}
protected function setDirtyCache(_arg1:Boolean=true):void{
var _local2:TweenCore = (_arg1) ? this : this.timeline;
while (_local2) {
_local2.cacheIsDirty = true;
_local2 = _local2.timeline;
};
}
public function reverse(_arg1:Boolean=true):void{
this.reversed = true;
if (_arg1){
this.paused = false;
} else {
if (this.gc){
this.setEnabled(true, false);
};
};
}
public function set paused(_arg1:Boolean):void{
if (((!((_arg1 == this.cachedPaused))) && (this.timeline))){
if (_arg1){
_pauseTime = this.timeline.rawTime;
} else {
this.cachedStartTime = (this.cachedStartTime + (this.timeline.rawTime - _pauseTime));
_pauseTime = NaN;
setDirtyCache(false);
};
this.cachedPaused = _arg1;
this.active = Boolean(((((!(this.cachedPaused)) && ((this.cachedTotalTime > 0)))) && ((this.cachedTotalTime < this.cachedTotalDuration))));
};
if (((!(_arg1)) && (this.gc))){
this.setTotalTime(this.cachedTotalTime, false);
this.setEnabled(true, false);
};
}
public function kill():void{
setEnabled(false, false);
}
public function set totalTime(_arg1:Number):void{
setTotalTime(_arg1, false);
}
public function get currentTime():Number{
return (this.cachedTime);
}
protected function setTotalTime(_arg1:Number, _arg2:Boolean=false):void{
var _local3:Number;
var _local4:Number;
if (this.timeline){
_local3 = (((_pauseTime) || ((_pauseTime == 0)))) ? _pauseTime : this.timeline.cachedTotalTime;
if (this.cachedReversed){
_local4 = (this.cacheIsDirty) ? this.totalDuration : this.cachedTotalDuration;
this.cachedStartTime = (_local3 - ((_local4 - _arg1) / this.cachedTimeScale));
} else {
this.cachedStartTime = (_local3 - (_arg1 / this.cachedTimeScale));
};
if (!this.timeline.cacheIsDirty){
setDirtyCache(false);
};
if (this.cachedTotalTime != _arg1){
renderTime(_arg1, _arg2, false);
};
};
}
public function pause():void{
this.paused = true;
}
public function set totalDuration(_arg1:Number):void{
this.duration = _arg1;
}
public function get totalDuration():Number{
return (this.cachedTotalDuration);
}
public function setEnabled(_arg1:Boolean, _arg2:Boolean=false):Boolean{
this.gc = !(_arg1);
if (_arg1){
this.active = Boolean(((((!(this.cachedPaused)) && ((this.cachedTotalTime > 0)))) && ((this.cachedTotalTime < this.cachedTotalDuration))));
if (((!(_arg2)) && (this.cachedOrphan))){
this.timeline.addChild(this);
};
} else {
this.active = false;
if (((!(_arg2)) && (!(this.cachedOrphan)))){
this.timeline.remove(this, true);
};
};
return (false);
}
}
}//package com.greensock.core
Section 5
//Linear (com.greensock.easing.Linear)
package com.greensock.easing {
public class Linear {
public static const power:uint = 0;
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
}
public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
}
public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
}
public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
}
}
}//package com.greensock.easing
Section 6
//TweenEvent (com.greensock.events.TweenEvent)
package com.greensock.events {
import flash.events.*;
public class TweenEvent extends Event {
public static const COMPLETE:String = "complete";
public static const START:String = "start";
public static const UPDATE:String = "change";
public static const REVERSE_COMPLETE:String = "reverseComplete";
public static const INIT:String = "init";
public static const VERSION:Number = 1.1;
public static const REPEAT:String = "repeat";
public function TweenEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){
super(_arg1, _arg2, _arg3);
}
override public function clone():Event{
return (new TweenEvent(this.type, this.bubbles, this.cancelable));
}
}
}//package com.greensock.events
Section 7
//AutoAlphaPlugin (com.greensock.plugins.AutoAlphaPlugin)
package com.greensock.plugins {
import flash.display.*;
import com.greensock.*;
public class AutoAlphaPlugin extends TweenPlugin {
protected var _target:Object;
protected var _ignoreVisible:Boolean;
public static const API:Number = 1;
public function AutoAlphaPlugin(){
this.propName = "autoAlpha";
this.overwriteProps = ["alpha", "visible"];
}
override public function killProps(_arg1:Object):void{
super.killProps(_arg1);
_ignoreVisible = Boolean(("visible" in _arg1));
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
_target = _arg1;
addTween(_arg1, "alpha", _arg1.alpha, _arg2, "alpha");
return (true);
}
override public function set changeFactor(_arg1:Number):void{
updateTweens(_arg1);
if (!_ignoreVisible){
_target.visible = Boolean(!((_target.alpha == 0)));
};
}
}
}//package com.greensock.plugins
Section 8
//TweenPlugin (com.greensock.plugins.TweenPlugin)
package com.greensock.plugins {
import com.greensock.core.*;
import com.greensock.*;
public class TweenPlugin {
public var activeDisable:Boolean;
protected var _changeFactor:Number;// = 0
protected var _tweens:Array;
public var onDisable:Function;
public var propName:String;
public var round:Boolean;
public var onEnable:Function;
public var priority:int;// = 0
public var overwriteProps:Array;
public var onComplete:Function;
public static const VERSION:Number = 1.31;
public static const API:Number = 1;
public function TweenPlugin(){
_tweens = [];
super();
}
protected function updateTweens(_arg1:Number):void{
var _local3:PropTween;
var _local4:Number;
var _local2:int = _tweens.length;
if (this.round){
while (_local2--) {
_local3 = _tweens[_local2];
_local4 = (_local3.start + (_local3.change * _arg1));
_local3.target[_local3.property] = ((_local4)>0) ? int((_local4 + 0.5)) : int((_local4 - 0.5));
};
} else {
while (_local2--) {
_local3 = _tweens[_local2];
_local3.target[_local3.property] = (_local3.start + (_local3.change * _arg1));
};
};
}
protected function addTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4, _arg5:String=null):void{
var _local6:Number;
if (_arg4 != null){
_local6 = ((typeof(_arg4))=="number") ? (Number(_arg4) - _arg3) : Number(_arg4);
if (_local6 != 0){
_tweens[_tweens.length] = new PropTween(_arg1, _arg2, _arg3, _local6, ((_arg5) || (_arg2)), false);
};
};
}
public function get changeFactor():Number{
return (_changeFactor);
}
public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
addTween(_arg1, this.propName, _arg1[this.propName], _arg2, this.propName);
return (true);
}
public function killProps(_arg1:Object):void{
var _local2:int = this.overwriteProps.length;
while (_local2--) {
if ((this.overwriteProps[_local2] in _arg1)){
this.overwriteProps.splice(_local2, 1);
};
};
_local2 = _tweens.length;
while (_local2--) {
if ((PropTween(_tweens[_local2]).name in _arg1)){
_tweens.splice(_local2, 1);
};
};
}
public function set changeFactor(_arg1:Number):void{
updateTweens(_arg1);
_changeFactor = _arg1;
}
public static function activate(_arg1:Array):Boolean{
var _local3:Object;
TweenLite.onPluginEvent = TweenPlugin.onTweenEvent;
var _local2:int = _arg1.length;
while (_local2--) {
if (_arg1[_local2].hasOwnProperty("API")){
_local3 = new ((_arg1[_local2] as Class));
TweenLite.plugins[_local3.propName] = _arg1[_local2];
};
};
return (true);
}
private static function onTweenEvent(_arg1:String, _arg2:TweenLite):Boolean{
var _local4:Boolean;
var _local5:Array;
var _local6:int;
var _local3:PropTween = _arg2.cachedPT1;
if (_arg1 == "onInit"){
_local5 = [];
while (_local3) {
_local5[_local5.length] = _local3;
_local3 = _local3.nextNode;
};
_local5.sortOn("priority", (Array.NUMERIC | Array.DESCENDING));
_local6 = _local5.length;
while (_local6--) {
PropTween(_local5[_local6]).nextNode = _local5[(_local6 + 1)];
PropTween(_local5[_local6]).prevNode = _local5[(_local6 - 1)];
};
_arg2.cachedPT1 = _local5[0];
} else {
while (_local3) {
if (((_local3.isPlugin) && (_local3.target[_arg1]))){
if (_local3.target.activeDisable){
_local4 = true;
};
var _local7 = _local3.target;
_local7[_arg1]();
};
_local3 = _local3.nextNode;
};
};
return (_local4);
}
}
}//package com.greensock.plugins
Section 9
//OverwriteManager (com.greensock.OverwriteManager)
package com.greensock {
import com.greensock.core.*;
import flash.utils.*;
import flash.errors.*;
public class OverwriteManager {
public static const ALL_ONSTART:int = 4;
public static const CONCURRENT:int = 3;
public static const ALL_IMMEDIATE:int = 1;
public static const PREEXISTING:int = 5;
public static const AUTO:int = 2;
public static const version:Number = 6.02;
public static const NONE:int = 0;
public static var enabled:Boolean;
public static var mode:int;
public static function getGlobalPaused(_arg1:TweenCore):Boolean{
while (_arg1) {
if (_arg1.cachedPaused){
return (true);
};
_arg1 = _arg1.timeline;
};
return (false);
}
public static function init(_arg1:int=2):int{
if (TweenLite.version < 11.1){
throw (new Error("Warning: Your TweenLite class needs to be updated to work with OverwriteManager (or you may need to clear your ASO files). Please download and install the latest version from http://www.tweenlite.com."));
};
TweenLite.overwriteManager = OverwriteManager;
mode = _arg1;
enabled = true;
return (mode);
}
public static function manageOverwrites(_arg1:TweenLite, _arg2:Object, _arg3:Array, _arg4:uint):Boolean{
var _local5:int;
var _local6:Boolean;
var _local7:TweenLite;
var _local13:uint;
var _local14:Number;
var _local15:Number;
var _local16:TweenCore;
var _local17:Number;
var _local18:SimpleTimeline;
if (_arg4 >= 4){
_local13 = _arg3.length;
_local5 = 0;
while (_local5 < _local13) {
_local7 = _arg3[_local5];
if (_local7 != _arg1){
if (_local7.setEnabled(false, false)){
_local6 = true;
};
} else {
if (_arg4 == 5){
break;
};
};
_local5++;
};
return (_local6);
};
var _local8:Number = (_arg1.cachedStartTime + 1E-10);
var _local9:Array = [];
var _local10:Array = [];
var _local11:uint;
var _local12:uint;
_local5 = _arg3.length;
while (--_local5 > -1) {
_local7 = _arg3[_local5];
if ((((_local7 == _arg1)) || (_local7.gc))){
} else {
if (_local7.timeline != _arg1.timeline){
if (!getGlobalPaused(_local7)){
var _temp1 = _local11;
_local11 = (_local11 + 1);
var _local19 = _temp1;
_local10[_local19] = _local7;
};
} else {
if ((((((_local7.cachedStartTime <= _local8)) && ((((_local7.cachedStartTime + _local7.totalDuration) + 1E-10) > _local8)))) && (!(getGlobalPaused(_local7))))){
var _temp2 = _local12;
_local12 = (_local12 + 1);
_local19 = _temp2;
_local9[_local19] = _local7;
};
};
};
};
if (_local11 != 0){
_local14 = _arg1.cachedTimeScale;
_local15 = _local8;
_local18 = _arg1.timeline;
while (_local18) {
_local14 = (_local14 * _local18.cachedTimeScale);
_local15 = (_local15 + _local18.cachedStartTime);
_local18 = _local18.timeline;
};
_local8 = (_local14 * _local15);
_local5 = _local11;
while (--_local5 > -1) {
_local16 = _local10[_local5];
_local14 = _local16.cachedTimeScale;
_local15 = _local16.cachedStartTime;
_local18 = _local16.timeline;
while (_local18) {
_local14 = (_local14 * _local18.cachedTimeScale);
_local15 = (_local15 + _local18.cachedStartTime);
_local18 = _local18.timeline;
};
_local17 = (_local14 * _local15);
if ((((_local17 <= _local8)) && ((((((_local17 + (_local16.totalDuration * _local14)) + 1E-10) > _local8)) || ((_local16.cachedDuration == 0)))))){
var _temp3 = _local12;
_local12 = (_local12 + 1);
_local19 = _temp3;
_local9[_local19] = _local16;
};
};
};
if (_local12 == 0){
return (_local6);
};
_local5 = _local12;
if (_arg4 == 2){
while (--_local5 > -1) {
_local7 = _local9[_local5];
if (_local7.killVars(_arg2)){
_local6 = true;
};
if ((((_local7.cachedPT1 == null)) && (_local7.initted))){
_local7.setEnabled(false, false);
};
};
} else {
while (--_local5 > -1) {
if (TweenLite(_local9[_local5]).setEnabled(false, false)){
_local6 = true;
};
};
};
return (_local6);
}
}
}//package com.greensock
Section 10
//TweenLite (com.greensock.TweenLite)
package com.greensock {
import flash.display.*;
import com.greensock.core.*;
import flash.events.*;
import flash.utils.*;
import com.greensock.plugins.*;
public class TweenLite extends TweenCore {
protected var _hasPlugins:Boolean;
public var propTweenLookup:Object;
public var cachedPT1:PropTween;
protected var _overwrite:uint;
protected var _ease:Function;
public var target:Object;
public var ratio:Number;// = 0
protected var _overwrittenProps:Object;
protected var _notifyPluginsOfEnabled:Boolean;
public static const version:Number = 11.36;
public static var rootTimeline:SimpleTimeline;
public static var fastEaseLookup:Dictionary = new Dictionary(false);
public static var onPluginEvent:Function;
public static var rootFramesTimeline:SimpleTimeline;
public static var defaultEase:Function = TweenLite.easeOut;
public static var plugins:Object = {};
public static var masterList:Dictionary = new Dictionary(false);
public static var overwriteManager:Object;
public static var rootFrame:Number;
public static var killDelayedCallsTo:Function = TweenLite.killTweensOf;
private static var _shape:Shape = new Shape();
protected static var _reservedProps:Object = {ease:1, delay:1, overwrite:1, onComplete:1, onCompleteParams:1, useFrames:1, runBackwards:1, startAt:1, onUpdate:1, onUpdateParams:1, roundProps:1, onStart:1, onStartParams:1, onInit:1, onInitParams:1, onReverseComplete:1, onReverseCompleteParams:1, onRepeat:1, onRepeatParams:1, proxiedEase:1, easeParams:1, yoyo:1, onCompleteListener:1, onUpdateListener:1, onStartListener:1, onReverseCompleteListener:1, onRepeatListener:1, orientToBezier:1, timeScale:1, immediateRender:1, repeat:1, repeatDelay:1, timeline:1, data:1, paused:1};
public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){
var _local5:TweenLite;
super(_arg2, _arg3);
this.target = _arg1;
if ((((this.target is TweenCore)) && (this.vars.timeScale))){
this.cachedTimeScale = 1;
};
propTweenLookup = {};
_ease = defaultEase;
_overwrite = (((!((Number(_arg3.overwrite) > -1))) || (((!(overwriteManager.enabled)) && ((_arg3.overwrite > 1)))))) ? overwriteManager.mode : int(_arg3.overwrite);
var _local4:Array = masterList[_arg1];
if (!_local4){
masterList[_arg1] = [this];
} else {
if (_overwrite == 1){
for each (_local5 in _local4) {
if (!_local5.gc){
_local5.setEnabled(false, false);
};
};
masterList[_arg1] = [this];
} else {
_local4[_local4.length] = this;
};
};
if (((this.active) || (this.vars.immediateRender))){
renderTime(0, false, true);
};
}
protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams)));
}
override public function renderTime(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void{
var _local4:Boolean;
var _local5:Number = this.cachedTime;
if (_arg1 >= this.cachedDuration){
this.cachedTotalTime = (this.cachedTime = this.cachedDuration);
this.ratio = 1;
_local4 = true;
if (this.cachedDuration == 0){
if ((((((_arg1 == 0)) || ((_rawPrevTime < 0)))) && (!((_rawPrevTime == _arg1))))){
_arg3 = true;
};
_rawPrevTime = _arg1;
};
} else {
if (_arg1 <= 0){
this.cachedTotalTime = (this.cachedTime = (this.ratio = 0));
if (_arg1 < 0){
this.active = false;
if (this.cachedDuration == 0){
if (_rawPrevTime > 0){
_arg3 = true;
_local4 = true;
};
_rawPrevTime = _arg1;
};
};
if (((this.cachedReversed) && (!((_local5 == 0))))){
_local4 = true;
};
} else {
this.cachedTotalTime = (this.cachedTime = _arg1);
this.ratio = _ease(_arg1, 0, 1, this.cachedDuration);
};
};
if ((((this.cachedTime == _local5)) && (!(_arg3)))){
return;
};
if (!this.initted){
init();
if (((!(_local4)) && (this.cachedTime))){
this.ratio = _ease(this.cachedTime, 0, 1, this.cachedDuration);
};
};
if (((!(this.active)) && (!(this.cachedPaused)))){
this.active = true;
};
if ((((((((_local5 == 0)) && (this.vars.onStart))) && (!((this.cachedTime == 0))))) && (!(_arg2)))){
this.vars.onStart.apply(null, this.vars.onStartParams);
};
var _local6:PropTween = this.cachedPT1;
while (_local6) {
_local6.target[_local6.property] = (_local6.start + (this.ratio * _local6.change));
_local6 = _local6.nextNode;
};
if (((_hasUpdate) && (!(_arg2)))){
this.vars.onUpdate.apply(null, this.vars.onUpdateParams);
};
if (_local4){
if (((_hasPlugins) && (this.cachedPT1))){
onPluginEvent("onComplete", this);
};
complete(true, _arg2);
};
}
override public function setEnabled(_arg1:Boolean, _arg2:Boolean=false):Boolean{
var _local3:Array;
if (_arg1){
_local3 = TweenLite.masterList[this.target];
if (!_local3){
TweenLite.masterList[this.target] = [this];
} else {
_local3[_local3.length] = this;
};
};
super.setEnabled(_arg1, _arg2);
if (((_notifyPluginsOfEnabled) && (this.cachedPT1))){
return (onPluginEvent((_arg1) ? "onEnable" : "onDisable", this));
};
return (false);
}
protected function init():void{
var _local1:String;
var _local2:int;
var _local3:*;
var _local4:Boolean;
var _local5:Array;
var _local6:PropTween;
if (this.vars.onInit){
this.vars.onInit.apply(null, this.vars.onInitParams);
};
if (typeof(this.vars.ease) == "function"){
_ease = this.vars.ease;
};
if (this.vars.easeParams){
this.vars.proxiedEase = _ease;
_ease = easeProxy;
};
this.cachedPT1 = null;
this.propTweenLookup = {};
for (_local1 in this.vars) {
if ((((_local1 in _reservedProps)) && (!((((_local1 == "timeScale")) && ((this.target is TweenCore))))))){
} else {
if ((((_local1 in plugins)) && (new ((plugins[_local1] as Class)).onInitTween(this.target, this.vars[_local1], this)))){
this.cachedPT1 = new PropTween(_local3, "changeFactor", 0, 1, ((_local3.overwriteProps.length)==1) ? _local3.overwriteProps[0] : "_MULTIPLE_", true, this.cachedPT1);
if (this.cachedPT1.name == "_MULTIPLE_"){
_local2 = _local3.overwriteProps.length;
while (--_local2 > -1) {
this.propTweenLookup[_local3.overwriteProps[_local2]] = this.cachedPT1;
};
} else {
this.propTweenLookup[this.cachedPT1.name] = this.cachedPT1;
};
if (_local3.priority){
this.cachedPT1.priority = _local3.priority;
_local4 = true;
};
if (((_local3.onDisable) || (_local3.onEnable))){
_notifyPluginsOfEnabled = true;
};
_hasPlugins = true;
} else {
this.cachedPT1 = new PropTween(this.target, _local1, Number(this.target[_local1]), ((typeof(this.vars[_local1]))=="number") ? (Number(this.vars[_local1]) - this.target[_local1]) : Number(this.vars[_local1]), _local1, false, this.cachedPT1);
this.propTweenLookup[_local1] = this.cachedPT1;
};
};
};
if (_local4){
onPluginEvent("onInit", this);
};
if (this.vars.runBackwards){
_local6 = this.cachedPT1;
while (_local6) {
_local6.start = (_local6.start + _local6.change);
_local6.change = -(_local6.change);
_local6 = _local6.nextNode;
};
};
_hasUpdate = Boolean(!((this.vars.onUpdate == null)));
if (_overwrittenProps){
killVars(_overwrittenProps);
if (this.cachedPT1 == null){
this.setEnabled(false, false);
};
};
if ((((((((_overwrite > 1)) && (this.cachedPT1))) && (masterList[this.target]))) && ((_local5.length > 1)))){
if (overwriteManager.manageOverwrites(this, this.propTweenLookup, _local5, _overwrite)){
init();
};
};
this.initted = true;
}
public function killVars(_arg1:Object, _arg2:Boolean=true):Boolean{
var _local3:String;
var _local4:PropTween;
var _local5:Boolean;
if (_overwrittenProps == null){
_overwrittenProps = {};
};
for (_local3 in _arg1) {
if ((_local3 in propTweenLookup)){
_local4 = propTweenLookup[_local3];
if (((_local4.isPlugin) && ((_local4.name == "_MULTIPLE_")))){
_local4.target.killProps(_arg1);
if (_local4.target.overwriteProps.length == 0){
_local4.name = "";
};
};
if (_local4.name != "_MULTIPLE_"){
if (_local4.nextNode){
_local4.nextNode.prevNode = _local4.prevNode;
};
if (_local4.prevNode){
_local4.prevNode.nextNode = _local4.nextNode;
} else {
if (this.cachedPT1 == _local4){
this.cachedPT1 = _local4.nextNode;
};
};
if (((_local4.isPlugin) && (_local4.target.onDisable))){
_local4.target.onDisable();
if (_local4.target.activeDisable){
_local5 = true;
};
};
delete propTweenLookup[_local3];
};
};
if (((_arg2) && (!((_arg1 == _overwrittenProps))))){
_overwrittenProps[_local3] = 1;
};
};
return (_local5);
}
override public function invalidate():void{
if (((_notifyPluginsOfEnabled) && (this.cachedPT1))){
onPluginEvent("onDisable", this);
};
this.cachedPT1 = null;
_overwrittenProps = null;
_hasUpdate = (this.initted = (this.active = (_notifyPluginsOfEnabled = false)));
this.propTweenLookup = {};
}
public static function initClass():void{
rootFrame = 0;
rootTimeline = new SimpleTimeline(null);
rootFramesTimeline = new SimpleTimeline(null);
rootTimeline.cachedStartTime = (getTimer() * 0.001);
rootFramesTimeline.cachedStartTime = rootFrame;
rootTimeline.autoRemoveChildren = true;
rootFramesTimeline.autoRemoveChildren = true;
_shape.addEventListener(Event.ENTER_FRAME, updateAll, false, 0, true);
if (overwriteManager == null){
overwriteManager = {mode:1, enabled:false};
};
}
public static function killTweensOf(_arg1:Object, _arg2:Boolean=false, _arg3:Object=null):void{
var _local4:Array;
var _local5:int;
var _local6:TweenLite;
if ((_arg1 in masterList)){
_local4 = masterList[_arg1];
_local5 = _local4.length;
while (--_local5 > -1) {
_local6 = _local4[_local5];
if (!_local6.gc){
if (_arg2){
_local6.complete(false, false);
};
if (_arg3 != null){
_local6.killVars(_arg3);
};
if ((((_arg3 == null)) || ((((_local6.cachedPT1 == null)) && (_local6.initted))))){
_local6.setEnabled(false, false);
};
};
};
if (_arg3 == null){
delete masterList[_arg1];
};
};
}
public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{
_arg3.runBackwards = true;
if (!("immediateRender" in _arg3)){
_arg3.immediateRender = true;
};
return (new TweenLite(_arg1, _arg2, _arg3));
}
protected static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (1 - (_arg1 / _arg4));
return ((1 - (_arg1 * _arg1)));
}
public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null, _arg4:Boolean=false):TweenLite{
return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, immediateRender:false, useFrames:_arg4, overwrite:0}));
}
protected static function updateAll(_arg1:Event=null):void{
var _local2:Dictionary;
var _local3:Object;
var _local4:Array;
var _local5:int;
rootTimeline.renderTime((((getTimer() * 0.001) - rootTimeline.cachedStartTime) * rootTimeline.cachedTimeScale), false, false);
rootFrame++;
rootFramesTimeline.renderTime(((rootFrame - rootFramesTimeline.cachedStartTime) * rootFramesTimeline.cachedTimeScale), false, false);
if (!(rootFrame % 60)){
_local2 = masterList;
for (_local3 in _local2) {
_local4 = _local2[_local3];
_local5 = _local4.length;
while (--_local5 > -1) {
if (TweenLite(_local4[_local5]).gc){
_local4.splice(_local5, 1);
};
};
if (_local4.length == 0){
delete _local2[_local3];
};
};
};
}
public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{
return (new TweenLite(_arg1, _arg2, _arg3));
}
}
}//package com.greensock
Section 11
//TweenMax (com.greensock.TweenMax)
package com.greensock {
import flash.display.*;
import com.greensock.core.*;
import flash.events.*;
import flash.utils.*;
import com.greensock.plugins.*;
import com.greensock.events.*;
public class TweenMax extends TweenLite implements IEventDispatcher {
protected var _cyclesComplete:uint;// = 0
protected var _dispatcher:EventDispatcher;
protected var _hasUpdateListener:Boolean;
protected var _easeType:uint;
protected var _repeatDelay:Number;// = 0
public var yoyo:Boolean;
protected var _easePower:uint;
protected var _repeat:int;// = 0
public static const version:Number = 11.37;
private static var _overwriteMode:int = (OverwriteManager.enabled) ? OverwriteManager.mode : OverwriteManager.init(2);
;
public static var killTweensOf:Function = TweenLite.killTweensOf;
public static var killDelayedCallsTo:Function = TweenLite.killTweensOf;
public function TweenMax(_arg1:Object, _arg2:Number, _arg3:Object){
super(_arg1, _arg2, _arg3);
if (TweenLite.version < 11.2){
throw (new Error("TweenMax error! Please update your TweenLite class or try deleting your ASO files. TweenMax requires a more recent version. Download updates at http://www.TweenMax.com."));
};
this.yoyo = Boolean(this.vars.yoyo);
_repeat = (this.vars.repeat) ? int(this.vars.repeat) : 0;
_repeatDelay = (this.vars.repeatDelay) ? Number(this.vars.repeatDelay) : 0;
this.cacheIsDirty = true;
if (((((((((((this.vars.onCompleteListener) || (this.vars.onInitListener))) || (this.vars.onUpdateListener))) || (this.vars.onStartListener))) || (this.vars.onRepeatListener))) || (this.vars.onReverseCompleteListener))){
initDispatcher();
if ((((_arg2 == 0)) && ((_delay == 0)))){
_dispatcher.dispatchEvent(new TweenEvent(TweenEvent.UPDATE));
_dispatcher.dispatchEvent(new TweenEvent(TweenEvent.COMPLETE));
};
};
if (((this.vars.timeScale) && (!((this.target is TweenCore))))){
this.cachedTimeScale = this.vars.timeScale;
};
}
public function dispatchEvent(_arg1:Event):Boolean{
return (((_dispatcher)==null) ? false : _dispatcher.dispatchEvent(_arg1));
}
public function set timeScale(_arg1:Number):void{
if (_arg1 == 0){
_arg1 = 0.0001;
};
var _local2:Number = (((_pauseTime) || ((_pauseTime == 0)))) ? _pauseTime : this.timeline.cachedTotalTime;
this.cachedStartTime = (_local2 - (((_local2 - this.cachedStartTime) * this.cachedTimeScale) / _arg1));
this.cachedTimeScale = _arg1;
setDirtyCache(false);
}
override public function renderTime(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void{
var _local6:Boolean;
var _local7:Boolean;
var _local8:Boolean;
var _local10:Number;
var _local11:int;
var _local12:int;
var _local13:Number;
var _local4:Number = (this.cacheIsDirty) ? this.totalDuration : this.cachedTotalDuration;
var _local5:Number = this.cachedTime;
if (_arg1 >= _local4){
this.cachedTotalTime = _local4;
this.cachedTime = this.cachedDuration;
this.ratio = 1;
_local6 = true;
if (this.cachedDuration == 0){
if ((((((_arg1 == 0)) || ((_rawPrevTime < 0)))) && (!((_rawPrevTime == _arg1))))){
_arg3 = true;
};
_rawPrevTime = _arg1;
};
} else {
if (_arg1 <= 0){
if (_arg1 < 0){
this.active = false;
if (this.cachedDuration == 0){
if (_rawPrevTime > 0){
_arg3 = true;
_local6 = true;
};
_rawPrevTime = _arg1;
};
};
this.cachedTotalTime = (this.cachedTime = (this.ratio = 0));
if (((this.cachedReversed) && (!((_local5 == 0))))){
_local6 = true;
};
} else {
this.cachedTotalTime = (this.cachedTime = _arg1);
_local8 = true;
};
};
if (_repeat != 0){
_local10 = (this.cachedDuration + _repeatDelay);
if (_local6){
if (((this.yoyo) && ((_repeat % 2)))){
this.cachedTime = (this.ratio = 0);
};
} else {
if (_arg1 > 0){
_local11 = _cyclesComplete;
_cyclesComplete = int((this.cachedTotalTime / _local10));
if (_cyclesComplete == (this.cachedTotalTime / _local10)){
_cyclesComplete--;
};
if (_local11 != _cyclesComplete){
_local7 = true;
};
this.cachedTime = (((this.cachedTotalTime / _local10) - _cyclesComplete) * _local10);
if (((this.yoyo) && ((_cyclesComplete % 2)))){
this.cachedTime = (this.cachedDuration - this.cachedTime);
} else {
if (this.cachedTime >= this.cachedDuration){
this.cachedTime = this.cachedDuration;
this.ratio = 1;
_local8 = false;
};
};
if (this.cachedTime <= 0){
this.cachedTime = (this.ratio = 0);
_local8 = false;
};
};
};
};
if ((((_local5 == this.cachedTime)) && (!(_arg3)))){
return;
};
if (!this.initted){
init();
};
if (((!(this.active)) && (!(this.cachedPaused)))){
this.active = true;
};
if (_local8){
if (_easeType){
_local12 = _easePower;
_local13 = (this.cachedTime / this.cachedDuration);
if (_easeType == 2){
_local13 = (1 - _local13);
this.ratio = _local13;
while (--_local12 > -1) {
this.ratio = (_local13 * this.ratio);
};
this.ratio = (1 - this.ratio);
} else {
if (_easeType == 1){
this.ratio = _local13;
while (--_local12 > -1) {
this.ratio = (_local13 * this.ratio);
};
} else {
if (_local13 < 0.5){
_local13 = (_local13 * 2);
this.ratio = _local13;
while (--_local12 > -1) {
this.ratio = (_local13 * this.ratio);
};
this.ratio = (this.ratio * 0.5);
} else {
_local13 = ((1 - _local13) * 2);
this.ratio = _local13;
while (--_local12 > -1) {
this.ratio = (_local13 * this.ratio);
};
this.ratio = (1 - (0.5 * this.ratio));
};
};
};
} else {
this.ratio = _ease(this.cachedTime, 0, 1, this.cachedDuration);
};
};
if ((((((_local5 == 0)) && (!((this.cachedTotalTime == 0))))) && (!(_arg2)))){
if (this.vars.onStart){
this.vars.onStart.apply(null, this.vars.onStartParams);
};
if (_dispatcher){
_dispatcher.dispatchEvent(new TweenEvent(TweenEvent.START));
};
};
var _local9:PropTween = this.cachedPT1;
while (_local9) {
_local9.target[_local9.property] = (_local9.start + (this.ratio * _local9.change));
_local9 = _local9.nextNode;
};
if (((_hasUpdate) && (!(_arg2)))){
this.vars.onUpdate.apply(null, this.vars.onUpdateParams);
};
if (((_hasUpdateListener) && (!(_arg2)))){
_dispatcher.dispatchEvent(new TweenEvent(TweenEvent.UPDATE));
};
if (_local6){
if (((_hasPlugins) && (this.cachedPT1))){
onPluginEvent("onComplete", this);
};
complete(true, _arg2);
} else {
if (((_local7) && (!(_arg2)))){
if (this.vars.onRepeat){
this.vars.onRepeat.apply(null, this.vars.onRepeatParams);
};
if (_dispatcher){
_dispatcher.dispatchEvent(new TweenEvent(TweenEvent.REPEAT));
};
};
};
}
override public function set totalDuration(_arg1:Number):void{
if (_repeat == -1){
return;
};
this.duration = ((_arg1 - (_repeat * _repeatDelay)) / (_repeat + 1));
}
public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{
if (_dispatcher == null){
initDispatcher();
};
if (_arg1 == TweenEvent.UPDATE){
_hasUpdateListener = true;
};
_dispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5);
}
protected function insertPropTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4, _arg5:String, _arg6:Boolean, _arg7:PropTween):PropTween{
var _local9:Array;
var _local10:int;
var _local8:PropTween = new PropTween(_arg1, _arg2, _arg3, ((typeof(_arg4))=="number") ? (_arg4 - _arg3) : Number(_arg4), _arg5, _arg6, _arg7);
if (((_arg6) && ((_arg5 == "_MULTIPLE_")))){
_local9 = _arg1.overwriteProps;
_local10 = _local9.length;
while (--_local10 > -1) {
this.propTweenLookup[_local9[_local10]] = _local8;
};
} else {
this.propTweenLookup[_arg5] = _local8;
};
return (_local8);
}
override protected function init():void{
var _local1:TweenMax;
var _local2:int;
var _local3:String;
var _local4:String;
var _local5:Array;
var _local6:Object;
var _local7:PropTween;
var _local8:PropTween;
var _local9:int;
if (this.vars.startAt){
this.vars.startAt.overwrite = 0;
this.vars.startAt.immediateRender = true;
_local1 = new TweenMax(this.target, 0, this.vars.startAt);
};
if (_dispatcher){
_dispatcher.dispatchEvent(new TweenEvent(TweenEvent.INIT));
};
super.init();
if ((_ease in fastEaseLookup)){
_easeType = fastEaseLookup[_ease][0];
_easePower = fastEaseLookup[_ease][1];
};
if (((!((this.vars.roundProps == null))) && (("roundProps" in TweenLite.plugins)))){
_local5 = this.vars.roundProps;
_local9 = _local5.length;
while (--_local9 > -1) {
_local3 = _local5[_local9];
_local8 = this.cachedPT1;
while (_local8) {
if (_local8.name == _local3){
if (_local8.isPlugin){
_local8.target.round = true;
} else {
if (_local6 == null){
_local6 = new TweenLite.plugins.roundProps();
_local6.add(_local8.target, _local3, _local8.start, _local8.change);
_hasPlugins = true;
_local7 = insertPropTween(_local6, "changeFactor", 0, 1, "_MULTIPLE_", true, this.cachedPT1);
this.cachedPT1 = _local7;
} else {
_local6.add(_local8.target, _local3, _local8.start, _local8.change);
};
this.removePropTween(_local8);
this.propTweenLookup[_local3] = _local7;
};
} else {
if (((((_local8.isPlugin) && ((_local8.name == "_MULTIPLE_")))) && (!(_local8.target.round)))){
_local4 = ((" " + _local8.target.overwriteProps.join(" ")) + " ");
if (_local4.indexOf(((" " + _local3) + " ")) != -1){
_local8.target.round = true;
};
};
};
_local8 = _local8.nextNode;
};
};
};
}
public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{
if (_dispatcher){
_dispatcher.removeEventListener(_arg1, _arg2, _arg3);
};
}
public function setDestination(_arg1:String, _arg2, _arg3:Boolean=true):void{
var _local4:Object = {};
_local4[_arg1] = _arg2;
updateTo(_local4, !(_arg3));
}
public function willTrigger(_arg1:String):Boolean{
return (((_dispatcher)==null) ? false : _dispatcher.willTrigger(_arg1));
}
public function hasEventListener(_arg1:String):Boolean{
return (((_dispatcher)==null) ? false : _dispatcher.hasEventListener(_arg1));
}
protected function initDispatcher():void{
if (_dispatcher == null){
_dispatcher = new EventDispatcher(this);
};
if ((this.vars.onInitListener is Function)){
_dispatcher.addEventListener(TweenEvent.INIT, this.vars.onInitListener, false, 0, true);
};
if ((this.vars.onStartListener is Function)){
_dispatcher.addEventListener(TweenEvent.START, this.vars.onStartListener, false, 0, true);
};
if ((this.vars.onUpdateListener is Function)){
_dispatcher.addEventListener(TweenEvent.UPDATE, this.vars.onUpdateListener, false, 0, true);
_hasUpdateListener = true;
};
if ((this.vars.onCompleteListener is Function)){
_dispatcher.addEventListener(TweenEvent.COMPLETE, this.vars.onCompleteListener, false, 0, true);
};
if ((this.vars.onRepeatListener is Function)){
_dispatcher.addEventListener(TweenEvent.REPEAT, this.vars.onRepeatListener, false, 0, true);
};
if ((this.vars.onReverseCompleteListener is Function)){
_dispatcher.addEventListener(TweenEvent.REVERSE_COMPLETE, this.vars.onReverseCompleteListener, false, 0, true);
};
}
public function set currentProgress(_arg1:Number):void{
if (_cyclesComplete == 0){
setTotalTime((this.duration * _arg1), false);
} else {
setTotalTime(((this.duration * _arg1) + (_cyclesComplete * this.cachedDuration)), false);
};
}
public function get totalProgress():Number{
return ((this.cachedTotalTime / this.totalDuration));
}
public function set totalProgress(_arg1:Number):void{
setTotalTime((this.totalDuration * _arg1), false);
}
protected function removePropTween(_arg1:PropTween):Boolean{
if (_arg1.nextNode){
_arg1.nextNode.prevNode = _arg1.prevNode;
};
if (_arg1.prevNode){
_arg1.prevNode.nextNode = _arg1.nextNode;
} else {
if (this.cachedPT1 == _arg1){
this.cachedPT1 = _arg1.nextNode;
};
};
if (((_arg1.isPlugin) && (_arg1.target.onDisable))){
_arg1.target.onDisable();
if (_arg1.target.activeDisable){
return (true);
};
};
return (false);
}
public function get currentProgress():Number{
return ((this.cachedTime / this.duration));
}
public function get repeat():int{
return (_repeat);
}
public function updateTo(_arg1:Object, _arg2:Boolean=false):void{
var _local4:String;
var _local5:Number;
var _local6:PropTween;
var _local7:Number;
var _local3:Number = this.ratio;
if (((((_arg2) && (!((this.timeline == null))))) && ((this.cachedStartTime < this.timeline.cachedTime)))){
this.cachedStartTime = this.timeline.cachedTime;
this.setDirtyCache(false);
if (this.gc){
this.setEnabled(true, false);
} else {
this.timeline.addChild(this);
};
};
for (_local4 in _arg1) {
this.vars[_local4] = _arg1[_local4];
};
if (this.initted){
this.initted = false;
if (!_arg2){
init();
if (((((!(_arg2)) && ((this.cachedTime > 0)))) && ((this.cachedTime < this.cachedDuration)))){
_local5 = (1 / (1 - _local3));
_local6 = this.cachedPT1;
while (_local6) {
_local7 = (_local6.start + _local6.change);
_local6.change = (_local6.change * _local5);
_local6.start = (_local7 - _local6.change);
_local6 = _local6.nextNode;
};
};
};
};
}
override public function set currentTime(_arg1:Number):void{
if (_cyclesComplete == 0){
} else {
if (((this.yoyo) && (((_cyclesComplete % 2) == 1)))){
_arg1 = ((this.duration - _arg1) + (_cyclesComplete * (this.cachedDuration + _repeatDelay)));
} else {
_arg1 = (_arg1 + (_cyclesComplete * (this.duration + _repeatDelay)));
};
};
setTotalTime(_arg1, false);
}
public function get repeatDelay():Number{
return (_repeatDelay);
}
public function killProperties(_arg1:Array):void{
var _local2:Object = {};
var _local3:int = _arg1.length;
while (--_local3 > -1) {
_local2[_arg1[_local3]] = true;
};
killVars(_local2);
}
public function set repeatDelay(_arg1:Number):void{
_repeatDelay = _arg1;
setDirtyCache(true);
}
public function set repeat(_arg1:int):void{
_repeat = _arg1;
setDirtyCache(true);
}
override public function complete(_arg1:Boolean=false, _arg2:Boolean=false):void{
super.complete(_arg1, _arg2);
if (((!(_arg2)) && (_dispatcher))){
if ((((this.cachedTotalTime == this.cachedTotalDuration)) && (!(this.cachedReversed)))){
_dispatcher.dispatchEvent(new TweenEvent(TweenEvent.COMPLETE));
} else {
if (((this.cachedReversed) && ((this.cachedTotalTime == 0)))){
_dispatcher.dispatchEvent(new TweenEvent(TweenEvent.REVERSE_COMPLETE));
};
};
};
}
override public function invalidate():void{
this.yoyo = Boolean((this.vars.yoyo == true));
_repeat = (this.vars.repeat) ? Number(this.vars.repeat) : 0;
_repeatDelay = (this.vars.repeatDelay) ? Number(this.vars.repeatDelay) : 0;
_hasUpdateListener = false;
if (((((!((this.vars.onCompleteListener == null))) || (!((this.vars.onUpdateListener == null))))) || (!((this.vars.onStartListener == null))))){
initDispatcher();
};
setDirtyCache(true);
super.invalidate();
}
public function get timeScale():Number{
return (this.cachedTimeScale);
}
override public function get totalDuration():Number{
if (this.cacheIsDirty){
this.cachedTotalDuration = ((_repeat)==-1) ? 999999999999 : ((this.cachedDuration * (_repeat + 1)) + (_repeatDelay * _repeat));
this.cacheIsDirty = false;
};
return (this.cachedTotalDuration);
}
public static function set globalTimeScale(_arg1:Number):void{
if (_arg1 == 0){
_arg1 = 0.0001;
};
if (TweenLite.rootTimeline == null){
TweenLite.to({}, 0, {});
};
var _local2:SimpleTimeline = TweenLite.rootTimeline;
var _local3:Number = (getTimer() * 0.001);
_local2.cachedStartTime = (_local3 - (((_local3 - _local2.cachedStartTime) * _local2.cachedTimeScale) / _arg1));
_local2 = TweenLite.rootFramesTimeline;
_local3 = TweenLite.rootFrame;
_local2.cachedStartTime = (_local3 - (((_local3 - _local2.cachedStartTime) * _local2.cachedTimeScale) / _arg1));
TweenLite.rootFramesTimeline.cachedTimeScale = (TweenLite.rootTimeline.cachedTimeScale = _arg1);
}
public static function fromTo(_arg1:Object, _arg2:Number, _arg3:Object, _arg4:Object):TweenMax{
_arg4.startAt = _arg3;
if (_arg3.immediateRender){
_arg4.immediateRender = true;
};
return (new TweenMax(_arg1, _arg2, _arg4));
}
public static function allFromTo(_arg1:Array, _arg2:Number, _arg3:Object, _arg4:Object, _arg5:Number=0, _arg6:Function=null, _arg7:Array=null):Array{
_arg4.startAt = _arg3;
if (_arg3.immediateRender){
_arg4.immediateRender = true;
};
return (allTo(_arg1, _arg2, _arg4, _arg5, _arg6, _arg7));
}
public static function pauseAll(_arg1:Boolean=true, _arg2:Boolean=true):void{
changePause(true, _arg1, _arg2);
}
public static function getTweensOf(_arg1:Object):Array{
var _local4:int;
var _local5:uint;
var _local2:Array = masterList[_arg1];
var _local3:Array = [];
if (_local2){
_local4 = _local2.length;
_local5 = 0;
while (--_local4 > -1) {
if (!_local2[_local4].gc){
var _temp1 = _local5;
_local5 = (_local5 + 1);
var _local6 = _temp1;
_local3[_local6] = _local2[_local4];
};
};
};
return (_local3);
}
public static function get globalTimeScale():Number{
return (((TweenLite.rootTimeline)==null) ? 1 : TweenLite.rootTimeline.cachedTimeScale);
}
public static function killChildTweensOf(_arg1:DisplayObjectContainer, _arg2:Boolean=false):void{
var _local4:Object;
var _local5:DisplayObjectContainer;
var _local3:Array = getAllTweens();
var _local6:int = _local3.length;
while (--_local6 > -1) {
_local4 = _local3[_local6].target;
if ((_local4 is DisplayObject)){
_local5 = _local4.parent;
while (_local5) {
if (_local5 == _arg1){
if (_arg2){
_local3[_local6].complete(false);
} else {
_local3[_local6].setEnabled(false, false);
};
};
_local5 = _local5.parent;
};
};
};
}
public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null, _arg4:Boolean=false):TweenMax{
return (new TweenMax(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, immediateRender:false, useFrames:_arg4, overwrite:0}));
}
public static function isTweening(_arg1:Object):Boolean{
var _local4:TweenLite;
var _local2:Array = getTweensOf(_arg1);
var _local3:int = _local2.length;
while (--_local3 > -1) {
_local4 = _local2[_local3];
if (((_local4.active) || ((((_local4.cachedStartTime == _local4.timeline.cachedTime)) && (_local4.timeline.active))))){
return (true);
};
};
return (false);
}
public static function killAll(_arg1:Boolean=false, _arg2:Boolean=true, _arg3:Boolean=true):void{
var _local5:Boolean;
var _local4:Array = getAllTweens();
var _local6:int = _local4.length;
while (--_local6 > -1) {
_local5 = (_local4[_local6].target == _local4[_local6].vars.onComplete);
if ((((_local5 == _arg3)) || (!((_local5 == _arg2))))){
if (_arg1){
_local4[_local6].complete(false);
} else {
_local4[_local6].setEnabled(false, false);
};
};
};
}
private static function changePause(_arg1:Boolean, _arg2:Boolean=true, _arg3:Boolean=false):void{
var _local5:Boolean;
var _local4:Array = getAllTweens();
var _local6:int = _local4.length;
while (--_local6 > -1) {
_local5 = (TweenLite(_local4[_local6]).target == TweenLite(_local4[_local6]).vars.onComplete);
if ((((_local5 == _arg3)) || (!((_local5 == _arg2))))){
TweenCore(_local4[_local6]).paused = _arg1;
};
};
}
public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenMax{
_arg3.runBackwards = true;
if (!("immediateRender" in _arg3)){
_arg3.immediateRender = true;
};
return (new TweenMax(_arg1, _arg2, _arg3));
}
public static function allFrom(_arg1:Array, _arg2:Number, _arg3:Object, _arg4:Number=0, _arg5:Function=null, _arg6:Array=null):Array{
_arg3.runBackwards = true;
if (!("immediateRender" in _arg3)){
_arg3.immediateRender = true;
};
return (allTo(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6));
}
public static function getAllTweens():Array{
var _local4:Array;
var _local5:int;
var _local1:Dictionary = masterList;
var _local2:uint;
var _local3:Array = [];
for each (_local4 in _local1) {
_local5 = _local4.length;
while (--_local5 > -1) {
if (!TweenLite(_local4[_local5]).gc){
var _temp1 = _local2;
_local2 = (_local2 + 1);
var _local8 = _temp1;
_local3[_local8] = _local4[_local5];
};
};
};
return (_local3);
}
public static function resumeAll(_arg1:Boolean=true, _arg2:Boolean=true):void{
changePause(false, _arg1, _arg2);
}
public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenMax{
return (new TweenMax(_arg1, _arg2, _arg3));
}
public static function allTo(_arg1:Array, _arg2:Number, _arg3:Object, _arg4:Number=0, _arg5:Function=null, _arg6:Array=null):Array{
var i:int;
var varsDup:Object;
var p:String;
var onCompleteProxy:Function;
var onCompleteParamsProxy:Array;
var targets = _arg1;
var duration = _arg2;
var vars = _arg3;
var stagger = _arg4;
var onCompleteAll = _arg5;
var onCompleteAllParams = _arg6;
var l:uint = targets.length;
var a:Array = [];
var curDelay:Number = (("delay" in vars)) ? Number(vars.delay) : 0;
onCompleteProxy = vars.onComplete;
onCompleteParamsProxy = vars.onCompleteParams;
var lastIndex:int = ((stagger)<=0) ? 0 : (l - 1);
i = 0;
while (i < l) {
varsDup = {};
for (p in vars) {
varsDup[p] = vars[p];
};
varsDup.delay = curDelay;
if ((((i == lastIndex)) && (!((onCompleteAll == null))))){
varsDup.onComplete = function ():void{
if (onCompleteProxy != null){
onCompleteProxy.apply(null, onCompleteParamsProxy);
};
onCompleteAll.apply(null, onCompleteAllParams);
};
};
a[a.length] = new TweenMax(targets[i], duration, varsDup);
curDelay = (curDelay + stagger);
i = (i + 1);
};
return (a);
}
}
}//package com.greensock
Section 12
//AbstractGameEvent (com.lumoslabs.framework.events.AbstractGameEvent)
package com.lumoslabs.framework.events {
import flash.events.*;
import com.lumoslabs.framework.*;
public class AbstractGameEvent extends Event {
protected var aManagedGame:ManagedGame;
public function AbstractGameEvent(_arg1:ManagedGame, _arg2:String){
super(_arg2);
aManagedGame = _arg1;
}
public function get managedGame():ManagedGame{
return (aManagedGame);
}
}
}//package com.lumoslabs.framework.events
Section 13
//GameControlEvent (com.lumoslabs.framework.events.GameControlEvent)
package com.lumoslabs.framework.events {
import com.lumoslabs.framework.*;
public class GameControlEvent extends AbstractGameEvent {
protected var helpActive:Boolean;
protected var pauseEnabled:Boolean;
protected var pauseActive:Boolean;
protected var muteActive:Boolean;
public static const GAME_CONTROL:String = "gameControl";
public function GameControlEvent(_arg1:ManagedGame, _arg2:Boolean, _arg3:Boolean, _arg4:Boolean, _arg5:Boolean){
super(_arg1, GAME_CONTROL);
this.helpActive = _arg2;
this.pauseActive = _arg3;
this.muteActive = _arg4;
this.pauseEnabled = _arg5;
}
public function get pauseEnable():Boolean{
return (pauseEnabled);
}
public function get help():Boolean{
return (helpActive);
}
public function get mute():Boolean{
return (muteActive);
}
public function get pause():Boolean{
return (pauseActive);
}
}
}//package com.lumoslabs.framework.events
Section 14
//GameDataEvent (com.lumoslabs.framework.events.GameDataEvent)
package com.lumoslabs.framework.events {
import com.lumoslabs.framework.*;
public class GameDataEvent extends AbstractGameEvent {
protected var gameDataHash:Object;
public static const GAME_DATA:String = "gameData";
public function GameDataEvent(_arg1:ManagedGame, _arg2:Object){
super(_arg1, GAME_DATA);
this.gameDataHash = _arg2;
}
public function get dataHash():Object{
return (gameDataHash);
}
}
}//package com.lumoslabs.framework.events
Section 15
//GamePauseEnabledEvent (com.lumoslabs.framework.events.GamePauseEnabledEvent)
package com.lumoslabs.framework.events {
import flash.events.*;
public class GamePauseEnabledEvent extends Event {
private var _pauseEnabled:Boolean;
public static const PAUSE_ENABLED:String = "gamePauseEnabled";
public function GamePauseEnabledEvent(_arg1:String, _arg2:Boolean){
super(_arg1);
this._pauseEnabled = _arg2;
}
public function get pauseEnabled():Boolean{
return (this._pauseEnabled);
}
}
}//package com.lumoslabs.framework.events
Section 16
//GamePlayEvent (com.lumoslabs.framework.events.GamePlayEvent)
package com.lumoslabs.framework.events {
import com.lumoslabs.framework.*;
public class GamePlayEvent extends AbstractGameEvent {
public static const GAME_PLAY:String = "gamePlay";
public function GamePlayEvent(_arg1:ManagedGame){
super(_arg1, GAME_PLAY);
}
}
}//package com.lumoslabs.framework.events
Section 17
//GamePromoEvent (com.lumoslabs.framework.events.GamePromoEvent)
package com.lumoslabs.framework.events {
import com.lumoslabs.framework.*;
public class GamePromoEvent extends AbstractGameEvent {
public static const GAME_PROMO:String = "gamePromo";
public function GamePromoEvent(_arg1:ManagedGame){
super(_arg1, GAME_PROMO);
}
}
}//package com.lumoslabs.framework.events
Section 18
//GameQuitEvent (com.lumoslabs.framework.events.GameQuitEvent)
package com.lumoslabs.framework.events {
import com.lumoslabs.framework.*;
public class GameQuitEvent extends AbstractGameEvent {
public static const GAME_QUIT:String = "gameQuit";
public function GameQuitEvent(_arg1:ManagedGame){
super(_arg1, GAME_QUIT);
}
}
}//package com.lumoslabs.framework.events
Section 19
//AbstractGame (com.lumoslabs.framework.AbstractGame)
package com.lumoslabs.framework {
import flash.display.*;
import flash.events.*;
import com.lumoslabs.framework.events.*;
public class AbstractGame extends EventDispatcher implements ManagedGame {
protected var fullScreen:Boolean;
protected var pauseActive:Boolean;
protected var controlPanel:Boolean;
protected var pauseEnabled:Boolean;
protected var parentDisObjCon:DisplayObjectContainer;
protected var soundEffects:AbstractSoundEffects;
protected var muteActive:Boolean;
public function AbstractGame(_arg1:DisplayObjectContainer=null, _arg2:Boolean=true){
if (_arg1){
this.parentDisObjCon = _arg1;
if (_arg1.stage){
_arg1.stage.tabChildren = false;
_arg1.stage.align = StageAlign.TOP_LEFT;
_arg1.stage.scaleMode = StageScaleMode.NO_SCALE;
};
};
fullScreen = false;
controlPanel = true;
pauseActive = false;
muteActive = false;
pauseEnabled = false;
setDefaultSettings();
initGame();
if (_arg2){
GameRegistrar.registerManagedGame(this);
};
}
public function help():void{
pauseActive = false;
pauseEnabled = false;
dispatchEvent(new GameControlEvent(this, true, pauseActive, muteActive, pauseEnabled));
}
protected function setDefaultSettings():void{
}
public function destroy():void{
soundEffects.stopAll();
}
protected function reportPlay():void{
dispatchEvent(new GamePlayEvent(this));
}
protected function enablePause(_arg1:Boolean):void{
this.pauseEnabled = _arg1;
dispatchEvent(new GamePauseEnabledEvent(GamePauseEnabledEvent.PAUSE_ENABLED, _arg1));
}
public function mute():void{
trace("AbstractGame: MUTE IS DEPRECATED!");
}
public function hasControlPanel():Boolean{
return (controlPanel);
}
protected function reportQuit():void{
dispatchEvent(new GameQuitEvent(this));
}
public function addSettings(_arg1:Object):void{
}
public function isFullScreen():Boolean{
return (fullScreen);
}
public function start():void{
}
protected function initGame():void{
}
public function pause():void{
pauseActive = !(pauseActive);
if (pauseActive){
soundEffects.pause();
} else {
soundEffects.unpause();
};
dispatchEvent(new GameControlEvent(this, false, pauseActive, muteActive, pauseEnabled));
}
protected function reportData(_arg1:Object):void{
dispatchEvent(new GameDataEvent(this, _arg1));
}
protected function reportPromo():void{
dispatchEvent(new GamePromoEvent(this));
}
protected function initPlay():void{
}
}
}//package com.lumoslabs.framework
Section 20
//AbstractSoundEffects (com.lumoslabs.framework.AbstractSoundEffects)
package com.lumoslabs.framework {
import flash.media.*;
import flash.events.*;
import flash.utils.*;
public class AbstractSoundEffects {
protected var pauseChannelDict:Dictionary;
protected var loopChannelDict:Dictionary;
protected var soundDict:Dictionary;
protected var transform:SoundTransform;
protected var volumeDict:Dictionary;
protected var loopDict:Dictionary;
public function AbstractSoundEffects(){
transform = new SoundTransform();
volumeDict = new Dictionary();
loopDict = new Dictionary();
loopChannelDict = new Dictionary();
pauseChannelDict = new Dictionary();
soundDict = new Dictionary();
}
public function unpause():void{
var _local1:Sound;
var _local2:SoundChannel;
for each (_local2 in pauseChannelDict) {
_local1 = soundDict[_local2];
delete loopChannelDict[_local1];
delete soundDict[_local2];
playSound(_local1, _local2.position);
};
pauseChannelDict = new Dictionary();
}
public function mute():void{
transform.volume = 0;
SoundMixer.soundTransform = transform;
}
protected function getDeleteChannelFunction(_arg1:SoundChannel):Function{
var channel = _arg1;
return (function (_arg1:Event):void{
delete soundDict[channel];
});
}
protected function getReplayFunction(_arg1:Sound, _arg2:SoundChannel):Function{
var sound = _arg1;
var channel = _arg2;
return (function (_arg1:Event):void{
delete loopChannelDict[sound];
delete soundDict[channel];
playLoopSound(sound);
});
}
public function playSoundByName(_arg1:String, _arg2:Number=0, _arg3:Number=1):void{
var _local4:Sound = new ((getDefinitionByName(_arg1) as Class));
playSound(_local4, _arg2, _arg3);
}
protected function stopNoLoopSound(_arg1:Sound):void{
var _local2:*;
for (_local2 in soundDict) {
if (soundDict[_local2] == _arg1){
_local2.stop();
delete soundDict[_local2];
};
};
}
protected function stopLoopSound(_arg1:Sound):void{
var _local2:SoundChannel;
if ((loopChannelDict[_arg1] is SoundChannel)){
_local2 = loopChannelDict[_arg1];
_local2.stop();
delete loopChannelDict[_arg1];
delete soundDict[_local2];
};
}
protected function addEnumerableSounds(_arg1:Object, _arg2:Number=1, _arg3:Boolean=false):void{
var _local4:Sound;
for each (_local4 in _arg1) {
addSound(_local4, _arg2, _arg3);
};
}
protected function addSound(_arg1:Sound, _arg2:Number=1, _arg3:Boolean=false):void{
volumeDict[_arg1] = _arg2;
loopDict[_arg1] = _arg3;
}
public function unmute():void{
transform.volume = 1;
SoundMixer.soundTransform = transform;
}
protected function playNoLoopSound(_arg1:Sound, _arg2:Number=0, _arg3:Number=1):void{
if (volumeDict[_arg1] == undefined){
transform.volume = _arg3;
} else {
transform.volume = volumeDict[_arg1];
};
var _local4:SoundChannel = _arg1.play(_arg2, 0, transform);
if (_local4 != null){
soundDict[_local4] = _arg1;
_local4.addEventListener(Event.SOUND_COMPLETE, getDeleteChannelFunction(_local4));
};
}
protected function playLoopSound(_arg1:Sound, _arg2:Number=0, _arg3:Number=1):void{
var _local4:SoundChannel;
if (loopChannelDict[_arg1] == undefined){
if (volumeDict[_arg1] == undefined){
transform.volume = _arg3;
} else {
transform.volume = volumeDict[_arg1];
};
_local4 = _arg1.play(_arg2, 0, transform);
if (_local4 != null){
loopChannelDict[_arg1] = _local4;
soundDict[_local4] = _arg1;
_local4.addEventListener(Event.SOUND_COMPLETE, getReplayFunction(_arg1, _local4));
};
};
}
protected function playSound(_arg1:Sound, _arg2:Number=0, _arg3:Number=1):void{
if (loopDict[_arg1]){
playLoopSound(_arg1, _arg2, _arg3);
} else {
playNoLoopSound(_arg1, _arg2, _arg3);
};
}
protected function stopSound(_arg1:Sound):void{
if (loopDict[_arg1]){
stopLoopSound(_arg1);
} else {
stopNoLoopSound(_arg1);
};
}
public function pause():void{
var _local1:*;
SoundMixer.stopAll();
for (_local1 in soundDict) {
pauseChannelDict[_local1] = _local1;
};
}
public function stopAll():void{
SoundMixer.stopAll();
loopChannelDict = new Dictionary();
pauseChannelDict = new Dictionary();
soundDict = new Dictionary();
}
}
}//package com.lumoslabs.framework
Section 21
//GameManager (com.lumoslabs.framework.GameManager)
package com.lumoslabs.framework {
public interface GameManager {
function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void;
function setupGame(_arg1:ManagedGame):void;
}
}//package com.lumoslabs.framework
Section 22
//GameRegistrar (com.lumoslabs.framework.GameRegistrar)
package com.lumoslabs.framework {
public class GameRegistrar {
private static var _gameManager:GameManager;
public static function getGameManager():GameManager{
return (_gameManager);
}
public static function registerManagedGame(_arg1:ManagedGame):void{
trace(("GameRegistrar: registerManagedGame: " + _arg1));
if (_gameManager != null){
_gameManager.setupGame(_arg1);
} else {
_arg1.start();
};
}
public static function registerGameManager(_arg1:GameManager):void{
trace(("GameRegistrar: registerGameManager: " + _arg1));
if (_gameManager != null){
trace(("GameRegistrar: registering a new GameManager, although already had: " + _gameManager));
};
_gameManager = _arg1;
}
}
}//package com.lumoslabs.framework
Section 23
//ManagedGame (com.lumoslabs.framework.ManagedGame)
package com.lumoslabs.framework {
public interface ManagedGame {
function help():void;
function start():void;
function addSettings(_arg1:Object):void;
function isFullScreen():Boolean;
function pause():void;
function hasControlPanel():Boolean;
function mute():void;
function destroy():void;
function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void;
}
}//package com.lumoslabs.framework
Section 24
//EndScreen (com.lumoslabs.games.brainShift.screens.EndScreen)
package com.lumoslabs.games.brainShift.screens {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class EndScreen extends Sprite {
public var correctField:TextField;
public var continueButton:SimpleButton;
public var surveyButton:SimpleButton;
public var scoreField:TextField;
public function EndScreen(_arg1:Function, _arg2:Function){
var continueClick = _arg1;
var surveyClick = _arg2;
super();
continueButton.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{
continueClick();
});
surveyButton.addEventListener(MouseEvent.CLICK, surveyClick, false, 0, true);
surveyButton.visible = false;
}
public function showSurveyButton(_arg1:Boolean=true):void{
surveyButton.visible = _arg1;
}
public function setScoreText(_arg1:Object):void{
scoreField.text = String(_arg1);
}
public function setCorrectText(_arg1:Object):void{
correctField.text = String(_arg1);
}
}
}//package com.lumoslabs.games.brainShift.screens
Section 25
//HelpScreen (com.lumoslabs.games.brainShift.screens.HelpScreen)
package com.lumoslabs.games.brainShift.screens {
import flash.display.*;
import flash.events.*;
public class HelpScreen extends MovieClip {
public var animation:MovieClip;
public var playButton:SimpleButton;
public function HelpScreen(_arg1:Function):void{
var playGame = _arg1;
super();
reset();
playButton.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{
playGame();
});
}
public function start():void{
animation.gotoAndPlay(1);
}
public function reset():void{
animation.gotoAndStop(1);
}
}
}//package com.lumoslabs.games.brainShift.screens
Section 26
//OverdriveHelpScreen (com.lumoslabs.games.brainShift.screens.OverdriveHelpScreen)
package com.lumoslabs.games.brainShift.screens {
import flash.display.*;
import flash.events.*;
public class OverdriveHelpScreen extends HelpScreen {
public var nextButton:SimpleButton;
public var backButton:SimpleButton;
protected var helpFrame:int;
public function OverdriveHelpScreen(_arg1:Function):void{
super(_arg1);
nextButton.addEventListener(MouseEvent.CLICK, nextClick);
backButton.addEventListener(MouseEvent.CLICK, backClick);
}
protected function backClick(_arg1:MouseEvent):void{
helpFrame = Math.max((helpFrame - 1), 1);
showFrame(helpFrame);
}
override public function start():void{
reset();
}
protected function nextClick(_arg1:MouseEvent):void{
helpFrame = Math.min((helpFrame + 1), totalFrames);
showFrame(helpFrame);
}
protected function showFrame(_arg1:int):void{
gotoAndStop(_arg1);
switch (_arg1){
case 1:
nextButton.visible = true;
backButton.visible = false;
break;
case 6:
nextButton.visible = false;
backButton.visible = true;
break;
default:
nextButton.visible = true;
backButton.visible = true;
break;
};
}
override public function reset():void{
helpFrame = 1;
showFrame(helpFrame);
}
}
}//package com.lumoslabs.games.brainShift.screens
Section 27
//OverdriveStartScreen (com.lumoslabs.games.brainShift.screens.OverdriveStartScreen)
package com.lumoslabs.games.brainShift.screens {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public class OverdriveStartScreen extends StartScreen {
public var hyperlinkButton:SimpleButton;
public function OverdriveStartScreen(_arg1:Function, _arg2:Function, _arg3:URLRequest){
var help = _arg1;
var playGame = _arg2;
var hyperlinkURLRequest = _arg3;
super(help, playGame);
hyperlinkButton.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{
navigateToURL(hyperlinkURLRequest);
});
}
}
}//package com.lumoslabs.games.brainShift.screens
Section 28
//PlayScreen (com.lumoslabs.games.brainShift.screens.PlayScreen)
package com.lumoslabs.games.brainShift.screens {
import flash.display.*;
import flash.events.*;
import com.greensock.*;
import com.lumoslabs.games.brainShift.*;
import com.lumoslabs.util.*;
import com.lumoslabs.ui.*;
public class PlayScreen extends Sprite {
public var scoreDisplay:ScoreDisplay;
public var noButton:SimpleButton;
protected var bonusFilterArray:Array;
public var secondCountdown:SecondCountdown;
public var instructions:Instructions;
protected var screenInstructionsShown:Boolean;
public var background:Sprite;
public var yesButton:SimpleButton;
protected static const INSTRUCT_INTRO_TEXT:String = "Remember";
protected static const INSTRUCT_TEXT:String = "Reminder";
protected static const INSTRUCT_FADE_TIME:Number = 0.5;
public function PlayScreen(_arg1:Function):void{
var inputResponse = _arg1;
super();
yesButton.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{
inputResponse(true);
});
noButton.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{
inputResponse(false);
});
bonusFilterArray = background.filters;
showBonus(false);
showInstructions(false);
}
public function showInstructions(_arg1:Boolean):void{
TweenMax.killTweensOf(instructions);
screenInstructionsShown = _arg1;
instructions.visible = _arg1;
instructions.alpha = 1;
}
public function fadeInInstructions(_arg1:Boolean):void{
if (!screenInstructionsShown){
TweenMax.killTweensOf(instructions);
if (_arg1){
instructions.textField.text = INSTRUCT_INTRO_TEXT;
} else {
instructions.textField.text = INSTRUCT_TEXT;
};
screenInstructionsShown = true;
instructions.visible = true;
instructions.alpha = 0;
TweenMax.to(instructions, INSTRUCT_FADE_TIME, {autoAlpha:1});
};
}
public function disableButtons():void{
yesButton.mouseEnabled = false;
noButton.mouseEnabled = false;
}
public function setTime(_arg1:Number, _arg2:Function=null):void{
secondCountdown.setTime(_arg1, _arg2);
}
public function addCard(_arg1:TrialCard):void{
background.addChild(_arg1);
}
public function pauseCountdown():void{
secondCountdown.pause();
}
public function setScoreText(_arg1:Object):void{
scoreDisplay.textField.text = String(_arg1);
}
public function showBonus(_arg1:Boolean):void{
if (_arg1){
background.filters = bonusFilterArray;
} else {
background.filters = null;
};
}
public function get instructionsShown():Boolean{
return (screenInstructionsShown);
}
public function startCountdown():void{
secondCountdown.start();
}
public function resetCountdown():void{
secondCountdown.reset();
}
public function removeCard(_arg1:TrialCard):void{
Display.removeIfChild(background, _arg1);
}
public function fadeOutInstructions():void{
if (screenInstructionsShown){
TweenMax.killTweensOf(instructions);
screenInstructionsShown = false;
instructions.visible = true;
instructions.alpha = 1;
TweenMax.to(instructions, INSTRUCT_FADE_TIME, {autoAlpha:0});
};
}
public function unpauseCountdown():void{
secondCountdown.unpause();
}
public function enableButtons():void{
yesButton.mouseEnabled = true;
noButton.mouseEnabled = true;
}
}
}//package com.lumoslabs.games.brainShift.screens
Section 29
//StartScreen (com.lumoslabs.games.brainShift.screens.StartScreen)
package com.lumoslabs.games.brainShift.screens {
import flash.display.*;
import flash.events.*;
public class StartScreen extends Sprite {
public var helpButton:SimpleButton;
public var playButton:SimpleButton;
public function StartScreen(_arg1:Function, _arg2:Function){
var help = _arg1;
var playGame = _arg2;
super();
helpButton.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{
help();
});
playButton.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{
playGame();
});
}
}
}//package com.lumoslabs.games.brainShift.screens
Section 30
//BrainShiftGame (com.lumoslabs.games.brainShift.BrainShiftGame)
package com.lumoslabs.games.brainShift {
import flash.display.*;
import flash.events.*;
import com.lumoslabs.framework.*;
import com.greensock.*;
import flash.net.*;
import com.lumoslabs.util.*;
import flash.utils.*;
import com.greensock.easing.*;
import com.greensock.plugins.*;
import com.lumoslabs.games.brainShift.screens.*;
import com.lumoslabs.ui.*;
import flash.ui.*;
public class BrainShiftGame extends AbstractGame {
protected var trialTime:int;
protected var aidedCorrectTrials:int;
protected var helpScreen:HelpScreen;
protected var score:int;
protected var keyInputEnabled:Boolean;
protected var correctTrials:int;
protected var feedbackSprite:Sprite;
protected var endScreen:EndScreen;
protected var aidedResponseTimeArray:Array;
protected var surveyURL:String;
protected var aidedResponses:int;
protected var correctLetter:int;
protected var playScreen:PlayScreen;
protected var showInstructions:Boolean;
protected var trialCard:TrialCard;
protected var responseTimeArray:Array;
protected var time:Number;
protected var responses:int;
protected var correctNumber:int;
protected var readyCountdown:ReadyCountdown;
protected var pointsFeedbackSprite;
protected var bonusIndex:int;
protected var startScreen:StartScreen;
protected var consCorrect:int;
protected static const READY_TIME:Number = 3;
protected static const INSTRUCT_START_TIME:Number = 0.5;
protected static const POINTS_DELTA_Y:Number = -30;
protected static const GREEN_CHECK_SPRITE:Sprite = new GreenCheck();
protected static const TRIAL_DELAY:Number = 0.3;
protected static const POINTS_TWEEN_TIME:Number = 1;
protected static const INSTRUCT_CONS_CORRECT:int = 3;
protected static const WIDTH:Number = 640;
protected static const HEIGHT:Number = 480;
protected static const RED_X_SPRITE:Sprite = new RedX();
protected static const INSTRUCT_TYPE_CORRECT:int = 2;
protected static const READY_COUNTDOWN_X:int = 320;
protected static const READY_COUNTDOWN_Y:int = 200;
protected static const CORRECT_POINTS_ARRAY:Array = [25, 50, 100];
protected static const INCORRECT_POINTS:int = -25;
protected static const POINTS_FEEDBACK_X:int = 320;
protected static const POINTS_FEEDBACK_Y:int = 175;
protected static const BONUS_CONS_CORRECT:int = 5;
protected static const CONS_CORRECT_ARRAY:Array = [2, 3];
public function BrainShiftGame(_arg1:DisplayObjectContainer):void{
super(_arg1);
}
protected function enableInput():void{
parentDisObjCon.stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownListener, false, 0, true);
parentDisObjCon.stage.focus = parentDisObjCon.stage;
playScreen.enableButtons();
}
protected function endReady():void{
playScreen.removeChild(readyCountdown);
TweenMax.delayedCall(INSTRUCT_START_TIME, startTrials);
}
protected function addPoints(_arg1:int):void{
score = Math.max((score + _arg1), 0);
playScreen.setScoreText(score);
TweenMax.killTweensOf(pointsFeedbackSprite);
Display.removeIfChild(playScreen, pointsFeedbackSprite);
if (_arg1 > 0){
pointsFeedbackSprite = new CorrectPointsFeedback();
pointsFeedbackSprite.textField.text = ("+" + _arg1);
} else {
pointsFeedbackSprite = new IncorrectPointsFeedback();
pointsFeedbackSprite.textField.text = _arg1;
};
pointsFeedbackSprite.x = POINTS_FEEDBACK_X;
pointsFeedbackSprite.y = POINTS_FEEDBACK_Y;
playScreen.addChild(pointsFeedbackSprite);
TweenMax.to(pointsFeedbackSprite, POINTS_TWEEN_TIME, {y:POINTS_DELTA_Y.toString(), alpha:0, ease:Linear.easeNone, onComplete:Display.removeIfChild, onCompleteParams:[playScreen, pointsFeedbackSprite]});
}
protected function keyDownListener(_arg1:KeyboardEvent):void{
if (keyInputEnabled){
keyInputEnabled = false;
if (_arg1.keyCode == Keyboard.RIGHT){
inputResponse(true);
} else {
if (_arg1.keyCode == Keyboard.LEFT){
inputResponse(false);
};
};
};
}
protected function enableKeyUp():void{
parentDisObjCon.stage.addEventListener(KeyboardEvent.KEY_UP, keyUpListener, false, 0, true);
}
protected function startTrials():void{
playScreen.startCountdown();
enablePause(true);
enableKeyUp();
nextTrial();
}
override protected function initGame():void{
TweenPlugin.activate([AutoAlphaPlugin]);
startScreen = new StartScreen(help, playGame);
playScreen = new PlayScreen(inputResponse);
helpScreen = new HelpScreen(playGame);
endScreen = new EndScreen(reportQuit, surveyClick);
readyCountdown = new ReadyCountdown();
readyCountdown.x = READY_COUNTDOWN_X;
readyCountdown.y = READY_COUNTDOWN_Y;
readyCountdown.setTime(READY_TIME, endReady);
soundEffects = new BrainShiftSoundEffects();
}
protected function showFeedback(_arg1:Sprite):void{
this.feedbackSprite = _arg1;
trialCard.addChild(_arg1);
}
protected function inputResponse(_arg1:Boolean):void{
disableInput();
var _local2:int = (getTimer() - trialTime);
responses++;
responseTimeArray.push(_local2);
if (playScreen.instructionsShown){
aidedResponses++;
aidedResponseTimeArray.push(_local2);
};
if (trialCard.correctResponse == _arg1){
correctTrials++;
consCorrect++;
if (playScreen.instructionsShown){
aidedCorrectTrials++;
};
if ((((bonusIndex < CONS_CORRECT_ARRAY.length)) && ((consCorrect == CONS_CORRECT_ARRAY[bonusIndex])))){
bonusIndex++;
sounds.stopBonusSound();
sounds.playBonusSound();
} else {
sounds.playCorrectSound();
};
if (trialCard.responseType == TrialCard.NUMBER_RESPONSE){
correctNumber++;
} else {
correctLetter++;
};
addPoints(CORRECT_POINTS_ARRAY[bonusIndex]);
showFeedback(GREEN_CHECK_SPRITE);
} else {
playScreen.showBonus(false);
consCorrect = 0;
bonusIndex = 0;
sounds.playIncorrectSound();
addPoints(INCORRECT_POINTS);
showFeedback(RED_X_SPRITE);
};
TweenMax.delayedCall(TRIAL_DELAY, nextTrial);
}
protected function keyUpListener(_arg1:KeyboardEvent):void{
keyInputEnabled = true;
}
override public function help():void{
super.help();
sounds.stopAll();
disableInput();
disableKeyUp();
readyCountdown.reset();
playScreen.resetCountdown();
TweenMax.killAll();
Display.removeIfChildren(parentDisObjCon, startScreen, helpScreen, playScreen, endScreen);
Display.removeIfChild(playScreen, pointsFeedbackSprite);
playScreen.removeCard(trialCard);
parentDisObjCon.addChild(helpScreen);
helpScreen.start();
}
protected function get sounds():BrainShiftSoundEffects{
return (BrainShiftSoundEffects(soundEffects));
}
override protected function setDefaultSettings():void{
time = 60;
surveyURL = null;
}
protected function disableInput():void{
parentDisObjCon.stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownListener);
playScreen.disableButtons();
}
protected function disableKeyUp():void{
parentDisObjCon.stage.removeEventListener(KeyboardEvent.KEY_UP, keyUpListener);
}
protected function playGame():void{
reportPlay();
initPlay();
parentDisObjCon.addChild(playScreen);
playScreen.fadeInInstructions(true);
readyCountdown.start();
}
override public function start():void{
initPlay();
parentDisObjCon.addChild(startScreen);
}
protected function nextTrial():void{
playScreen.removeCard(trialCard);
Display.removeIfChild(trialCard, feedbackSprite);
trialCard = new TrialCard(trialCard, (consCorrect == 0));
playScreen.addCard(trialCard);
playScreen.showBonus((bonusIndex > 0));
if (((((((showInstructions) && ((correctNumber >= INSTRUCT_TYPE_CORRECT)))) && ((correctLetter >= INSTRUCT_TYPE_CORRECT)))) && ((consCorrect >= INSTRUCT_CONS_CORRECT)))){
showInstructions = false;
};
if (((showInstructions) || ((consCorrect < INSTRUCT_CONS_CORRECT)))){
playScreen.fadeInInstructions(false);
} else {
playScreen.fadeOutInstructions();
};
trialTime = getTimer();
enableInput();
}
override public function addSettings(_arg1:Object):void{
if (_arg1 == null){
trace("BrainShiftGame, null settingsHash passed, defaults used");
} else {
if (_arg1.time == undefined){
trace(("BrainShiftGame, no time passed, default used: " + time));
} else {
time = Number(_arg1.time);
};
if ((((_arg1.survey_url == undefined)) || ((_arg1.survey_url == "")))){
trace(("BrainShiftGame, no survey_url passed, default used: " + surveyURL));
} else {
surveyURL = String(_arg1.survey_url);
};
};
}
protected function surveyClick(_arg1:Event=undefined):void{
if (surveyURL != null){
navigateToURL(new URLRequest(surveyURL));
};
}
protected function endGame():void{
enablePause(false);
disableInput();
disableKeyUp();
TweenMax.killAll();
endScreen.setScoreText(score);
if (responses == 0){
endScreen.setCorrectText("0%");
} else {
endScreen.setCorrectText((Math.round(((100 * correctTrials) / responses)) + "%"));
};
parentDisObjCon.removeChild(playScreen);
parentDisObjCon.addChild(endScreen);
var _local1:int = ArrayHelper.averageInt(responseTimeArray);
var _local2:int = ArrayHelper.averageInt(aidedResponseTimeArray);
reportData({score:score, num_correct:correctTrials, num_tries:responses, response_time:_local1, aided_num_correct:aidedCorrectTrials, aided_num_tries:aidedResponses, aided_response_time:_local2});
}
override public function pause():void{
super.pause();
if (pauseActive){
disableInput();
playScreen.pauseCountdown();
TweenMax.pauseAll(true, true);
playScreen.removeCard(trialCard);
} else {
enableInput();
playScreen.unpauseCountdown();
TweenMax.resumeAll(true, true);
playScreen.addCard(trialCard);
};
}
override public function destroy():void{
super.destroy();
TweenMax.killAll();
enablePause(false);
disableInput();
disableKeyUp();
helpScreen.reset();
readyCountdown.reset();
playScreen.resetCountdown();
Display.removeIfChildren(parentDisObjCon, startScreen, helpScreen, playScreen, endScreen);
parentDisObjCon = null;
readyCountdown = null;
soundEffects = null;
startScreen = null;
helpScreen = null;
playScreen = null;
endScreen = null;
}
override protected function initPlay():void{
Display.removeIfChildren(parentDisObjCon, startScreen, playScreen, helpScreen, endScreen);
Display.removeIfChild(playScreen, pointsFeedbackSprite);
playScreen.setTime(time, endGame);
playScreen.removeCard(trialCard);
helpScreen.reset();
disableInput();
disableKeyUp();
responses = 0;
aidedResponses = 0;
correctTrials = 0;
aidedCorrectTrials = 0;
consCorrect = 0;
bonusIndex = 0;
score = 0;
responseTimeArray = new Array();
aidedResponseTimeArray = new Array();
correctNumber = 0;
correctLetter = 0;
showInstructions = true;
keyInputEnabled = true;
playScreen.setScoreText(score);
playScreen.resetCountdown();
playScreen.showInstructions(false);
playScreen.showBonus(false);
playScreen.addChild(readyCountdown);
endScreen.showSurveyButton(!((surveyURL == null)));
}
public static function main(_arg1:DisplayObjectContainer):void{
var _local2:ManagedGame = new BrainShiftGame(_arg1);
}
}
}//package com.lumoslabs.games.brainShift
Section 31
//BrainShiftOverdriveGame (com.lumoslabs.games.brainShift.BrainShiftOverdriveGame)
package com.lumoslabs.games.brainShift {
import flash.display.*;
import com.lumoslabs.framework.*;
import com.greensock.*;
import flash.net.*;
import com.lumoslabs.util.*;
import flash.utils.*;
import com.greensock.plugins.*;
import com.lumoslabs.games.brainShift.screens.*;
import com.lumoslabs.ui.*;
public class BrainShiftOverdriveGame extends BrainShiftGame {
protected var correctEven:int;
protected var correctOdd:int;
protected var hyperlinkURLRequest:URLRequest;
protected var correctConsonant:int;
protected var correctVowel:int;
public function BrainShiftOverdriveGame(_arg1:DisplayObjectContainer):void{
super(_arg1);
}
override protected function setDefaultSettings():void{
time = 60;
hyperlinkURLRequest = new URLRequest("/games/brain-shift");
surveyURL = null;
}
override protected function nextTrial():void{
playScreen.removeCard(trialCard);
Display.removeIfChild(trialCard, feedbackSprite);
trialCard = new OverdriveTrialCard(trialCard, (consCorrect == 0));
playScreen.addCard(trialCard);
playScreen.showBonus((bonusIndex > 0));
if (((((((((((showInstructions) && ((correctEven >= INSTRUCT_TYPE_CORRECT)))) && ((correctOdd >= INSTRUCT_TYPE_CORRECT)))) && ((correctVowel >= INSTRUCT_TYPE_CORRECT)))) && ((correctConsonant >= INSTRUCT_TYPE_CORRECT)))) && ((consCorrect >= INSTRUCT_CONS_CORRECT)))){
showInstructions = false;
};
if (((showInstructions) || ((consCorrect < INSTRUCT_CONS_CORRECT)))){
playScreen.fadeInInstructions(false);
} else {
playScreen.fadeOutInstructions();
};
trialTime = getTimer();
enableInput();
}
override protected function initGame():void{
TweenPlugin.activate([AutoAlphaPlugin]);
startScreen = new OverdriveStartScreen(help, playGame, hyperlinkURLRequest);
playScreen = new PlayScreen(inputResponse);
helpScreen = new OverdriveHelpScreen(playGame);
endScreen = new EndScreen(reportQuit, surveyClick);
readyCountdown = new ReadyCountdown();
readyCountdown.x = READY_COUNTDOWN_X;
readyCountdown.y = READY_COUNTDOWN_Y;
readyCountdown.setTime(READY_TIME, endReady);
soundEffects = new BrainShiftSoundEffects();
}
override public function addSettings(_arg1:Object):void{
if (_arg1 == null){
trace("BrainShiftOverdriveGame, null settingsHash passed, defaults used");
} else {
if (_arg1.time == undefined){
trace(("BrainShiftOverdriveGame, no time passed, default used: " + time));
} else {
time = Number(_arg1.time);
};
if (_arg1.hyperlink_url == undefined){
trace(("BrainShiftOverdriveGame, no hyperlink_url passed, default used: " + hyperlinkURLRequest.url));
} else {
hyperlinkURLRequest.url = _arg1.hyperlink_url;
};
if ((((_arg1.survey_url == undefined)) || ((_arg1.survey_url == "")))){
trace(("BrainShiftOverdriveGame, no survey_url passed, default used: " + surveyURL));
} else {
surveyURL = String(_arg1.survey_url);
};
};
}
override protected function initPlay():void{
super.initPlay();
correctEven = 0;
correctOdd = 0;
correctVowel = 0;
correctConsonant = 0;
}
override protected function inputResponse(_arg1:Boolean):void{
disableInput();
var _local2:int = (getTimer() - trialTime);
responses++;
responseTimeArray.push(_local2);
if (playScreen.instructionsShown){
aidedResponses++;
aidedResponseTimeArray.push(_local2);
};
if (trialCard.correctResponse == _arg1){
correctTrials++;
consCorrect++;
if (playScreen.instructionsShown){
aidedCorrectTrials++;
};
if ((((bonusIndex < CONS_CORRECT_ARRAY.length)) && ((consCorrect == CONS_CORRECT_ARRAY[bonusIndex])))){
bonusIndex++;
sounds.stopBonusSound();
sounds.playBonusSound();
} else {
sounds.playCorrectSound();
};
switch (trialCard.responseType){
case OverdriveTrialCard.EVEN_RESPONSE:
correctNumber++;
correctEven++;
break;
case OverdriveTrialCard.ODD_RESPONSE:
correctNumber++;
correctOdd++;
break;
case OverdriveTrialCard.VOWEL_RESPONSE:
correctLetter++;
correctVowel++;
break;
case OverdriveTrialCard.CONSONANT_RESPONSE:
correctLetter++;
correctConsonant++;
break;
default:
break;
};
addPoints(CORRECT_POINTS_ARRAY[bonusIndex]);
showFeedback(GREEN_CHECK_SPRITE);
} else {
playScreen.showBonus(false);
consCorrect = 0;
bonusIndex = 0;
sounds.playIncorrectSound();
addPoints(INCORRECT_POINTS);
showFeedback(RED_X_SPRITE);
};
TweenMax.delayedCall(TRIAL_DELAY, nextTrial);
}
public static function main(_arg1:DisplayObjectContainer):void{
var _local2:ManagedGame = new BrainShiftOverdriveGame(_arg1);
}
}
}//package com.lumoslabs.games.brainShift
Section 32
//BrainShiftSoundEffects (com.lumoslabs.games.brainShift.BrainShiftSoundEffects)
package com.lumoslabs.games.brainShift {
import flash.media.*;
import com.lumoslabs.framework.*;
public class BrainShiftSoundEffects extends AbstractSoundEffects {
protected var bonusSound:Sound;
protected var correctSound:Sound;
protected var incorrectSound:Sound;
public function BrainShiftSoundEffects(){
bonusSound = new Bonus();
correctSound = new Correct();
incorrectSound = new Incorrect();
super();
addSound(bonusSound, 0.5);
addSound(correctSound, 0.5);
addSound(incorrectSound, 0.5);
}
public function stopBonusSound():void{
stopNoLoopSound(bonusSound);
}
public function playCorrectSound():void{
playNoLoopSound(correctSound);
}
public function playBonusSound():void{
playNoLoopSound(bonusSound);
}
public function playIncorrectSound():void{
playNoLoopSound(incorrectSound);
}
}
}//package com.lumoslabs.games.brainShift
Section 33
//OverdriveTrialCard (com.lumoslabs.games.brainShift.OverdriveTrialCard)
package com.lumoslabs.games.brainShift {
import com.lumoslabs.util.*;
import flash.text.*;
public class OverdriveTrialCard extends TrialCard {
public var bottomLeftField:TextField;
public var bottomRightField:TextField;
public var topRightField:TextField;
protected var textFieldHash:Object;
public var topLeftField:TextField;
public static const CONSONANT_RESPONSE:String = "consonantResponse";
public static const ODD_RESPONSE:String = "oddResponse";
public static const EVEN_RESPONSE:String = "evenResponse";
public static const VOWEL_RESPONSE:String = "vowelResponse";
public function OverdriveTrialCard(_arg1:TrialCard, _arg2:Boolean){
super(_arg1, _arg2);
}
override protected function setupStimulus():void{
trialStimulus = new String();
switch (trialResponseType){
case EVEN_RESPONSE:
addRandomStimulus(correctResponse, Random.bool());
break;
case ODD_RESPONSE:
addRandomStimulus(!(correctResponse), Random.bool());
break;
case VOWEL_RESPONSE:
addRandomStimulus(Random.bool(), correctResponse);
break;
case CONSONANT_RESPONSE:
addRandomStimulus(Random.bool(), !(correctResponse));
break;
default:
break;
};
}
override protected function init(_arg1:TrialCard, _arg2:Boolean):void{
textFieldHash = {evenResponse:topLeftField, oddResponse:bottomLeftField, vowelResponse:topRightField, consonantResponse:bottomRightField};
if (_arg1 == null){
trialResponseType = Random.element([EVEN_RESPONSE, ODD_RESPONSE, VOWEL_RESPONSE, CONSONANT_RESPONSE]);
trialCorrectResponse = Random.bool();
setupStimulus();
showField();
} else {
if (_arg2){
trialResponseType = _arg1.responseType;
} else {
trialResponseType = Random.element([EVEN_RESPONSE, ODD_RESPONSE, VOWEL_RESPONSE, CONSONANT_RESPONSE]);
};
trialCorrectResponse = Random.bool();
do {
setupStimulus();
} while (trialStimulus == _arg1.stimulus);
showField();
};
}
protected function showField():void{
var _local1:TextField;
for each (_local1 in textFieldHash) {
_local1.visible = false;
};
_local1 = textFieldHash[trialResponseType];
_local1.text = trialStimulus;
_local1.visible = true;
}
}
}//package com.lumoslabs.games.brainShift
Section 34
//TrialCard (com.lumoslabs.games.brainShift.TrialCard)
package com.lumoslabs.games.brainShift {
import flash.display.*;
import com.lumoslabs.util.*;
import flash.text.*;
public class TrialCard extends Sprite {
public var topField:TextField;
public var bottomField:TextField;
protected var trialStimulus:String;
protected var trialResponseType:String;
protected var trialCorrectResponse:Boolean;
public static const NUMBER_RESPONSE:String = "numberResponse";
public static const LETTER_RESPONSE:String = "letterResponse";
protected static var ODD_ARRAY:Array = [3, 5, 7, 9];
protected static var CONSONANT_ARRAY:Array = ["G", "K", "M", "R"];
protected static var EVEN_ARRAY:Array = [2, 4, 6, 8];
protected static var VOWEL_ARRAY:Array = ["A", "E", "I", "U"];
public function TrialCard(_arg1:TrialCard, _arg2:Boolean){
init(_arg1, _arg2);
}
protected function setupStimulus():void{
trialStimulus = new String();
if (trialResponseType == NUMBER_RESPONSE){
addRandomStimulus(trialCorrectResponse, Random.bool());
topField.text = trialStimulus;
bottomField.visible = false;
} else {
addRandomStimulus(Random.bool(), trialCorrectResponse);
bottomField.text = trialStimulus;
topField.visible = false;
};
}
public function get correctResponse():Boolean{
return (trialCorrectResponse);
}
protected function addRandomLetter(_arg1:Boolean):void{
if (_arg1){
trialStimulus = (trialStimulus + Random.element(VOWEL_ARRAY));
} else {
trialStimulus = (trialStimulus + Random.element(CONSONANT_ARRAY));
};
}
protected function addRandomStimulus(_arg1:Boolean, _arg2:Boolean):void{
if (Random.bool()){
addRandomNumber(_arg1);
addRandomLetter(_arg2);
} else {
addRandomLetter(_arg2);
addRandomNumber(_arg1);
};
}
protected function addRandomNumber(_arg1:Boolean):void{
if (_arg1){
trialStimulus = (trialStimulus + Random.element(EVEN_ARRAY));
} else {
trialStimulus = (trialStimulus + Random.element(ODD_ARRAY));
};
}
protected function init(_arg1:TrialCard, _arg2:Boolean):void{
if (_arg1 == null){
trialResponseType = Random.element([NUMBER_RESPONSE, LETTER_RESPONSE]);
trialCorrectResponse = Random.bool();
setupStimulus();
} else {
if (_arg2){
trialResponseType = _arg1.trialResponseType;
} else {
trialResponseType = Random.element([NUMBER_RESPONSE, LETTER_RESPONSE]);
};
trialCorrectResponse = Random.bool();
do {
setupStimulus();
} while (trialStimulus == _arg1.trialStimulus);
};
}
public function get stimulus():String{
return (trialStimulus);
}
public function get responseType():String{
return (trialResponseType);
}
}
}//package com.lumoslabs.games.brainShift
Section 35
//MinSecCountdown (com.lumoslabs.ui.MinSecCountdown)
package com.lumoslabs.ui {
import flash.display.*;
public class MinSecCountdown extends SecondCountdown {
protected var order:int;
public function MinSecCountdown(_arg1:int=0, _arg2:String="", _arg3:DisplayObject=null){
super(_arg1, _arg2, _arg3);
}
override public function init(_arg1:int=0, _arg2:String="", _arg3:DisplayObject=null):void{
order = Math.pow(10, getDisplayPlaces(_arg1));
super.init(_arg1, _arg2, _arg3);
}
override protected function updateDisplay():void{
var _local1:Number = Math.floor((timeLeft / 60000));
var _local2:Number = ((timeLeft - (_local1 * 60000)) / 1000);
if (_local2 < 10){
timeField.text = (_local1 + ":0");
} else {
timeField.text = (_local1 + ":");
};
if (displayPlaces == 0){
timeField.appendText(((Math.floor(_local2) + " ") + unitText));
} else {
timeField.appendText((((Math.floor((_local2 * order)) / order).toFixed(displayPlaces) + " ") + unitText));
};
}
}
}//package com.lumoslabs.ui
Section 36
//ReadyCountdown (com.lumoslabs.ui.ReadyCountdown)
package com.lumoslabs.ui {
import flash.display.*;
import com.greensock.*;
import fl.motion.easing.*;
import flash.text.*;
public class ReadyCountdown extends SecondCountdown {
protected var timePrevDisplay:int;
public var timeBox;
protected static const TWEEN_TIME:Number = 1;
public function ReadyCountdown(_arg1:DisplayObject=null){
super(0, new String(), _arg1);
}
override protected function setupTimeField():void{
timeField = TextField(timeBox.timeField);
}
override protected function updateDisplay():void{
var _local1:int = Math.ceil((timeLeft / 1000));
timeField.text = String(_local1);
if (((displayRunning) && (!((_local1 == timePrevDisplay))))){
timePrevDisplay = _local1;
timeBox.scaleX = 1;
timeBox.scaleY = 1;
timeBox.alpha = 1;
TweenMax.to(timeBox, TWEEN_TIME, {scaleX:0.1, scaleY:0.1, alpha:0, ease:Back.easeIn, easeParams:[3]});
};
}
override public function reset():void{
timePrevDisplay = 0;
super.reset();
}
}
}//package com.lumoslabs.ui
Section 37
//SecondCountdown (com.lumoslabs.ui.SecondCountdown)
package com.lumoslabs.ui {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class SecondCountdown extends SecondDisplay {
protected var onCompleteParams:Array;
protected var timeLeft:int;
protected var onComplete:Function;
public function SecondCountdown(_arg1:int=0, _arg2:String="", _arg3:DisplayObject=null){
super(_arg1, _arg2, _arg3);
}
override public function get time():Number{
return ((timeLeft / 1000));
}
override public function reset():void{
timeLeft = timeTotal;
timePaused = 0;
timeAdded = 0;
stop();
}
override protected function updateTime(_arg1:Event):void{
var _local2:int = ((((timeTotal + timePaused) + timeAdded) - getTimer()) + startTime);
timeDelta = (_local2 - timeLeft);
timeLeft = _local2;
if (timeLeft <= 0){
endCountdown();
} else {
updateDisplay();
};
if (onUpdate != null){
onUpdate.apply(null, onUpdateParams);
};
}
override protected function updateDisplay():void{
if (displayPlaces == 0){
timeField.text = ((Math.ceil((timeLeft / 1000)) + " ") + unitText);
} else {
timeField.text = (((timeLeft / 1000).toFixed(displayPlaces) + " ") + unitText);
};
}
protected function endCountdown():void{
timeLeft = 0;
stop();
if (onComplete != null){
onComplete.apply(null, onCompleteParams);
};
}
public function setTime(_arg1:Number, _arg2:Function=null, ... _args):void{
timeTotal = Math.round((_arg1 * 1000));
this.onComplete = _arg2;
this.onCompleteParams = _args;
reset();
}
}
}//package com.lumoslabs.ui
Section 38
//SecondDisplay (com.lumoslabs.ui.SecondDisplay)
package com.lumoslabs.ui {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.text.*;
public class SecondDisplay extends Sprite {
protected var onUpdate:Function;
protected var startTime:int;
protected var unitText:String;
protected var timePaused:int;
protected var displayRunning:Boolean;
protected var enterFrameDisObj:DisplayObject;
protected var timeDelta:int;
public var timeField:TextField;
protected var onUpdateParams:Array;
protected var timeAdded:int;
protected var lastPauseTime:int;
protected var timeTotal:int;
protected var displayPlaces:int;
protected static const MAX_DISPLAY_PLACES:int = 20;
protected static const MIN_DISPLAY_PLACES:int = 0;
public function SecondDisplay(_arg1:int=0, _arg2:String="", _arg3:DisplayObject=null){
setupTimeField();
if (_arg3 == null){
init(_arg1, _arg2, this);
} else {
init(_arg1, _arg2, _arg3);
};
}
public function unpause():void{
if (displayRunning){
timePaused = (timePaused + (getTimer() - lastPauseTime));
enterFrameDisObj.addEventListener(Event.ENTER_FRAME, updateTime);
};
}
public function pause():void{
if (displayRunning){
lastPauseTime = getTimer();
enterFrameDisObj.removeEventListener(Event.ENTER_FRAME, updateTime);
updateDisplay();
};
}
public function stop():void{
displayRunning = false;
enterFrameDisObj.removeEventListener(Event.ENTER_FRAME, updateTime);
updateDisplay();
}
public function get time():Number{
return ((timeTotal / 1000));
}
public function addTime(_arg1:Number):void{
timeAdded = (timeAdded + Math.round((_arg1 * 1000)));
}
protected function setupTimeField():void{
}
public function init(_arg1:int=0, _arg2:String="", _arg3:DisplayObject=null):void{
this.displayPlaces = getDisplayPlaces(_arg1);
this.unitText = _arg2;
if (_arg3 != null){
this.enterFrameDisObj = _arg3;
};
reset();
}
protected function updateTime(_arg1:Event):void{
var _local2:int = (((getTimer() - startTime) + timeAdded) - timePaused);
timeDelta = (_local2 - timeTotal);
timeTotal = _local2;
updateDisplay();
if (onUpdate != null){
onUpdate.apply(null, onUpdateParams);
};
}
public function reset():void{
timeTotal = 0;
timePaused = 0;
timeAdded = 0;
timeDelta = 0;
stop();
}
public function start():void{
reset();
displayRunning = true;
startTime = getTimer();
enterFrameDisObj.addEventListener(Event.ENTER_FRAME, updateTime);
}
public function get deltaTime():Number{
return ((timeDelta / 1000));
}
public function setUpdateCallback(_arg1:Function=null, _arg2:Array=null):void{
this.onUpdate = _arg1;
this.onUpdateParams = _arg2;
}
protected function updateDisplay():void{
if (displayPlaces == 0){
timeField.text = ((Math.round((timeTotal / 1000)) + " ") + unitText);
} else {
timeField.text = (((timeTotal / 1000).toFixed(displayPlaces) + " ") + unitText);
};
}
public function get running():Boolean{
return (displayRunning);
}
protected static function getDisplayPlaces(_arg1:int):int{
return (Math.max(Math.min(_arg1, MAX_DISPLAY_PLACES), MIN_DISPLAY_PLACES));
}
}
}//package com.lumoslabs.ui
Section 39
//ArrayHelper (com.lumoslabs.util.ArrayHelper)
package com.lumoslabs.util {
public class ArrayHelper {
private static var element;
private static var equals:Function;
public static function popIndex(_arg1:Array, _arg2:int){
return (_arg1.splice(_arg2, 1)[0]);
}
public static function remove(_arg1:Array, _arg2):void{
var _local3:int = _arg1.length;
while (_local3--) {
if (_arg1[_local3] == _arg2){
_arg1.splice(_local3, 1);
};
};
}
public static function averageNumber(_arg1:Array):Number{
var _local3:Number;
var _local2:Number = 0;
for each (_local3 in _arg1) {
_local2 = (_local2 + _local3);
};
_local2 = (_local2 / _arg1.length);
return (_local2);
}
public static function setForEach(_arg1:Array, _arg2:Object):void{
var _local3:Object;
var _local4:String;
for each (_local3 in _arg1) {
for (_local4 in _arg2) {
_local3[_local4] = _arg2[_local4];
};
};
}
public static function forEach(_arg1:Array, _arg2:Object, _arg3:Object):void{
var _local4:String;
var _local5:Object;
for each (_local5 in _arg1) {
for (_local4 in _arg2) {
_local5[_local4] = _arg2[_local4];
};
for (_local4 in _arg3) {
_local5[_local4].apply(null, _arg3[_local4]);
};
};
}
private static function simpleCompare(_arg1, _arg2):int{
if (_arg1 < _arg2){
return (-1);
};
if (_arg1 > _arg2){
return (1);
};
return (0);
}
public static function callForEach(_arg1:Array, _arg2:Object):void{
var _local3:Object;
var _local4:String;
for each (_local3 in _arg1) {
for (_local4 in _arg2) {
_local3[_local4].apply(null, _arg2[_local4]);
};
};
}
public static function uniqueSortOn(_arg1:Array, _arg2:Object, _arg3:Object=null):Array{
removeDuplicates(_arg1);
return (_arg1.sortOn(_arg2, _arg3));
}
public static function uniqueSort(_arg1:Array, ... _args):Array{
removeDuplicates(_arg1);
return (_arg1.sort.apply(null, _args));
}
public static function uniqueSortFun(_arg1:Array, _arg2:Function, ... _args):Array{
removeDuplicatesFun(_arg1, _arg2);
return (_arg1.sort.apply(null, _args));
}
public static function uniqueSortOnFun(_arg1:Array, _arg2:Function, _arg3:Object, _arg4:Object=null):Array{
removeDuplicatesFun(_arg1, _arg2);
return (_arg1.sortOn(_arg3, _arg4));
}
public static function averageInt(_arg1:Array):int{
return (Math.round(averageNumber(_arg1)));
}
public static function removeDuplicatesFun(_arg1:Array, _arg2:Function):void{
equals = _arg2;
var _local3:Array = _arg1.splice(0);
var _local4:int = _local3.length;
var _local5:int;
while (_local5 < _local4) {
element = _local3[_local5];
if (!_arg1.some(equalsElement)){
_arg1.push(element);
};
_local5++;
};
}
private static function equalsElement(_arg1, _arg2:int, _arg3:Array):Boolean{
return (equals(element, _arg1));
}
public static function containsBSFun(_arg1:Array, _arg2, _arg3:Function):Boolean{
var _local5:int;
var _local7:Boolean;
var _local4:int;
var _local6:int = (_arg1.length - 1);
var _local8:Boolean;
while (_local8) {
if ((_local4 + 1) == _local6){
_local7 = (((_arg3(_arg2, _arg1[_local4]) == 0)) || ((_arg3(_arg2, _arg1[_local6]) == 0)));
_local8 = false;
} else {
_local5 = Math.round(((_local4 + _local6) / 2));
if (_arg3(_arg2, _arg1[_local5]) > 0){
_local4 = _local5;
} else {
_local6 = _local5;
};
};
};
return (_local7);
}
public static function containsBS(_arg1:Array, _arg2):Boolean{
return (containsBSFun(_arg1, _arg2, simpleCompare));
}
public static function findFirst(_arg1:Array, _arg2:Function){
var _local3:* = null;
var _local4:int;
while (_local4 < _arg1.length) {
if (_arg2(_arg1[_local4])){
_local3 = _arg1[_local4];
break;
};
_local4++;
};
return (_local3);
}
public static function transposeMatrix(_arg1:Array):Array{
var _local3:Array;
var _local4:int;
var _local5:int;
var _local2:Array = new Array();
if (_arg1.length > 0){
_local3 = _arg1[0];
_local4 = 0;
while (_local4 < _local3.length) {
_local2[_local4] = new Array();
_local4++;
};
_local5 = 0;
while (_local5 < _arg1.length) {
_local3 = _arg1[_local5];
_local4 = 0;
while (_local4 < _local3.length) {
_local2[_local4][_local5] = _local3[_local4];
_local4++;
};
_local5++;
};
};
return (_local2);
}
public static function removeDuplicates(_arg1:Array):void{
var _local2:Array = _arg1.splice(0);
var _local3:int = _local2.length;
var _local4:int;
while (_local4 < _local3) {
element = _local2[_local4];
if (_arg1.indexOf(element) < 0){
_arg1.push(element);
};
_local4++;
};
}
public static function removeFun(_arg1:Array, _arg2, _arg3:Function):void{
var _local4:int = _arg1.length;
while (_local4--) {
if (_arg3(_arg1[_local4], _arg2)){
_arg1.splice(_local4, 1);
};
};
}
}
}//package com.lumoslabs.util
Section 40
//Display (com.lumoslabs.util.Display)
package com.lumoslabs.util {
import flash.display.*;
import flash.geom.*;
public class Display {
public static const VIOLET:Number = 15631086;
public static const WHITE:Number = 0xFFFFFF;
public static const BROWN:Number = 0x964B00;
public static const ORANGE:Number = 0xFF7F00;
public static const PURPLE:Number = 0x800080;
public static const BLUE:Number = 0xFF;
public static const GREY:Number = 0x808080;
public static const GREEN:Number = 0xFF00;
public static const BLACK:Number = 0;
public static const YELLOW:Number = 0xFFFF00;
public static const RED:Number = 0xFF0000;
public static function remove(_arg1:DisplayObject):void{
if (((!((_arg1 == null))) && (!((_arg1.parent == null))))){
_arg1.parent.removeChild(_arg1);
};
}
public static function alignBottomToY(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:Number=0):void{
var _local4:Point = new Point(0, _arg3);
alignBoundsTo(_arg1, _arg2, _local4, false, true, 0, 1);
}
public static function alignTop(_arg1:DisplayObject, _arg2:DisplayObject):void{
var _local3:Rectangle = getBoundsExclude(_arg2, _arg2, _arg1);
var _local4:Point = new Point(0, _local3.y);
alignBoundsTo(_arg1, _arg2, _local4, false, true, 0, 0);
}
public static function alignTopToY(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:Number=0):void{
var _local4:Point = new Point(0, _arg3);
alignBoundsTo(_arg1, _arg2, _local4, false, true, 0, 0);
}
public static function alignRight(_arg1:DisplayObject, _arg2:DisplayObject):void{
var _local3:Rectangle = getBoundsExclude(_arg2, _arg2, _arg1);
var _local4:Point = new Point(_local3.right, 0);
alignBoundsTo(_arg1, _arg2, _local4, true, false, 1);
}
public static function removeAllChildren(_arg1:DisplayObjectContainer):void{
if (_arg1 != null){
while (_arg1.numChildren > 0) {
_arg1.removeChildAt(0);
};
};
}
public static function alignBottom(_arg1:DisplayObject, _arg2:DisplayObject):void{
var _local3:Rectangle = getBoundsExclude(_arg2, _arg2, _arg1);
var _local4:Point = new Point(0, _local3.bottom);
alignBoundsTo(_arg1, _arg2, _local4, false, true, 0, 1);
}
public static function centerX(_arg1:DisplayObject, _arg2:DisplayObject):void{
var _local3:Rectangle = getBoundsExclude(_arg2, _arg2, _arg1);
var _local4:Point = new Point((_local3.x + (0.5 * _local3.width)), 0);
alignBoundsTo(_arg1, _arg2, _local4, true, false);
}
public static function stopAllClips(_arg1:DisplayObjectContainer):void{
var _local3:DisplayObjectContainer;
var _local4:MovieClip;
var _local5:DisplayObjectContainer;
var _local6:int;
var _local2:Array = [_arg1];
while (_local2.length > 0) {
_local3 = _local2.shift();
_local4 = (_local3 as MovieClip);
if (_local4 != null){
_local4.stop();
};
_local6 = 0;
while (_local6 < _local3.numChildren) {
_local5 = (_local3.getChildAt(_local6) as DisplayObjectContainer);
if (_local5 != null){
_local2.push(_local5);
};
_local6++;
};
};
}
public static function alignRightToX(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:Number=0):void{
var _local4:Point = new Point(_arg3, 0);
alignBoundsTo(_arg1, _arg2, _local4, true, false, 1);
}
public static function centerToX(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:Number=0):void{
var _local4:Point = new Point(_arg3, 0);
alignBoundsTo(_arg1, _arg2, _local4, true, false);
}
public static function centerToY(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:Number=0):void{
var _local4:Point = new Point(0, _arg3);
alignBoundsTo(_arg1, _arg2, _local4, false, true);
}
public static function centerY(_arg1:DisplayObject, _arg2:DisplayObject):void{
var _local3:Rectangle = getBoundsExclude(_arg2, _arg2, _arg1);
var _local4:Point = new Point(0, (_local3.y + (0.5 * _local3.height)));
alignBoundsTo(_arg1, _arg2, _local4, false, true);
}
public static function alignLeft(_arg1:DisplayObject, _arg2:DisplayObject):void{
var _local3:Rectangle = getBoundsExclude(_arg2, _arg2, _arg1);
var _local4:Point = new Point(_local3.x, 0);
alignBoundsTo(_arg1, _arg2, _local4, true, false, 0);
}
public static function moveToY(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:Number=0, _arg4:Number=0):void{
var _local5:Point = new Point(0, _arg3);
var _local6:Point = new Point(0, _arg4);
moveTo(_arg1, _arg2, _local5, _local6, false, true);
}
protected static function getBoundsExclude(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:DisplayObject):Rectangle{
var _local5:DisplayObjectContainer;
var _local6:int;
var _local7:Rectangle;
var _local4:DisplayObjectContainer = (_arg1 as DisplayObjectContainer);
if (((_local4) && (_local4.contains(_arg3)))){
_local5 = _arg3.parent;
_local6 = _local5.getChildIndex(_arg3);
_local5.removeChild(_arg3);
_local7 = _arg1.getBounds(_arg2);
_local5.addChildAt(_arg3, _local6);
return (_local7);
};
return (_arg1.getBounds(_arg2));
}
public static function centerTo(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:Point=null):void{
alignBoundsTo(_arg1, _arg2, _arg3);
}
public static function moveTo(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:Point=null, _arg4:Point=null, _arg5:Boolean=true, _arg6:Boolean=true):void{
if (_arg3 == null){
_arg3 = new Point();
};
if (_arg4 == null){
_arg4 = new Point();
};
var _local7:Point = new Point();
_local7 = _arg1.localToGlobal(_local7);
_arg3 = _arg1.localToGlobal(_arg3);
_arg4 = _arg2.localToGlobal(_arg4);
if (_arg1.parent){
_local7 = _arg1.parent.globalToLocal(_local7);
_arg3 = _arg1.parent.globalToLocal(_arg3);
_arg4 = _arg1.parent.globalToLocal(_arg4);
};
if (_arg5){
_arg1.x = (_arg4.x + (_local7.x - _arg3.x));
};
if (_arg6){
_arg1.y = (_arg4.y + (_local7.y - _arg3.y));
};
}
public static function replace(_arg1:DisplayObject, _arg2:DisplayObject):void{
if (_arg1.parent != null){
if (_arg1 != _arg2){
_arg2.x = _arg1.x;
_arg2.y = _arg1.y;
_arg2.rotation = _arg1.rotation;
_arg1.parent.addChild(_arg2);
_arg1.parent.swapChildren(_arg1, _arg2);
_arg1.parent.removeChild(_arg1);
} else {
trace("Display, replace, argument DisplayObjects are equal");
};
} else {
trace("Display, replace, first argument DisplayObject has no parent");
};
}
public static function alignBoundsTo(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:Point=null, _arg4:Boolean=true, _arg5:Boolean=true, _arg6:Number=0.5, _arg7:Number=0.5):void{
var _local9:Rectangle;
var _local10:Point;
var _local11:Point;
if (_arg3 == null){
_arg3 = new Point();
};
var _local8:Point = new Point();
_local8 = _arg1.localToGlobal(_local8);
_arg3 = _arg2.localToGlobal(_arg3);
if (_arg1.parent){
_local8 = _arg1.parent.globalToLocal(_local8);
_arg3 = _arg1.parent.globalToLocal(_arg3);
_local9 = getBoundsExclude(_arg1, _arg1.parent, _arg2);
_local10 = _local9.topLeft;
_local11 = _local9.bottomRight;
} else {
_local9 = getBoundsExclude(_arg1, _arg1, _arg2);
_local10 = _arg1.localToGlobal(_local9.topLeft);
_local11 = _arg1.localToGlobal(_local9.bottomRight);
};
if (_arg4){
_arg6 = ((_arg6 < 0)) ? 0 : ((_arg6 > 1)) ? 1 : _arg6;
_arg1.x = ((_arg3.x + (_local8.x - _local10.x)) - (_arg6 * (_local11.x - _local10.x)));
};
if (_arg5){
_arg7 = ((_arg7 < 0)) ? 0 : ((_arg7 > 1)) ? 1 : _arg7;
_arg1.y = ((_arg3.y + (_local8.y - _local10.y)) - (_arg7 * (_local11.y - _local10.y)));
};
}
public static function moveToX(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:Number=0, _arg4:Number=0):void{
var _local5:Point = new Point(_arg3, 0);
var _local6:Point = new Point(_arg4, 0);
moveTo(_arg1, _arg2, _local5, _local6, true, false);
}
public static function localToLocal(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:Point=null):Point{
if (_arg3 == null){
_arg3 = new Point();
};
_arg3 = _arg1.localToGlobal(_arg3);
_arg3 = _arg2.globalToLocal(_arg3);
return (_arg3);
}
public static function center(_arg1:DisplayObject, _arg2:DisplayObject):void{
var _local3:Rectangle = getBoundsExclude(_arg2, _arg2, _arg1);
var _local4:Point = new Point((_local3.x + (0.5 * _local3.width)), (_local3.y + (0.5 * _local3.height)));
alignBoundsTo(_arg1, _arg2, _local4);
}
public static function removeIfChild(_arg1:DisplayObjectContainer, _arg2:DisplayObject):void{
if (((((!((_arg1 == null))) && (!((_arg2 == null))))) && ((_arg2.parent == _arg1)))){
_arg1.removeChild(_arg2);
};
}
public static function removeIfChildren(_arg1:DisplayObjectContainer, ... _args):void{
var _local3:DisplayObject;
if (_arg1 != null){
for each (_local3 in _args) {
if (((!((_local3 == null))) && ((_local3.parent == _arg1)))){
_arg1.removeChild(_local3);
};
};
};
}
public static function removeEnumerable(_arg1:Object):void{
var _local2:DisplayObject;
for each (_local2 in _arg1) {
remove(_local2);
};
}
public static function alignLeftToX(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:Number=0):void{
var _local4:Point = new Point(_arg3, 0);
alignBoundsTo(_arg1, _arg2, _local4, true, false, 0);
}
public static function bringToFront(_arg1:DisplayObject):void{
if (_arg1.parent != null){
_arg1.parent.addChild(_arg1);
};
}
public static function removeAll(... _args):void{
var _local2:DisplayObject;
for each (_local2 in _args) {
remove(_local2);
};
}
}
}//package com.lumoslabs.util
Section 41
//Random (com.lumoslabs.util.Random)
package com.lumoslabs.util {
public class Random {
private static var equals:Function;
private static var anElement;
public static function array(_arg1:Array, _arg2:int=-1):Array{
var _local3:Array = _arg1.slice();
shuffle(_local3);
if (_arg2 >= 0){
_local3.splice(_arg2);
};
return (_local3);
}
public static function popOtherElementFun(_arg1:Array, _arg2:Array, _arg3:Function){
var _local4:int;
equals = _arg3;
var _local5:Array = _arg1.slice();
do {
_local4 = Math.floor((Math.random() * _local5.length));
anElement = _local5.splice(_local4, 1)[0];
} while (_arg2.some(equalsAnElement));
if (anElement == undefined){
return (undefined);
};
return (_arg1.splice(_local4, 1)[0]);
}
public static function shuffle(_arg1:Array):void{
var _local3:uint;
var _local4:*;
var _local2:uint = _arg1.length;
while (_local2 > 1) {
_local3 = Math.floor((_local2 * Math.random()));
_local2--;
_local4 = _arg1[_local2];
_arg1[_local2] = _arg1[_local3];
_arg1[_local3] = _local4;
};
}
public static function otherIntBetween(_arg1:int, _arg2:int, _arg3:Array){
equals = simpleEquals;
var _local4:Array = new Array();
var _local5:int = ((_arg2 - _arg1) + 1);
for each (anElement in _arg3) {
if ((((((((anElement is int)) && ((_arg1 <= anElement)))) && ((anElement <= _arg2)))) && (!(_local4.some(equalsAnElement))))){
_local4.push(anElement);
};
};
if (_local4.length < _local5){
do {
anElement = Math.floor((_arg1 + (((_arg2 - _arg1) + 1) * Math.random())));
} while (_local4.some(equalsAnElement));
return (anElement);
//unresolved jump
};
return (undefined);
}
public static function bool():Boolean{
return ((Math.random() < 0.5));
}
public static function indexLessThan(_arg1:uint):int{
return (Math.floor((Math.random() * _arg1)));
}
public static function letter(_arg1:Boolean=true):String{
var _local2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
return (_local2.charAt((Math.random() * _local2.length)));
}
private static function equalsAnElement(_arg1, _arg2:int, _arg3:Array):Boolean{
return (equals(anElement, _arg1));
}
public static function pop(_arg1:Array){
return (_arg1.splice(Math.floor((Math.random() * _arg1.length)), 1)[0]);
}
public static function index(_arg1:Array):int{
return (Math.floor((Math.random() * _arg1.length)));
}
public static function otherElementFun(_arg1:Array, _arg2:Array, _arg3:Function){
equals = _arg3;
var _local4:Array = _arg1.slice();
do {
anElement = _local4.splice(Math.floor((Math.random() * _local4.length)), 1)[0];
} while (_arg2.some(equalsAnElement));
return (anElement);
}
private static function simpleEquals(_arg1, _arg2):Boolean{
return ((_arg1 == _arg2));
}
public static function intBetween(_arg1:int, _arg2:int):int{
return (Math.floor((_arg1 + (((_arg2 - _arg1) + 1) * Math.random()))));
}
public static function push(_arg1:Array, ... _args):uint{
var _local3:*;
for each (_local3 in _args) {
_arg1.splice(Math.floor((Math.random() * _arg1.length)), 0, _local3);
};
return (_arg1.length);
}
public static function otherElement(_arg1:Array, _arg2:Array){
var _local4:int;
var _local3:Array = _arg1.slice();
for each (anElement in _arg2) {
_local4 = _local3.indexOf(anElement);
while (_local4 >= 0) {
_local3.splice(_local4, 1);
_local4 = _local3.indexOf(anElement);
};
};
return (_local3[Math.floor((Math.random() * _local3.length))]);
}
public static function element(_arg1:Array){
return (_arg1[Math.floor((Math.random() * _arg1.length))]);
}
public static function popOtherElement(_arg1:Array, _arg2:Array){
popOtherElementFun(_arg1, _arg2, simpleEquals);
}
public static function numberBetween(_arg1:Number, _arg2:Number):Number{
return ((_arg1 + ((_arg2 - _arg1) * Math.random())));
}
}
}//package com.lumoslabs.util
Section 42
//Back (fl.motion.easing.Back)
package fl.motion.easing {
public class Back {
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0):Number{
if (!_arg5){
_arg5 = 1.70158;
};
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 1)) + _arg2));
}
public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0):Number{
if (!_arg5){
_arg5 = 1.70158;
};
_arg1 = (_arg1 / _arg4);
return (((((_arg3 * _arg1) * _arg1) * (((_arg5 + 1) * _arg1) - _arg5)) + _arg2));
}
public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0):Number{
if (!_arg5){
_arg5 = 1.70158;
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
_arg5 = (_arg5 * 1.525);
return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) - _arg5))) + _arg2));
};
_arg1 = (_arg1 - 2);
_arg5 = (_arg5 * 1.525);
return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 2)) + _arg2));
}
}
}//package fl.motion.easing
Section 43
//Background (Background)
package {
import flash.display.*;
public dynamic class Background extends Sprite {
}
}//package
Section 44
//Bonus (Bonus)
package {
import flash.media.*;
public dynamic class Bonus extends Sound {
}
}//package
Section 45
//BottomInstruct (BottomInstruct)
package {
import flash.display.*;
import flash.text.*;
public dynamic class BottomInstruct extends Sprite {
public var bottomInstructField:TextField;
}
}//package
Section 46
//ContinueButton (ContinueButton)
package {
import flash.display.*;
public dynamic class ContinueButton extends SimpleButton {
}
}//package
Section 47
//Correct (Correct)
package {
import flash.media.*;
public dynamic class Correct extends Sound {
}
}//package
Section 48
//CorrectPointsFeedback (CorrectPointsFeedback)
package {
import flash.display.*;
import flash.text.*;
public dynamic class CorrectPointsFeedback extends Sprite {
public var textField:TextField;
}
}//package
Section 49
//GreenCheck (GreenCheck)
package {
import flash.display.*;
public dynamic class GreenCheck extends Sprite {
}
}//package
Section 50
//HyperlinkButton (HyperlinkButton)
package {
import flash.display.*;
import flash.text.*;
public dynamic class HyperlinkButton extends SimpleButton {
public var hyperlinkField:TextField;
}
}//package
Section 51
//Incorrect (Incorrect)
package {
import flash.media.*;
public dynamic class Incorrect extends Sound {
}
}//package
Section 52
//IncorrectPointsFeedback (IncorrectPointsFeedback)
package {
import flash.display.*;
import flash.text.*;
public dynamic class IncorrectPointsFeedback extends Sprite {
public var textField:TextField;
}
}//package
Section 53
//Instructions (Instructions)
package {
import flash.display.*;
import flash.text.*;
public dynamic class Instructions extends Sprite {
public var textField:TextField;
}
}//package
Section 54
//NextButtonShape (NextButtonShape)
package {
import flash.display.*;
public dynamic class NextButtonShape extends Sprite {
}
}//package
Section 55
//NoButton (NoButton)
package {
import flash.display.*;
public dynamic class NoButton extends SimpleButton {
}
}//package
Section 56
//RedX (RedX)
package {
import flash.display.*;
public dynamic class RedX extends Sprite {
}
}//package
Section 57
//ScoreDisplay (ScoreDisplay)
package {
import flash.display.*;
import flash.text.*;
public dynamic class ScoreDisplay extends Sprite {
public var textField:TextField;
}
}//package
Section 58
//StartButton (StartButton)
package {
import flash.display.*;
public dynamic class StartButton extends SimpleButton {
}
}//package
Section 59
//TimeBox (TimeBox)
package {
import flash.display.*;
import flash.text.*;
public dynamic class TimeBox extends Sprite {
public var timeField:TextField;
}
}//package
Section 60
//TopInstruct (TopInstruct)
package {
import flash.display.*;
import flash.text.*;
public dynamic class TopInstruct extends Sprite {
public var topInstructField:TextField;
}
}//package
Section 61
//TrialCardBackground (TrialCardBackground)
package {
import flash.display.*;
public dynamic class TrialCardBackground extends Sprite {
}
}//package
Section 62
//TrialDisplay (TrialDisplay)
package {
import flash.display.*;
import flash.text.*;
public dynamic class TrialDisplay extends Sprite {
public var textField:TextField;
}
}//package
Section 63
//YesButton (YesButton)
package {
import flash.display.*;
public dynamic class YesButton extends SimpleButton {
}
}//package