Section 1
//State (com.csharks.juwalbose.cFlashtory.core.State)
package com.csharks.juwalbose.cFlashtory.core {
public class State {
public var exit:Function;
public var _parent:State;
public var from:Object;
public var name:String;
public var enter:Function;
public var children:Array;
public function State(name:String, from:Object=null, enter:Function=null, exit:Function=null, parent:State=null){
super();
this.name = name;
if (!from){
from = "*";
};
this.from = from;
this.enter = enter;
this.exit = exit;
this.children = [];
if (parent){
_parent = parent;
_parent.children.push(this);
};
}
public function get parents():Array{
var parentList:Array = [];
var parentState:State = _parent;
if (parentState){
parentList.push(parentState);
while (parentState.parent) {
parentState = parentState.parent;
parentList.push(parentState);
};
};
return (parentList);
}
public function get root():State{
var parentState:State = _parent;
if (parentState){
while (parentState.parent) {
parentState = parentState.parent;
};
};
return (parentState);
}
public function toString():String{
return (this.name);
}
public function get parent():State{
return (_parent);
}
public function set parent(parent:State):void{
_parent = parent;
_parent.children.push(this);
}
}
}//package com.csharks.juwalbose.cFlashtory.core
Section 2
//StateMachine (com.csharks.juwalbose.cFlashtory.core.StateMachine)
package com.csharks.juwalbose.cFlashtory.core {
import flash.utils.*;
import org.osflash.signals.*;
public class StateMachine {
public var response:Signal;
public var path:Array;
public var parentState:State;
public var _states:Dictionary;
public var parentStates:Array;
public var _state:String;
public var id:String;
public function StateMachine(){
response = new Signal();
super();
_states = new Dictionary();
}
public function changeState(stateTo:String):void{
var _exitCallbackEvent:Object;
var i:int;
var _enterCallbackEvent:Object;
var k:int;
if (!(stateTo in _states)){
trace("[StateMachine]", id, (("Cannot make transition: State " + stateTo) + " is not defined"));
return;
};
if (!canChangeStateTo(stateTo)){
trace("[StateMachine]", id, (("Transition to " + stateTo) + " denied"));
response.dispatch("TRANSITION_DENIED", stateTo, _state, _states[stateTo].from);
return;
};
path = findPath(_state, stateTo);
if (path[0] > 0){
_exitCallbackEvent = new Object();
_exitCallbackEvent.toState = stateTo;
_exitCallbackEvent.fromState = _state;
_exitCallbackEvent.event = "EXIT_CALLBACK";
if (_states[_state].exit){
_exitCallbackEvent.currentState = _state;
_states[_state].exit.call(null, _exitCallbackEvent);
};
parentState = _states[_state];
i = 0;
while (i < (path[0] - 1)) {
parentState = parentState.parent;
if (parentState.exit != null){
_exitCallbackEvent.currentState = parentState.name;
parentState.exit.call(null, _exitCallbackEvent);
};
i++;
};
};
var oldState:String = _state;
_state = stateTo;
if (path[1] > 0){
_enterCallbackEvent = new Object();
_enterCallbackEvent.toState = stateTo;
_enterCallbackEvent.fromState = oldState;
_enterCallbackEvent.event = "ENTER_CALLBACK";
if (_states[stateTo].root){
parentStates = _states[stateTo].parents;
k = (path[1] - 2);
while (k >= 0) {
if (((parentStates[k]) && (parentStates[k].enter))){
_enterCallbackEvent.currentState = parentStates[k].name;
parentStates[k].enter.call(null, _enterCallbackEvent);
};
k--;
};
};
if (_states[_state].enter){
_enterCallbackEvent.currentState = _state;
_states[_state].enter.call(null, _enterCallbackEvent);
};
};
trace("[StateMachine]", id, ("State Changed to " + _state));
response.dispatch("TRANSITION_COMPLETE", stateTo, oldState);
}
public function get states():Dictionary{
return (_states);
}
public function addState(stateName:String, stateData:Object=null):void{
if ((stateName in _states)){
trace("[StateMachine]", id, ("Overriding existing state " + stateName));
};
if (stateData == null){
stateData = {};
};
_states[stateName] = new State(stateName, stateData.from, stateData.enter, stateData.exit, _states[stateData.parent]);
}
public function get state():String{
return (_states[_state]);
}
public function canChangeStateTo(stateName:String):Boolean{
return (((!((stateName == _state))) && (((!((_states[stateName].from.indexOf(_state) == -1))) || ((_states[stateName].from == "*"))))));
}
public function set initialState(stateName:String):void{
var _callbackEvent:Object;
var j:int;
if ((((_state == null)) && ((stateName in _states)))){
_state = stateName;
_callbackEvent = new Object();
_callbackEvent.toState = stateName;
_callbackEvent.event = "ENTER_CALLBACK";
if (_states[_state].root){
parentStates = _states[_state].parents;
j = (_states[_state].parents.length - 1);
while (j >= 0) {
if (parentStates[j].enter){
_callbackEvent.currentState = parentStates[j].name;
parentStates[j].enter.call(null, _callbackEvent);
};
j--;
};
};
if (_states[_state].enter){
_callbackEvent.currentState = _state;
_states[_state].enter.call(null, _callbackEvent);
};
response.dispatch("TRANSITION_COMPLETE", stateName);
};
}
public function getStateByName(name:String):State{
var s:State;
for each (s in _states) {
if (s.name == name){
return (s);
};
};
return (null);
}
public function findPath(stateFrom:String, stateTo:String):Array{
var toState:State;
var fromState:State = _states[stateFrom];
var c:int;
var d:int;
while (fromState) {
d = 0;
toState = _states[stateTo];
while (toState) {
if (fromState == toState){
return ([c, d]);
};
d++;
toState = toState.parent;
};
c++;
fromState = fromState.parent;
};
return ([c, d]);
}
}
}//package com.csharks.juwalbose.cFlashtory.core
Section 3
//PreloaderMochi (com.csharks.juwalbose.cFlashtory.preloaders.PreloaderMochi)
package com.csharks.juwalbose.cFlashtory.preloaders {
import flash.events.*;
import com.inruntime.utils.*;
import flash.display.*;
import mochi.as3.*;
import flash.utils.*;
public dynamic class PreloaderMochi extends MovieClip {
private var gameVars:Global;
private var did_load:Boolean;
private static var GAME_OPTIONS:Object;
public function PreloaderMochi(){
var k:String;
Config.initialise();
gameVars = Global.getInstance();
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
gameVars.mochiEnabled = true;
GAME_OPTIONS = new Object();
GAME_OPTIONS = {id:"868390c58fda5c2c", res:(((gameVars.stageMiddleX * 2).toString() + "x") + (gameVars.stageMiddleY * 2).toString())};
super();
var f:Function = function (ev:IOErrorEvent):void{
};
loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f);
var opts:Object = {};
for (k in GAME_OPTIONS) {
opts[k] = GAME_OPTIONS[k];
};
opts.ad_started = function ():void{
did_load = true;
};
opts.ad_finished = function ():void{
var app:Object;
var mainClass:Class = Class(getDefinitionByName(gameVars.gameName));
if (mainClass){
app = new (mainClass);
addChild((app as DisplayObject));
};
};
opts.clip = this;
MochiAd.showPreGameAd(opts);
}
}
}//package com.csharks.juwalbose.cFlashtory.preloaders
Section 4
//cFlashtory (com.csharks.juwalbose.cFlashtory.cFlashtory)
package com.csharks.juwalbose.cFlashtory {
import flash.events.*;
import flash.display.*;
import com.csharks.juwalbose.utils.ui.*;
import com.greensock.*;
import flash.utils.*;
import com.csharks.juwalbose.cFlashtory.core.*;
import flash.media.*;
import com.inruntime.utils.*;
import com.senocular.utils.*;
import net.hires.debug.*;
import com.greensock.easing.*;
import mochi.as3.*;
import flash.net.*;
public dynamic class cFlashtory extends Sprite {
protected var game_mc;
protected var Music:Class;
protected var GameOver:Class;
protected var musicIsPlaying:Boolean;// = false
protected var HelpDisplay:Class;
protected var gameMusicChannel:SoundChannel;
protected var gameVars:Global;
protected var creditLogo:Sprite;
protected var HelpClip:Class;
protected var helpDisplay_mc;
protected var help_mc:Sprite;
protected var key:KeyObject;
protected var invincibleMode:Boolean;// = false
protected var menu:MovieClip;
protected var GameWin:Class;
protected var gameWin_mc:MovieClip;
protected var intro:MovieClip;
protected var MenuClip:Class;
protected var gameMusic_snd:Sound;
protected var TemplateBg:Class;
protected var GameClip:Class;
protected var gameOver_mc:MovieClip;
protected var levelUp_mc:MovieClip;
protected var helpDisplayed:Boolean;
protected var logo:Sprite;
protected var templateMc:MovieClip;
protected var LeveUp:Class;
protected var gameStats:Stats;
protected var focusSoundMute:Boolean;
protected var gameSequence:StateMachine;
protected var gameEngine:StateMachine;
protected var finalCreditText:UiBox;
protected var pauseTime:uint;
protected var shareBtn:SimpleButton;
public function cFlashtory():void{
MenuClip = cFlashtory_MenuClip;
HelpClip = cFlashtory_HelpClip;
Music = cFlashtory_Music;
GameClip = cFlashtory_GameClip;
HelpDisplay = cFlashtory_HelpDisplay;
LeveUp = cFlashtory_LeveUp;
GameOver = cFlashtory_GameOver;
GameWin = cFlashtory_GameWin;
TemplateBg = cFlashtory_TemplateBg;
super();
}
protected function highscoresExit(evnt:Object):void{
removeChild(templateMc);
}
protected function gotoHelpPage(evnth:MouseEvent):void{
gameSequence.changeState("Help");
}
protected function levelUpAdded(evnt:Event):void{
}
protected function gameoverExit(evnt:Object):void{
SceneManager.removeButton(gameOver_mc, "Play Again", gameOver2Game);
if (gameVars.mochiEnabled){
SceneManager.removeButton(gameOver_mc, "Submit Score", submitScore);
};
removeChild(gameOver_mc);
}
protected function menuInit(evnt:Object):void{
var evnt = evnt;
menu = new MenuClip();
menu.addEventListener(Event.ENTER_FRAME, assignMenu);
addChild(menu);
if (!musicIsPlaying){
musicIsPlaying = true;
gameMusic_snd = new Music();
gameMusicChannel = gameMusic_snd.play();
//unresolved jump
var _slot1 = e;
gameMusicChannel.addEventListener(Event.SOUND_COMPLETE, musicCompleteHandler);
};
}
protected function gameHelpExit(evnt:Object=null):void{
SceneManager.removeButton(helpDisplay_mc, "Back to Game", backToGame);
helpDisplayed = false;
removeChild(helpDisplay_mc);
}
protected function gameHelpInit(evnt:Object):void{
helpDisplayed = true;
helpDisplay_mc = new HelpDisplay();
helpDisplay_mc.x = (gameVars.stageMiddleX - (helpDisplay_mc.width / 2));
helpDisplay_mc.y = (gameVars.stageMiddleY - (helpDisplay_mc.height / 2));
helpDisplay_mc.addEventListener(Event.ADDED_TO_STAGE, helpAdded);
addChild(helpDisplay_mc);
}
protected function gameEngineInit(evnt:Object):void{
game_mc = new GameClip();
game_mc.addEventListener(Event.ADDED_TO_STAGE, initGameUI);
addChild(game_mc);
}
protected function clearCanvas():void{
if (helpDisplayed){
gameHelpExit();
};
if (this.hasEventListener(Event.ENTER_FRAME)){
removeEventListener(Event.ENTER_FRAME, action);
};
if (stage.hasEventListener(Event.DEACTIVATE)){
stage.removeEventListener(Event.DEACTIVATE, windowNotActive);
};
if (stage.hasEventListener(Event.ACTIVATE)){
stage.removeEventListener(Event.ACTIVATE, windowActive);
};
key = null;
if (gameVars.developerMode){
if (gameStats != null){
removeChild(gameStats);
};
gameStats = null;
};
SceneManager.removeAllChildren(game_mc);
removeChild(game_mc);
}
protected function levelUpExit(evnt:Object):void{
SceneManager.removeButton(levelUp_mc, "Next Level", levelUp2Game);
setVariable("level", String((gameVars.level + 1)), "levelUpExit", "N");
removeChild(levelUp_mc);
}
protected function windowActive(evnt:Event):void{
if (!helpDisplayed){
unpauseGame();
};
}
protected function pauseGame(evnt:Object=null):void{
removeEventListener(Event.ENTER_FRAME, action);
key = null;
if (gameVars.developerMode){
removeChild(gameStats);
gameStats = null;
};
}
protected function gameWin2Game(evnt:MouseEvent):void{
gameSequence.changeState("Game");
}
protected function menuExit(event:Object):void{
if (logo){
logo.removeEventListener(MouseEvent.CLICK, gotoSite);
SceneManager.removeItem(menu, "Logo");
};
if (gameVars.brandUsed != "Csharks"){
if (gameVars.showCredits != null){
SceneManager.removeItem(menu, "CreditText");
creditLogo.removeEventListener(MouseEvent.CLICK, gotoCsharksSite);
SceneManager.removeItem(menu, "Credit Logo");
};
};
if (shareBtn){
shareBtn.removeEventListener(MouseEvent.CLICK, postToStream);
SceneManager.removeItem(menu, "Share");
};
SceneManager.removeButton(menu, "Start Game", gameStart);
SceneManager.removeButton(menu, "Game Help", gotoHelpPage);
SceneManager.removeButton(menu, "More Games", gotoSite);
if (gameVars.mochiEnabled){
SceneManager.removeButton(menu, "Leaderboard", showHighScores);
};
SceneManager.removeMultiStateButton(menu, "Toggle Sound", toggleGlobalSound);
removeChild(menu);
}
protected function gameInit(evnt:Object):void{
gameEngine = new StateMachine();
gameEngine.addState("GameInit", {enter:gameEngineInit});
gameEngine.addState("LevelInit", {enter:levelInit, from:["LevelUp", "GameInit"]});
gameEngine.addState("Action", {enter:unpauseGame, exit:pauseGame, from:["Paused", "LevelInit", "GameHelp"]});
gameEngine.addState("GameHelp", {enter:gameHelpInit, exit:gameHelpExit, from:"Action"});
gameEngine.addState("Paused", {enter:unpauseGame, exit:pauseGame, from:"Action"});
gameEngine.addState("LevelUp", {enter:levelUpInit, exit:levelUpExit, from:"Action"});
gameEngine.response.add(transitionFunction);
}
protected function gameOver2Game(evnt:MouseEvent):void{
gameSequence.changeState("Game");
}
protected function checkAddMochiAds(evnt:Event):void{
}
protected function setVariable(which:String, to:String, from:String, type:String):void{
if (((invincibleMode) && ((which == "life")))){
return;
};
if (type == "N"){
gameVars[which] = Number(to);
} else {
if (type == "S"){
gameVars[which] = String(to);
} else {
if (type == "B"){
gameVars[which] = Boolean(to);
};
};
};
}
protected function soundRollOver(evntsrov:MouseEvent):void{
if (gameVars.soundReady){
evntsrov.currentTarget.gotoAndStop(4);
} else {
evntsrov.currentTarget.gotoAndStop(3);
};
}
protected function action(evnt:Event):void{
}
protected function gameExit(evnt:Object=null):void{
clearCanvas();
gameEngine = null;
}
protected function toggleGlobalSound(evnt:MouseEvent=null):void{
var btn:MultiStateUiButton;
var sTransform:SoundTransform = new SoundTransform();
if (gameVars.soundReady){
gameVars.soundReady = false;
sTransform.volume = 0;
if (evnt != null){
if (getQualifiedClassName(evnt.currentTarget).split("::")[1] == "MovieClip"){
evnt.currentTarget.gotoAndStop(2);
} else {
btn = (evnt.currentTarget as MultiStateUiButton);
btn.label = "Sound On";
};
};
} else {
gameVars.soundReady = true;
sTransform.volume = 1;
if (evnt != null){
if (getQualifiedClassName(evnt.currentTarget).split("::")[1] == "MovieClip"){
evnt.currentTarget.gotoAndStop(1);
} else {
btn = (evnt.currentTarget as MultiStateUiButton);
btn.label = "Sound Off";
};
};
};
SoundMixer.soundTransform = sTransform;
}
protected function initGameUI(evt:Event):void{
evt.currentTarget.sound_Mc.buttonMode = true;
if (gameVars.soundReady){
evt.currentTarget.sound_Mc.gotoAndStop(2);
} else {
evt.currentTarget.sound_Mc.gotoAndStop(1);
};
helpDisplayed = false;
pauseTime = getTimer();
evt.currentTarget.sound_Mc.addEventListener(MouseEvent.CLICK, toggleGlobalSound);
evt.currentTarget.sound_Mc.addEventListener(MouseEvent.ROLL_OVER, soundRollOver);
evt.currentTarget.sound_Mc.addEventListener(MouseEvent.ROLL_OUT, soundRollOut);
evt.currentTarget.help_Btn.addEventListener(MouseEvent.CLICK, helpDisplay);
evt.currentTarget.menu_Btn.addEventListener(MouseEvent.CLICK, menuDisplay);
evt.currentTarget.removeEventListener(Event.ADDED_TO_STAGE, initGameUI);
gameEngine.changeState("LevelInit");
}
protected function helpAdded(evnt:Event):void{
}
protected function helpDisplay(evnt:MouseEvent):void{
if (!helpDisplayed){
gameEngine.changeState("GameHelp");
};
}
protected function showHighScores(evnt:MouseEvent):void{
if (!MochiServices.connected){
return;
};
gameSequence.changeState("Highscores");
}
protected function removeIntro(evt:Event):void{
if (evt.currentTarget.currentFrame == evt.currentTarget.totalFrames){
evt.currentTarget.removeEventListener(Event.ENTER_FRAME, removeIntro);
gameSequence.changeState("Menu");
};
}
protected function gotoSite(evntm:MouseEvent):void{
var evntm = evntm;
var request:URLRequest = new URLRequest(gameVars.siteUrl);
navigateToURL(request, "_blank");
//unresolved jump
var _slot1 = e;
}
protected function transitionFunction():void{
switch (arguments[0]){
case "TRANSITION_DENIED":
break;
case "TRANSITION_COMPLETE":
break;
};
}
protected function submitScore(evnt:MouseEvent):void{
if (!MochiServices.connected){
return;
};
gameSequence.changeState("SubmitScore");
}
protected function menuDisplay(evnt:MouseEvent):void{
setVariable("level", "1", "menuDisplay", "N");
gameSequence.changeState("Menu");
}
protected function levelUp2Game(evnt:MouseEvent):void{
gameEngine.changeState("GameInit");
}
protected function showLevelUp():void{
levelUp_mc.gotoAndPlay(1);
levelUp_mc.addEventListener(Event.ENTER_FRAME, levelUpAdded);
}
protected function cFlashtoryInit():void{
gameVars = Global.getInstance();
if (gameVars.developerMode){
gameStats = new Stats();
};
gameSequence = new StateMachine();
gameSequence.addState("Intro", {enter:introInit, exit:introExit});
gameSequence.addState("Help", {enter:helpInit, exit:helpExit, from:"Menu"});
gameSequence.addState("Menu", {enter:menuInit, exit:menuExit, from:["Intro", "Help", "Game", "GameWin", "GameOver", "Highscores", "SubmitScore"]});
gameSequence.addState("Game", {enter:gameInit, exit:gameExit, from:["Menu", "LevelUp", "GameWin", "GameOver"]});
gameSequence.addState("GameWin", {enter:gamewinInit, exit:gamewinExit, from:"Game"});
gameSequence.addState("GameOver", {enter:gameoverInit, exit:gameoverExit, from:"Game"});
if (gameVars.mochiEnabled){
gameSequence.addState("Highscores", {enter:highscoresInit, exit:highscoresExit, from:"Menu"});
gameSequence.addState("SubmitScore", {enter:submitscoreInit, exit:highscoresExit, from:["GameWin", "GameOver"]});
};
gameSequence.response.add(transitionFunction);
}
protected function gameStart(evntp:MouseEvent):void{
gameSequence.changeState("Game");
}
protected function soundRollOut(evntsrot:MouseEvent):void{
if (gameVars.soundReady){
evntsrot.currentTarget.gotoAndStop(2);
} else {
evntsrot.currentTarget.gotoAndStop(1);
};
}
protected function introInit(evnt:Object):void{
if (gameVars.brandUsed == "Csharks"){
intro = (new IntroCgs_mc() as MovieClip);
} else {
if (gameVars.brandUsed == "OIG"){
intro = (new IntroOIG_mc() as MovieClip);
} else {
gameSequence.changeState("Menu");
return;
};
};
intro.x = gameVars.stageMiddleX;
intro.y = gameVars.stageMiddleY;
intro.addEventListener(Event.ENTER_FRAME, removeIntro);
addChild(intro);
}
protected function gameWinAdded(evnt:Event):void{
}
protected function unpauseGame(evnt:Object=null):void{
var virtualClick:MouseEvent;
addEventListener(Event.ENTER_FRAME, action);
key = new KeyObject(this.stage);
stage.focus = stage;
if (gameVars.developerMode){
if (gameStats == null){
gameStats = new Stats();
};
addChild(gameStats);
};
if ((((evnt == null)) || (((!((evnt == null))) && ((((evnt.fromState == "Paused")) || ((evnt.fromState == "GameHelp")))))))){
SceneManager.removeItem(game_mc, "PausedText");
};
if (focusSoundMute){
virtualClick = new MouseEvent(MouseEvent.CLICK);
game_mc.sound_Mc.dispatchEvent(virtualClick);
focusSoundMute = false;
};
setVariable("Paused", "", "unpauseGame", "B");
}
protected function backBtnFn(evnt:MouseEvent):void{
if (((!((gameVars.showCredits == null))) && ((evnt.currentTarget.parent == templateMc)))){
evnt.currentTarget.parent.removeChild(finalCreditText);
finalCreditText.removeEventListener(MouseEvent.CLICK, gotoSite);
};
SceneManager.removeButton(evnt.currentTarget.parent, "Back to Menu", backBtnFn);
gameSequence.changeState("Menu");
}
protected function windowNotActive(evnt:Event):void{
var virtualClick:MouseEvent;
if (!helpDisplayed){
if (((musicIsPlaying) && (gameVars.soundReady))){
virtualClick = new MouseEvent(MouseEvent.CLICK);
game_mc.sound_Mc.dispatchEvent(virtualClick);
focusSoundMute = true;
};
pauseGame();
};
}
protected function introExit(evnt:Object):void{
if (intro){
removeChild(intro);
};
}
protected function submitscoreInit(evnt:Object):void{
templateMc = new TemplateBg();
templateMc.addEventListener(Event.ADDED_TO_STAGE, assignSubmitScore);
addChild(templateMc);
}
protected function assignHighScores(evnt:Event):void{
}
protected function levelInit(evnt:Object):void{
stage.addEventListener(Event.DEACTIVATE, windowNotActive);
stage.addEventListener(Event.ACTIVATE, windowActive);
focusSoundMute = false;
gameEngine.changeState("Action");
}
protected function gameOverAdded(evnt:Event):void{
}
protected function checkTemplate(evt:Event):void{
var backButton:UiButton;
var link:String;
if (evt.currentTarget.currentFrame == evt.currentTarget.totalFrames){
if (gameVars.showCredits != null){
link = gameVars.siteUrl.toString().split("//")[1];
finalCreditText = new UiBox(gameVars.showCreditsOnLeaderBoard, 425, 70, UiBoxTypes.TextOnly, 30, 0x660033, link);
finalCreditText.name = "CreditText";
finalCreditText.x = (gameVars.stageMiddleX - (finalCreditText.width / 2));
finalCreditText.y = (gameVars.stageMiddleY - (finalCreditText.height / 2));
evt.currentTarget.addChild(finalCreditText);
finalCreditText.addEventListener(MouseEvent.CLICK, gotoSite);
finalCreditText.buttonMode = true;
};
evt.currentTarget.removeEventListener(Event.ENTER_FRAME, checkTemplate);
backButton = SceneManager.addButton(evt.currentTarget, "Menu", backBtnFn);
backButton.x = (gameVars.stageMiddleX - (backButton.width / 2));
backButton.y = (2 * gameVars.stageMiddleY);
TweenLite.to(backButton, 1, {y:300, ease:Elastic.easeOut});
};
}
protected function gotoCsharksSite(evntm:MouseEvent):void{
var evntm = evntm;
var request:URLRequest = new URLRequest("http://www.csharks.com");
navigateToURL(request, "_blank");
//unresolved jump
var _slot1 = e;
}
protected function assignHelp(evnt:Event):void{
evnt.currentTarget.removeEventListener(Event.ADDED_TO_STAGE, assignHelp);
}
protected function gamewinInit(evnt:Object):void{
gameWin_mc = new GameWin();
gameWin_mc.addEventListener(Event.ENTER_FRAME, gameWinAdded);
addChild(gameWin_mc);
}
protected function gamewinExit(evnt:Object):void{
SceneManager.removeButton(gameWin_mc, "Play Again", gameWin2Game);
if (gameVars.mochiEnabled){
SceneManager.removeButton(gameWin_mc, "Submit Score", submitScore);
};
removeChild(gameWin_mc);
}
protected function assignSubmitScore(evnt:Event):void{
}
protected function backToGame(evnt:MouseEvent):void{
gameEngine.changeState("Action");
stage.focus = stage;
}
protected function assignMenu(event:Event):void{
}
protected function levelUpInit(evnt:Object):void{
clearCanvas();
levelUp_mc = new LeveUp();
levelUp_mc.addEventListener(Event.ADDED_TO_STAGE, checkAddMochiAds);
addChild(levelUp_mc);
}
protected function helpInit(evnt:Object):void{
help_mc = new HelpClip();
help_mc.addEventListener(Event.ADDED_TO_STAGE, assignHelp);
addChild(help_mc);
}
protected function highscoresInit(evnt:Object):void{
templateMc = new TemplateBg();
templateMc.addEventListener(Event.ADDED_TO_STAGE, assignHighScores);
addChild(templateMc);
}
protected function gameoverInit(evnt:Object):void{
gameOver_mc = new GameOver();
gameOver_mc.addEventListener(Event.ENTER_FRAME, gameOverAdded);
addChild(gameOver_mc);
}
protected function musicCompleteHandler(evnt:Event):void{
var evnt = evnt;
gameMusic_snd = new Music();
gameMusicChannel = gameMusic_snd.play();
//unresolved jump
var _slot1 = e;
gameMusicChannel.addEventListener(Event.SOUND_COMPLETE, musicCompleteHandler);
}
protected function helpExit(evnt:Object):void{
removeChild(help_mc);
}
protected static function postToStream(e=null):void{
MochiSocial.postToStream({message:"Enjoying this awesome game, check it out!"});
MochiSocial.addEventListener(MochiSocial.ACTION_COMPLETE, actionComplete);
MochiSocial.addEventListener(MochiSocial.ACTION_CANCELED, actionCanceled);
}
protected static function actionCanceled(e:Object):void{
MochiSocial.removeEventListener(MochiSocial.ACTION_COMPLETE, actionComplete);
MochiSocial.removeEventListener(MochiSocial.ACTION_CANCELED, actionCanceled);
}
protected static function actionComplete(e:Object):void{
MochiSocial.removeEventListener(MochiSocial.ACTION_COMPLETE, actionComplete);
MochiSocial.removeEventListener(MochiSocial.ACTION_CANCELED, actionCanceled);
}
}
}//package com.csharks.juwalbose.cFlashtory
Section 5
//cFlashtory_GameClip (com.csharks.juwalbose.cFlashtory.cFlashtory_GameClip)
package com.csharks.juwalbose.cFlashtory {
import mx.core.*;
import flash.display.*;
public class cFlashtory_GameClip extends SpriteAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var play_Btn:DisplayObject;
public var flower1:DisplayObject;
public var flower2:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var flower3:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.juwalbose.cFlashtory
Section 6
//cFlashtory_GameOver (com.csharks.juwalbose.cFlashtory.cFlashtory_GameOver)
package com.csharks.juwalbose.cFlashtory {
import mx.core.*;
import flash.display.*;
public class cFlashtory_GameOver extends MovieClipAsset {
public var back_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var gameWonScene:DisplayObject;
public var flower1:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var boy:DisplayObject;
public var flower2:DisplayObject;
}
}//package com.csharks.juwalbose.cFlashtory
Section 7
//cFlashtory_GameWin (com.csharks.juwalbose.cFlashtory.cFlashtory_GameWin)
package com.csharks.juwalbose.cFlashtory {
import mx.core.*;
import flash.display.*;
public class cFlashtory_GameWin extends MovieClipAsset {
public var flower4:DisplayObject;
public var gameOverScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var title:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var girl:DisplayObject;
public var back_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var flower5:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var menuScene:DisplayObject;
public var play_Btn:DisplayObject;
public var flower1:DisplayObject;
public var flower2:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
public var help_Btn:DisplayObject;
public var flower3:DisplayObject;
}
}//package com.csharks.juwalbose.cFlashtory
Section 8
//cFlashtory_HelpClip (com.csharks.juwalbose.cFlashtory.cFlashtory_HelpClip)
package com.csharks.juwalbose.cFlashtory {
import mx.core.*;
import flash.display.*;
public class cFlashtory_HelpClip extends SpriteAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var play_Btn:DisplayObject;
public var flower1:DisplayObject;
public var flower2:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var flower3:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.juwalbose.cFlashtory
Section 9
//cFlashtory_HelpDisplay (com.csharks.juwalbose.cFlashtory.cFlashtory_HelpDisplay)
package com.csharks.juwalbose.cFlashtory {
import mx.core.*;
import flash.display.*;
public class cFlashtory_HelpDisplay extends SpriteAsset {
public var back_Btn:DisplayObject;
}
}//package com.csharks.juwalbose.cFlashtory
Section 10
//cFlashtory_LeveUp (com.csharks.juwalbose.cFlashtory.cFlashtory_LeveUp)
package com.csharks.juwalbose.cFlashtory {
import mx.core.*;
import flash.display.*;
public class cFlashtory_LeveUp extends MovieClipAsset {
public var flower4:DisplayObject;
public var bubbleTitle:DisplayObject;
public var boy:DisplayObject;
public var gameOverScene:DisplayObject;
public var leaderboard_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var shootTitle:DisplayObject;
public var more_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var girl:DisplayObject;
public var ok_Btn:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var back_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var gameWonScene:DisplayObject;
public var menuScene:DisplayObject;
public var play_Btn:DisplayObject;
public var flower1:DisplayObject;
public var flower2:DisplayObject;
public var flower3:DisplayObject;
public var flower5:DisplayObject;
public var help_Btn:DisplayObject;
}
}//package com.csharks.juwalbose.cFlashtory
Section 11
//cFlashtory_MenuClip (com.csharks.juwalbose.cFlashtory.cFlashtory_MenuClip)
package com.csharks.juwalbose.cFlashtory {
import mx.core.*;
import flash.display.*;
public class cFlashtory_MenuClip extends MovieClipAsset {
public var flower4:DisplayObject;
public var gameOverScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var girl:DisplayObject;
public var back_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var flower5:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var menuScene:DisplayObject;
public var play_Btn:DisplayObject;
public var flower1:DisplayObject;
public var flower2:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
public var help_Btn:DisplayObject;
public var flower3:DisplayObject;
}
}//package com.csharks.juwalbose.cFlashtory
Section 12
//cFlashtory_Music (com.csharks.juwalbose.cFlashtory.cFlashtory_Music)
package com.csharks.juwalbose.cFlashtory {
import mx.core.*;
import flash.display.*;
public class cFlashtory_Music extends SoundAsset {
public var back_Btn:DisplayObject;
public var gameWonScene:DisplayObject;
}
}//package com.csharks.juwalbose.cFlashtory
Section 13
//cFlashtory_TemplateBg (com.csharks.juwalbose.cFlashtory.cFlashtory_TemplateBg)
package com.csharks.juwalbose.cFlashtory {
import mx.core.*;
import flash.display.*;
public class cFlashtory_TemplateBg extends MovieClipAsset {
public var back_Btn:DisplayObject;
public var gameWonScene:DisplayObject;
}
}//package com.csharks.juwalbose.cFlashtory
Section 14
//LibraryFontTextField (com.csharks.juwalbose.utils.ui.LibraryFontTextField)
package com.csharks.juwalbose.utils.ui {
import flash.text.*;
public class LibraryFontTextField extends TextField {
private var formatting:TextFormat;
public function LibraryFontTextField(fontName:String, iSize:uint=8, iColor:int=0, iText:String=""){
super();
formatting = new TextFormat();
formatting.font = fontName;
formatting.align = TextFormatAlign.CENTER;
formatting.size = iSize;
formatting.color = iColor;
defaultTextFormat = formatting;
embedFonts = true;
antiAliasType = AntiAliasType.ADVANCED;
text = iText;
}
public function set size(iSize:uint):void{
var currentText:String = this.text;
var currentColor:int = this.textColor;
formatting.size = iSize;
defaultTextFormat = formatting;
this.text = currentText;
this.textColor = currentColor;
}
}
}//package com.csharks.juwalbose.utils.ui
Section 15
//MultiStateUiButton (com.csharks.juwalbose.utils.ui.MultiStateUiButton)
package com.csharks.juwalbose.utils.ui {
import flash.display.*;
public class MultiStateUiButton extends UiButton {
private var newTextUpColor:uint;
private var newText:String;
private var newTextSize:uint;
public function MultiStateUiButton(buttonUpClip:Class, buttonOverClip:Class, buttonDownClip:Class, iSizeX:int, iSizeY:int, itext:String="Button", itextSize:uint=20, itextUpColor:uint=0, itextOverColor:uint=0xFFFFFF, itextDownColor:uint=0xFF00FF){
super(buttonUpClip, buttonOverClip, buttonDownClip, iSizeX, iSizeY, itext, itextSize, itextUpColor, itextOverColor, itextDownColor);
newText = itext;
newTextSize = itextSize;
newTextUpColor = itextUpColor;
}
public function changeButton(stateClip:Class, itext:String="", itextSize:uint=0, itextUpColor=-1):void{
setState("up", stateClip, itext, itextSize, itextUpColor);
setState("over", stateClip, itext, itextSize, itextUpColor);
setState("down", stateClip, itext, itextSize, itextUpColor);
enabled = true;
}
override public function set enabled(value:Boolean):void{
super.enabled = value;
this.mouseEnabled = enabled;
if (enabled){
this.alpha = 1;
} else {
this.alpha = 0.5;
};
}
public function setState(flag:String, stateClip:Class, itext:String="", itextSize:uint=0, itextUpColor=-1):void{
var clipSX:uint;
var clipSY:uint;
var tSize:uint;
var _local11:Sprite;
if (itext != ""){
newText = itext;
};
if (itextSize != 0){
newTextSize = itextSize;
};
if (itextUpColor > -1){
newTextUpColor = itextUpColor;
};
clipSX = super.sizeX;
clipSY = super.sizeY;
tSize = newTextSize;
var tOffset:uint = 2;
var offset:uint = 5;
switch (flag){
case "up":
upState = (hitTestState = (new UiBox("", super.sizeX, super.sizeY, UiBoxTypes.TextWithBackground, newTextSize, newTextUpColor, newText, stateClip, null, null, super.ButtonFont) as Sprite));
break;
case "down":
tSize = (newTextSize - tOffset);
clipSX = (super.sizeX - offset);
clipSY = (super.sizeY - offset);
_local11 = (new UiBox("", clipSX, clipSY, UiBoxTypes.TextWithBackground, tSize, newTextUpColor, newText, stateClip, null, null, super.ButtonFont) as Sprite);
_local11.x = ((super.sizeX / 2) - (clipSX / 2));
_local11.y = ((super.sizeY / 2) - (clipSY / 2));
downState = _local11;
break;
case "over":
clipSX = (super.sizeX + offset);
clipSY = (super.sizeY + offset);
tSize = (newTextSize + tOffset);
_local11 = (new UiBox("", clipSX, clipSY, UiBoxTypes.TextWithBackground, tSize, newTextUpColor, newText, stateClip, null, null, super.ButtonFont) as Sprite);
_local11.x = ((super.sizeX / 2) - (clipSX / 2));
_local11.y = ((super.sizeY / 2) - (clipSY / 2));
overState = _local11;
break;
};
}
}
}//package com.csharks.juwalbose.utils.ui
Section 16
//SceneManager (com.csharks.juwalbose.utils.ui.SceneManager)
package com.csharks.juwalbose.utils.ui {
import flash.events.*;
import com.inruntime.utils.*;
public class SceneManager {
private static var ButtonDownClip:Class = SceneManager_ButtonDownClip;
private static var ButtonUpClip:Class = SceneManager_ButtonUpClip;
private static var ButtonOverClip:Class = SceneManager_ButtonOverClip;
public function SceneManager(){
super();
}
public static function addMultiStateButton(parent, btnName:String="Button", callback:Function=null, staticMode:Boolean=false, buttonWidth:uint=130, buttonHeight:uint=45):MultiStateUiButton{
var button:MultiStateUiButton;
var gameVars:Global = Global.getInstance();
if (staticMode){
button = new MultiStateUiButton(ButtonUpClip, ButtonOverClip, ButtonDownClip, buttonWidth, buttonHeight, btnName, gameVars.buttonFontSize, gameVars.buttonFontNormalColor, gameVars.buttonFontOverColor, gameVars.buttonFontDownColor);
} else {
button = new MultiStateUiButton(ButtonUpClip, ButtonOverClip, ButtonDownClip, -1, -1, btnName, gameVars.buttonFontSize, gameVars.buttonFontNormalColor, gameVars.buttonFontOverColor, gameVars.buttonFontDownColor);
};
button.name = btnName;
if (callback != null){
button.addEventListener(MouseEvent.CLICK, callback);
};
parent.addChild(button);
return (button);
}
public static function removeMultiStateButton(parent, btnName:String="Button", callback:Function=null):void{
var button:UiButton;
if (parent.getChildByName(btnName)){
button = (parent.getChildByName(btnName) as UiButton);
if (callback != null){
button.removeEventListener(MouseEvent.CLICK, callback);
};
parent.removeChild(button);
};
}
public static function addButton(parent, btnName:String="Button", callback:Function=null, staticMode:Boolean=false, buttonWidth:uint=130, buttonHeight:uint=45):UiButton{
var button:UiButton;
var gameVars:Global = Global.getInstance();
if (staticMode){
button = new UiButton(ButtonUpClip, ButtonOverClip, ButtonDownClip, buttonWidth, buttonHeight, btnName, gameVars.buttonFontSize, gameVars.buttonFontNormalColor, gameVars.buttonFontOverColor, gameVars.buttonFontDownColor);
} else {
button = new UiButton(ButtonUpClip, ButtonOverClip, ButtonDownClip, -1, -1, btnName, gameVars.buttonFontSize, gameVars.buttonFontNormalColor, gameVars.buttonFontOverColor, gameVars.buttonFontDownColor);
};
button.name = btnName;
if (callback != null){
button.addEventListener(MouseEvent.CLICK, callback);
};
parent.addChild(button);
return (button);
}
public static function removeButton(parent, btnName:String="Button", callback:Function=null):void{
var button:UiButton;
if (parent.getChildByName(btnName)){
button = (parent.getChildByName(btnName) as UiButton);
if (callback != null){
button.removeEventListener(MouseEvent.CLICK, callback);
};
parent.removeChild(button);
};
}
public static function removeItem(parent, name:String="Button"):void{
var item:*;
if (parent.getChildByName(name)){
item = parent.getChildByName(name);
parent.removeChild(item);
};
}
public static function removeAllChildren(parent):void{
while (parent.numChildren) {
parent.removeChildAt(0);
};
}
}
}//package com.csharks.juwalbose.utils.ui
Section 17
//SceneManager_ButtonDownClip (com.csharks.juwalbose.utils.ui.SceneManager_ButtonDownClip)
package com.csharks.juwalbose.utils.ui {
import mx.core.*;
import flash.display.*;
public class SceneManager_ButtonDownClip extends SpriteAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.juwalbose.utils.ui
Section 18
//SceneManager_ButtonOverClip (com.csharks.juwalbose.utils.ui.SceneManager_ButtonOverClip)
package com.csharks.juwalbose.utils.ui {
import mx.core.*;
import flash.display.*;
public class SceneManager_ButtonOverClip extends SpriteAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.juwalbose.utils.ui
Section 19
//SceneManager_ButtonUpClip (com.csharks.juwalbose.utils.ui.SceneManager_ButtonUpClip)
package com.csharks.juwalbose.utils.ui {
import mx.core.*;
import flash.display.*;
public class SceneManager_ButtonUpClip extends SpriteAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.juwalbose.utils.ui
Section 20
//UiBox (com.csharks.juwalbose.utils.ui.UiBox)
package com.csharks.juwalbose.utils.ui {
import flash.events.*;
import flash.display.*;
public class UiBox extends Sprite {
private var heading:String;
private var itemClip:Class;
private var barClip:Class;
private var myBg:Sprite;
private var destinationValue:Number;
private var headingTxt:LibraryFontTextField;
private var myClip:Sprite;
private var myTxt:LibraryFontTextField;
private var boxType:uint;
private var maxBarValue;
private var bgClip:Class;
private var textColor:uint;
private var updating:Boolean;// = false
private var myBar:MovieClip;
private var textSize:uint;
private var iWidth:uint;
public var runningUpdate:Boolean;// = false
private var MenuFont:Class;
private var increment:int;
private var iHeight:uint;
private var currentValue;
private var barUpdating:Boolean;// = false
public function UiBox(iheading:String="", iwidth:uint=50, iheight:uint=10, itype:uint=1, itextSize:uint=1, itextColor:uint=0, ilinkedVariable=null, ibgClip:Class=null, iitemClip:Class=null, ibarClip:Class=null, fontClass:Class=null){
MenuFont = (Config.MenuFont as Class);
super();
boxType = itype;
iWidth = iwidth;
iHeight = iheight;
textSize = itextSize;
textColor = itextColor;
bgClip = ibgClip;
barClip = ibarClip;
itemClip = iitemClip;
heading = iheading;
if (fontClass != null){
MenuFont = fontClass;
};
if (heading != ""){
headingTxt = new LibraryFontTextField(new MenuFont().fontName, textSize, textColor, heading);
headingTxt.selectable = false;
headingTxt.mouseEnabled = false;
headingTxt.width = iwidth;
headingTxt.x = ((iWidth / 2) - (headingTxt.width / 2));
};
switch (itype){
case UiBoxTypes.BackgroundOnly:
addBG();
if (heading != ""){
addChild(headingTxt);
};
break;
case UiBoxTypes.BarOnly:
addBar(ilinkedVariable);
break;
case UiBoxTypes.BarWithBackground:
addBG();
addBar(ilinkedVariable);
break;
case UiBoxTypes.ClipOnly:
myClip = new Sprite();
addChild(myClip);
addClip(ilinkedVariable);
break;
case UiBoxTypes.ClipWithBackground:
addBG();
myClip = new Sprite();
addChild(myClip);
addClip(ilinkedVariable.toString());
break;
case UiBoxTypes.TextOnly:
addText(ilinkedVariable);
break;
case UiBoxTypes.TextWithBackground:
addBG();
addText(ilinkedVariable.toString());
break;
};
}
private function clearSprite(clip:Sprite):void{
while (clip.numChildren) {
clip.removeChildAt(0);
};
}
private function addClip(linkedVar=null):void{
var clip:Sprite;
if (linkedVar <= 0){
return;
};
if (isNaN(linkedVar)){
linkedVar = 1;
} else {
linkedVar = int(linkedVar);
};
if (maxBarValue == null){
maxBarValue = linkedVar;
if (heading != ""){
addChild(headingTxt);
};
};
var margin:Number = ((iWidth / maxBarValue) - 20);
var i:uint;
while (i < maxBarValue) {
clip = (new itemClip() as Sprite);
myClip.addChild(clip);
if (heading != ""){
clip.y = ((headingTxt.y + headingTxt.textHeight) + 5);
} else {
clip.y = ((iHeight / 2) - (clip.height / 2));
};
if ((i + 1) > linkedVar){
clip.alpha = 0.2;
};
clip.x = ((((i * margin) / 2) + ((((i + 1) * margin) / 2) - (clip.width / 2))) + 30);
i++;
};
}
private function updateBar(e:Event):void{
currentValue = myBar.currentFrame;
myBar.gotoAndStop((currentValue + increment));
if ((((((myBar.currentFrame == destinationValue)) || ((((increment > 0)) && ((destinationValue < currentValue)))))) || ((((increment < 0)) && ((destinationValue > currentValue)))))){
currentValue = null;
barUpdating = false;
myBar.gotoAndStop(destinationValue);
removeEventListener(Event.ENTER_FRAME, updateBar);
};
}
private function addBG():void{
myBg = (new bgClip() as Sprite);
addChild(myBg);
}
private function updateField(e:Event):void{
var oldIncrement:int = increment;
increment = int(((destinationValue - currentValue) / 2));
currentValue = Number(myTxt.text);
myTxt.text = String((currentValue + increment));
if ((((currentValue == destinationValue)) || (!(((increment / oldIncrement) == Math.abs((increment / oldIncrement))))))){
currentValue = null;
updating = false;
myTxt.text = destinationValue.toString();
removeEventListener(Event.ENTER_FRAME, updateField);
};
myTxt.x = ((iWidth / 2) - (myTxt.width / 2));
}
private function addBar(linkedVar=null):void{
if (linkedVar <= 0){
return;
};
if (isNaN(linkedVar)){
linkedVar = 1;
};
if (maxBarValue == null){
maxBarValue = linkedVar;
};
myBar = (new barClip() as MovieClip);
addChild(myBar);
if (heading != ""){
addChild(headingTxt);
myBar.y = ((headingTxt.y + headingTxt.textHeight) + 5);
} else {
myBar.y = ((iHeight / 2) - (myBar.height / 2));
};
myBar.x = ((iWidth / 2) - (myBar.width / 2));
myBar.addEventListener(Event.ADDED_TO_STAGE, initBar);
}
public function update(linkedVariable):void{
if ((((boxType == UiBoxTypes.TextOnly)) || ((boxType == UiBoxTypes.TextWithBackground)))){
if (((((runningUpdate) && (!(isNaN(linkedVariable))))) && (!((Number(myTxt.text) == Number(linkedVariable)))))){
if (!updating){
updating = true;
if (currentValue == null){
currentValue = Number(myTxt.text);
destinationValue = Number(linkedVariable);
increment = int(((destinationValue - currentValue) / 2));
addEventListener(Event.ENTER_FRAME, updateField);
};
} else {
destinationValue = Number(linkedVariable);
currentValue = Number(myTxt.text);
increment = int(((destinationValue - currentValue) / 2));
};
} else {
myTxt.text = linkedVariable;
myTxt.x = ((iWidth / 2) - (myTxt.width / 2));
};
} else {
if ((((((boxType == UiBoxTypes.BarOnly)) || ((boxType == UiBoxTypes.BarWithBackground)))) && (!(isNaN(linkedVariable))))){
if (((runningUpdate) && (!(isNaN(linkedVariable))))){
if (!barUpdating){
barUpdating = true;
if (currentValue == null){
currentValue = myBar.currentFrame;
destinationValue = (1 + int(((linkedVariable / maxBarValue) * (myBar.totalFrames - 1))));
if (Math.max(destinationValue, currentValue) == destinationValue){
increment = 1;
} else {
increment = -1;
};
addEventListener(Event.ENTER_FRAME, updateBar);
};
} else {
destinationValue = (1 + int(((linkedVariable / maxBarValue) * (myBar.totalFrames - 1))));
if (Math.max(destinationValue, currentValue) == destinationValue){
increment = 1;
} else {
increment = -1;
};
};
} else {
myBar.gotoAndStop((1 + int(((linkedVariable / maxBarValue) * (myBar.totalFrames - 1)))));
};
} else {
if ((((boxType == UiBoxTypes.ClipOnly)) || ((boxType == UiBoxTypes.ClipWithBackground)))){
clearSprite(myClip);
addClip(linkedVariable);
};
};
};
}
private function initBar(e:Event):void{
e.currentTarget.removeEventListener(Event.ADDED_TO_STAGE, initBar);
e.currentTarget.gotoAndStop(e.currentTarget.totalFrames);
}
private function addText(itext:String):void{
myTxt = new LibraryFontTextField(new MenuFont().fontName, (textSize = 12), textColor, itext);
addChild(myTxt);
myTxt.selectable = false;
myTxt.mouseEnabled = false;
myTxt.multiline = true;
myTxt.wordWrap = true;
myTxt.width = (iWidth - 5);
myTxt.height = (iHeight - 5);
myTxt.x = ((iWidth / 2) - (myTxt.width / 2));
if (heading != ""){
addChild(headingTxt);
myTxt.y = (((iHeight - (headingTxt.y + headingTxt.textHeight)) / 2) - (myTxt.textHeight / 2));
if ((headingTxt.y + headingTxt.textHeight) > myTxt.y){
myTxt.y = (headingTxt.y + headingTxt.textHeight);
};
} else {
myTxt.y = ((iHeight / 2) - (myTxt.textHeight / 2));
};
}
}
}//package com.csharks.juwalbose.utils.ui
Section 21
//UiBoxTypes (com.csharks.juwalbose.utils.ui.UiBoxTypes)
package com.csharks.juwalbose.utils.ui {
public class UiBoxTypes {
public static const TextWithBackground:uint = 3;
public static const ClipWithBackground:uint = 7;
public static const BarWithBackground:uint = 5;
public static const TextOnly:uint = 1;
public static const BackgroundOnly:uint = 2;
public static const ClipOnly:uint = 6;
public static const BarOnly:uint = 4;
public function UiBoxTypes(){
super();
}
}
}//package com.csharks.juwalbose.utils.ui
Section 22
//UiButton (com.csharks.juwalbose.utils.ui.UiButton)
package com.csharks.juwalbose.utils.ui {
import flash.display.*;
public class UiButton extends SimpleButton {
public var ButtonFont:Class;
private var ButtonDownClip:Class;
private var textOverColor:uint;
private var ButtonUpClip:Class;
private var textSize:uint;
private var title:String;
private var textUpColor:uint;
private var textDownColor:uint;
public var sizeY:uint;
private var ButtonOverClip:Class;
public var sizeX:uint;
public function UiButton(buttonUpClip:Class, buttonOverClip:Class, buttonDownClip:Class, iSizeX:int=-1, iSizeY:int=-1, text:String="Button", itextSize:uint=20, itextUpColor:uint=0, itextOverColor:uint=0xFFFFFF, itextDownColor:uint=0xFF00FF){
ButtonFont = (Config.ButtonFont as Class);
super();
ButtonUpClip = buttonUpClip;
ButtonOverClip = buttonOverClip;
ButtonDownClip = buttonDownClip;
textDownColor = itextDownColor;
textOverColor = itextOverColor;
textUpColor = itextUpColor;
textSize = itextSize;
title = text;
var tmpTxt:LibraryFontTextField = new LibraryFontTextField(new ButtonFont().fontName, textSize, itextUpColor, text);
if (iSizeX == -1){
sizeX = (tmpTxt.textWidth + 30);
} else {
sizeX = iSizeX;
};
if (iSizeY == -1){
sizeY = (tmpTxt.textHeight + 15);
} else {
sizeY = iSizeY;
};
tmpTxt = null;
upState = (hitTestState = setGraphics(ButtonUpClip, textUpColor));
overState = setGraphics(ButtonOverClip, textOverColor);
downState = setGraphics(ButtonDownClip, textDownColor);
}
private function setGraphics(ButtonClip:Class, textColor:uint):Sprite{
var clipSX:uint;
var clipSY:uint;
var tSize:uint = textSize;
var tOffset:uint = 2;
var offset:uint = 5;
if (ButtonClip == ButtonUpClip){
clipSX = sizeX;
clipSY = sizeY;
} else {
if (ButtonClip == ButtonOverClip){
clipSX = (sizeX + offset);
clipSY = (sizeY + offset);
tSize = (tSize + tOffset);
} else {
if (ButtonClip == ButtonDownClip){
clipSX = (sizeX - offset);
clipSY = (sizeY - offset);
tSize = (tSize - tOffset);
};
};
};
var gSprite:Sprite = (new UiBox("", clipSX, clipSY, UiBoxTypes.TextWithBackground, tSize, textColor, title, ButtonClip, null, null, ButtonFont) as Sprite);
gSprite.x = ((sizeX / 2) - (clipSX / 2));
gSprite.y = ((sizeY / 2) - (clipSY / 2));
return (gSprite);
}
public function set label(text:String):void{
title = text;
upState = (hitTestState = setGraphics(ButtonUpClip, textUpColor));
overState = setGraphics(ButtonOverClip, textOverColor);
downState = setGraphics(ButtonDownClip, textDownColor);
}
}
}//package com.csharks.juwalbose.utils.ui
Section 23
//Counter (com.csharks.juwalbose.utils.Counter)
package com.csharks.juwalbose.utils {
import flash.events.*;
import flash.utils.*;
public class Counter {
private var callbackFunction:Function;
private var counterType:String;
private var _timer:Timer;
private var counterMax:uint;
public var currentTime:uint;
private var counterMin:uint;
private var range:uint;
public function Counter(maxValue:uint, minValue:uint=0, type:String="down", callback:Function=null){
super();
counterMax = maxValue;
counterMin = 0;
counterType = type;
callbackFunction = callback;
range = (counterMax - counterMin);
if (counterType == "up"){
currentTime = 0;
} else {
currentTime = range;
};
}
public function start(delay:Number=1):void{
_timer = new Timer((delay * 1000));
_timer.addEventListener(TimerEvent.TIMER, timerTick);
_timer.start();
}
private function timerTick(evnt:TimerEvent):void{
counterMin++;
if (counterType == "up"){
currentTime = counterMin;
if (currentTime >= counterMax){
timerComplete();
};
} else {
currentTime = (range - counterMin);
if (currentTime <= 0){
timerComplete();
};
};
}
public function unPause():void{
_timer.start();
}
public function pause():void{
_timer.stop();
}
private function timerComplete():void{
_timer.stop();
_timer.removeEventListener(TimerEvent.TIMER, timerTick);
_timer.removeEventListener(TimerEvent.TIMER_COMPLETE, timerComplete);
if (callbackFunction != null){
callbackFunction.call();
};
}
public function dispose():void{
_timer.stop();
_timer.removeEventListener(TimerEvent.TIMER, timerTick);
_timer.removeEventListener(TimerEvent.TIMER_COMPLETE, timerComplete);
}
}
}//package com.csharks.juwalbose.utils
Section 24
//Environment (com.csharks.juwalbose.utils.Environment)
package com.csharks.juwalbose.utils {
import flash.system.*;
import flash.net.*;
public class Environment {
public function Environment(){
super();
}
public static function get IS_IN_BROWSER():Boolean{
return ((((Capabilities.playerType == "PlugIn")) || ((Capabilities.playerType == "ActiveX"))));
}
public static function get DOMAIN():String{
return (new LocalConnection().domain);
}
public static function get IS_IN_AIR():Boolean{
return ((Capabilities.playerType == "Desktop"));
}
public static function get IS_OIG():Boolean{
return ((DOMAIN == "onlineindiangames.com"));
}
public static function get IS_CSHARKS():Boolean{
return ((((((((DOMAIN == "www.csharks.com")) || ((DOMAIN == "csharks.com")))) || ((DOMAIN == "www.csharksgames.com")))) || ((DOMAIN == "csharksgames.com"))));
}
public static function get IS_ON_SERVER():Boolean{
return ((Security.sandboxType == Security.REMOTE));
}
}
}//package com.csharks.juwalbose.utils
Section 25
//Tick (com.csharks.juwalbose.utils.Tick)
package com.csharks.juwalbose.utils {
import flash.utils.*;
public class Tick {
public static var fps:uint = 0;
public static var timeMultiplier:Number = 0;
public static var secs:uint = getTimer();
public static var fps_txt:uint = 0;
private static var oldtime:int = 0;
public function Tick(){
super();
}
public static function run():void{
timeMultiplier = ((getTimer() - oldtime) / 1000);
fps++;
if ((getTimer() - secs) > 1000){
secs = getTimer();
fps_txt = fps;
fps = 0;
};
oldtime = getTimer();
}
public static function reset():void{
oldtime = getTimer();
}
}
}//package com.csharks.juwalbose.utils
Section 26
//Bubbles (com.csharks.marvil.Bubbles)
package com.csharks.marvil {
import flash.geom.*;
import flash.display.*;
public class Bubbles extends MovieClip {
public var bubblesType:Number;
public var blueBubble:Class;
public var roseBubble:Class;
public var point:Point;
public var bubblesClip:MovieClip;
public var orangeBubble:Class;
public var flower:Class;
public var brownBubble:Class;
public var color:String;
public var matched:Boolean;// = false
public var violetBubble:Class;
public var greenBubble:Class;
public var canRemove:Boolean;// = false
public var redBubble:Class;
public function Bubbles(_x:Number, _y:Number, _color:Number):void{
blueBubble = Bubbles_blueBubble;
greenBubble = Bubbles_greenBubble;
redBubble = Bubbles_redBubble;
violetBubble = Bubbles_violetBubble;
orangeBubble = Bubbles_orangeBubble;
roseBubble = Bubbles_roseBubble;
brownBubble = Bubbles_brownBubble;
flower = Bubbles_flower;
point = new Point(0, 0);
super();
matched = false;
canRemove = false;
x = _x;
y = _y;
color = _color.toString();
drawBall(color, 10);
point.x = x;
point.y = y;
}
public function updateBubbles(type:Number):void{
if (type == 10){
matched = true;
bubblesClip.clip.gotoAndPlay(1);
} else {
color = type.toString();
bubblesClip.gotoAndStop(type);
bubblesClip.clip.gotoAndStop(1);
};
}
private function drawBall(color:String, rad:int):void{
if (color == "1"){
bubblesClip = new blueBubble();
} else {
if (color == "2"){
bubblesClip = new greenBubble();
} else {
if (color == "3"){
bubblesClip = new redBubble();
} else {
if (color == "4"){
bubblesClip = new violetBubble();
} else {
if (color == "5"){
bubblesClip = new orangeBubble();
} else {
if (color == "6"){
bubblesClip = new roseBubble();
} else {
if (color == "7"){
bubblesClip = new brownBubble();
} else {
if (color == "8"){
bubblesClip = new flower();
};
};
};
};
};
};
};
};
addChild(bubblesClip);
bubblesClip.gotoAndStop(1);
bubblesClip.width = (bubblesClip.width / 3);
bubblesClip.height = (bubblesClip.height / 3);
}
}
}//package com.csharks.marvil
Section 27
//Bubbles_blueBubble (com.csharks.marvil.Bubbles_blueBubble)
package com.csharks.marvil {
import mx.core.*;
import flash.display.*;
public class Bubbles_blueBubble extends MovieClipAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.marvil
Section 28
//Bubbles_brownBubble (com.csharks.marvil.Bubbles_brownBubble)
package com.csharks.marvil {
import mx.core.*;
import flash.display.*;
public class Bubbles_brownBubble extends MovieClipAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.marvil
Section 29
//Bubbles_flower (com.csharks.marvil.Bubbles_flower)
package com.csharks.marvil {
import mx.core.*;
import flash.display.*;
public class Bubbles_flower extends MovieClipAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.marvil
Section 30
//Bubbles_greenBubble (com.csharks.marvil.Bubbles_greenBubble)
package com.csharks.marvil {
import mx.core.*;
import flash.display.*;
public class Bubbles_greenBubble extends MovieClipAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.marvil
Section 31
//Bubbles_orangeBubble (com.csharks.marvil.Bubbles_orangeBubble)
package com.csharks.marvil {
import mx.core.*;
import flash.display.*;
public class Bubbles_orangeBubble extends MovieClipAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.marvil
Section 32
//Bubbles_redBubble (com.csharks.marvil.Bubbles_redBubble)
package com.csharks.marvil {
import mx.core.*;
import flash.display.*;
public class Bubbles_redBubble extends MovieClipAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.marvil
Section 33
//Bubbles_roseBubble (com.csharks.marvil.Bubbles_roseBubble)
package com.csharks.marvil {
import mx.core.*;
import flash.display.*;
public class Bubbles_roseBubble extends MovieClipAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.marvil
Section 34
//Bubbles_violetBubble (com.csharks.marvil.Bubbles_violetBubble)
package com.csharks.marvil {
import mx.core.*;
import flash.display.*;
public class Bubbles_violetBubble extends MovieClipAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.marvil
Section 35
//MovingBall (com.csharks.marvil.MovingBall)
package com.csharks.marvil {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import com.inruntime.utils.*;
public class MovingBall extends Sprite {
public var maxWallHitsSound:Class;
public var blueBubble:Class;
public var point:Point;
public var shootedBall:Boolean;// = false
public var BorderHit:Class;
public var maxWallHits:Number;// = 4
private var main:Game;
public var roseBubble:Class;
private var gameVars:Global;
public var initialShoot:Boolean;// = true
public var aloneArray:Array;
private var speed:int;
public var angle:Number;
public var bubblesClip:MovieClip;
public var xHits:Boolean;// = false
public var yHits:Boolean;// = false
public var orangeBubble:Class;
public var flower:Class;
public var Attaching:Class;
public var color:String;
public var bubbles:Class;
public var brownBubble:Class;
public var violetBubble:Class;
public var greenBubble:Class;
private var speedX:Number;
private var speedY:Number;
public var redBubble:Class;
public function MovingBall(_x:Number, _y:Number, _angle:Number, _speed:int, _color:String, rad:int, _main:Game):void{
point = new Point(0, 0);
bubbles = MovingBall_bubbles;
blueBubble = MovingBall_blueBubble;
greenBubble = MovingBall_greenBubble;
redBubble = MovingBall_redBubble;
violetBubble = MovingBall_violetBubble;
orangeBubble = MovingBall_orangeBubble;
roseBubble = MovingBall_roseBubble;
brownBubble = MovingBall_brownBubble;
flower = MovingBall_flower;
Attaching = MovingBall_Attaching;
BorderHit = MovingBall_BorderHit;
maxWallHitsSound = MovingBall_maxWallHitsSound;
aloneArray = new Array();
super();
gameVars = Global.getInstance();
initialShoot = true;
main = _main;
speed = _speed;
color = _color;
angle = _angle;
drawBall(color, rad);
x = _x;
y = _y;
shootedBall = false;
bubblesClip.rotation = angle;
speedX = (Math.cos(angle) * speed);
speedY = (Math.sin(angle) * speed);
updatePoint();
this.addEventListener(Event.ENTER_FRAME, loop);
}
private function checkHit():void{
var hitPoint:Point;
var stepx:int;
var stepy:int;
var j:int;
var loc_14:Number;
var loc_15:Number;
var loc_31:Number;
var balls:Array = main.bubbleArray;
var i:int;
var powDist:int = ((main.padding + (main.rad * 2)) * (main.padding + (main.rad * 2)));
i = 0;
while (i < balls.length) {
if (!balls[i].matched){
if (fastDist(balls[i].point, point) <= powDist){
stepx = (speedX / 8);
stepy = (speedY / 8);
j = 0;
while (j < 8) {
if (fastDist(balls[i].point, main.rotatingPlane.globalToLocal(new Point((x + (stepx * j)), (y + (stepy * j))))) <= powDist){
if (maxWallHits > 2){
gameVars.hits = true;
};
maxWallHits = 4;
main.playSound(Attaching, "shootBubble");
loc_14 = bubblesClip.rotation;
loc_15 = ((Math.round(main.degreesToRadians(Math.atan2((bubblesClip.y - main.rotatingPlane.y), (bubblesClip.x - main.rotatingPlane.x)))) / 10) + 180);
if ((loc_14 - loc_15) >= 180){
loc_14 = (loc_14 - 360);
} else {
if ((loc_14 - loc_15) <= -180){
loc_14 = (loc_14 + 360);
};
};
if ((bubblesClip.x - main.rotatingPlane.x) != 0){
loc_31 = Math.round(((bubblesClip.x - main.rotatingPlane.x) / Math.cos(main.degreesToRadians((loc_15 - 180)))));
main.gameVel = ((loc_14 - loc_15) / loc_31);
if (((yHits) || (xHits))){
main.gameVel = ((main.gameVel * 10) * -1);
} else {
main.gameVel = (main.gameVel * 10);
};
};
hitPoint = new Point((point.x + stepx), (point.y + stepy));
//unresolved jump
};
j++;
};
};
};
i++;
};
if (hitPoint != null){
main.addBall(i, hitPoint, color);
deleteThis();
};
}
private function fastDist(Point1:Point, Point2:Point):int{
return ((((Point1.x - Point2.x) * (Point1.x - Point2.x)) + ((Point1.y - Point2.y) * (Point1.y - Point2.y))));
}
private function loop(event:Event):void{
if (main.movingBalls.length == 0){
deleteThis();
} else {
if ((((maxWallHits == 2)) && (!(shootedBall)))){
shootedBall = true;
gameVars.hits = true;
};
if (maxWallHits == 0){
main.playSound(maxWallHitsSound, "shootBubble");
deleteThis();
} else {
checkBoundaries();
x = (x + speedX);
y = (y + speedY);
updatePoint();
checkHit();
};
};
}
private function updatePoint():void{
point = main.rotatingPlane.globalToLocal(new Point(x, y));
}
private function drawBall(color:String, rad:int):void{
if (color == "1"){
bubblesClip = new blueBubble();
} else {
if (color == "2"){
bubblesClip = new greenBubble();
} else {
if (color == "3"){
bubblesClip = new redBubble();
} else {
if (color == "4"){
bubblesClip = new violetBubble();
} else {
if (color == "5"){
bubblesClip = new orangeBubble();
} else {
if (color == "6"){
bubblesClip = new roseBubble();
} else {
if (color == "7"){
bubblesClip = new brownBubble();
} else {
if (color == "8"){
bubblesClip = new flower();
};
};
};
};
};
};
};
};
addChild(bubblesClip);
bubblesClip.gotoAndStop(1);
bubblesClip.width = (bubblesClip.width / 3);
bubblesClip.height = (bubblesClip.height / 3);
}
private function checkBoundaries():void{
var boundaries:Array = main.boundaries;
if (((((x + speedX) < boundaries[0])) || (((x + speedX) > boundaries[2])))){
yHits = false;
if (y < 100){
xHits = true;
} else {
xHits = false;
};
maxWallHits--;
main.playSound(BorderHit, "shootBubble");
speedX = (speedX * -1);
bubblesClip.rotation = (360 - bubblesClip.rotation);
};
if (((((y + speedY) < boundaries[1])) || (((y + speedY) > boundaries[3])))){
if (((((y + speedY) < boundaries[1])) && ((x < 475)))){
yHits = true;
} else {
yHits = false;
};
xHits = false;
maxWallHits--;
main.playSound(BorderHit, "shootBubble");
speedY = (speedY * -1);
bubblesClip.rotation = -(bubblesClip.rotation);
};
}
public function deleteThis():void{
this.removeEventListener(Event.ENTER_FRAME, loop);
var index:int = main.movingBalls.indexOf(this);
main.movingBalls.splice(index, 1);
main.gameArea.removeChild(this);
delete ??getglobalscope
[this];
}
}
}//package com.csharks.marvil
Section 36
//MovingBall_Attaching (com.csharks.marvil.MovingBall_Attaching)
package com.csharks.marvil {
import mx.core.*;
import flash.display.*;
public class MovingBall_Attaching extends SoundAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.marvil
Section 37
//MovingBall_blueBubble (com.csharks.marvil.MovingBall_blueBubble)
package com.csharks.marvil {
import mx.core.*;
import flash.display.*;
public class MovingBall_blueBubble extends MovieClipAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.marvil
Section 38
//MovingBall_BorderHit (com.csharks.marvil.MovingBall_BorderHit)
package com.csharks.marvil {
import mx.core.*;
import flash.display.*;
public class MovingBall_BorderHit extends SoundAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.marvil
Section 39
//MovingBall_brownBubble (com.csharks.marvil.MovingBall_brownBubble)
package com.csharks.marvil {
import mx.core.*;
import flash.display.*;
public class MovingBall_brownBubble extends MovieClipAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.marvil
Section 40
//MovingBall_bubbles (com.csharks.marvil.MovingBall_bubbles)
package com.csharks.marvil {
import mx.core.*;
import flash.display.*;
public class MovingBall_bubbles extends MovieClipAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.marvil
Section 41
//MovingBall_flower (com.csharks.marvil.MovingBall_flower)
package com.csharks.marvil {
import mx.core.*;
import flash.display.*;
public class MovingBall_flower extends MovieClipAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.marvil
Section 42
//MovingBall_greenBubble (com.csharks.marvil.MovingBall_greenBubble)
package com.csharks.marvil {
import mx.core.*;
import flash.display.*;
public class MovingBall_greenBubble extends MovieClipAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.marvil
Section 43
//MovingBall_maxWallHitsSound (com.csharks.marvil.MovingBall_maxWallHitsSound)
package com.csharks.marvil {
import mx.core.*;
import flash.display.*;
public class MovingBall_maxWallHitsSound extends SoundAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.marvil
Section 44
//MovingBall_orangeBubble (com.csharks.marvil.MovingBall_orangeBubble)
package com.csharks.marvil {
import mx.core.*;
import flash.display.*;
public class MovingBall_orangeBubble extends MovieClipAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.marvil
Section 45
//MovingBall_redBubble (com.csharks.marvil.MovingBall_redBubble)
package com.csharks.marvil {
import mx.core.*;
import flash.display.*;
public class MovingBall_redBubble extends MovieClipAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.marvil
Section 46
//MovingBall_roseBubble (com.csharks.marvil.MovingBall_roseBubble)
package com.csharks.marvil {
import mx.core.*;
import flash.display.*;
public class MovingBall_roseBubble extends MovieClipAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.marvil
Section 47
//MovingBall_violetBubble (com.csharks.marvil.MovingBall_violetBubble)
package com.csharks.marvil {
import mx.core.*;
import flash.display.*;
public class MovingBall_violetBubble extends MovieClipAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package com.csharks.marvil
Section 48
//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(target:Object, property:String, start:Number, change:Number, name:String, isPlugin:Boolean, nextNode:PropTween=null, priority:int=0){
super();
this.target = target;
this.property = property;
this.start = start;
this.change = change;
this.name = name;
this.isPlugin = isPlugin;
if (nextNode){
nextNode.prevNode = this;
this.nextNode = nextNode;
};
this.priority = priority;
}
}
}//package com.greensock.core
Section 49
//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(vars:Object=null){
super(0, vars);
}
override public function renderTime(time:Number, suppressEvents:Boolean=false, force:Boolean=false):void{
var dur:Number;
var next:TweenCore;
var tween:TweenCore = _firstChild;
this.cachedTotalTime = time;
this.cachedTime = time;
while (tween) {
next = tween.nextNode;
if (((tween.active) || ((((((time >= tween.cachedStartTime)) && (!(tween.cachedPaused)))) && (!(tween.gc)))))){
if (!tween.cachedReversed){
tween.renderTime(((time - tween.cachedStartTime) * tween.cachedTimeScale), suppressEvents, false);
} else {
dur = (tween.cacheIsDirty) ? tween.totalDuration : tween.cachedTotalDuration;
tween.renderTime((dur - ((time - tween.cachedStartTime) * tween.cachedTimeScale)), suppressEvents, false);
};
};
tween = next;
};
}
public function addChild(tween:TweenCore):void{
if (((!(tween.gc)) && (tween.timeline))){
tween.timeline.remove(tween, true);
};
tween.timeline = this;
if (tween.gc){
tween.setEnabled(true, true);
};
if (_firstChild){
_firstChild.prevNode = tween;
};
tween.nextNode = _firstChild;
_firstChild = tween;
tween.prevNode = null;
}
public function remove(tween:TweenCore, skipDisable:Boolean=false):void{
if (tween.gc){
return;
};
if (!skipDisable){
tween.setEnabled(false, true);
};
if (tween.nextNode){
tween.nextNode.prevNode = tween.prevNode;
} else {
if (_lastChild == tween){
_lastChild = tween.prevNode;
};
};
if (tween.prevNode){
tween.prevNode.nextNode = tween.nextNode;
} else {
if (_firstChild == tween){
_firstChild = tween.nextNode;
};
};
}
public function get rawTime():Number{
return (this.cachedTotalTime);
}
}
}//package com.greensock.core
Section 50
//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 timeline:SimpleTimeline;
public var data;
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.13;
protected static var _classInitted:Boolean;
public function TweenCore(duration:Number=0, vars:Object=null){
super();
this.vars = ((vars) || ({}));
this.cachedDuration = (this.cachedTotalDuration = ((duration) || (0)));
_delay = ((this.vars.delay) || (0));
this.cachedTimeScale = ((this.vars.timeScale) || (1));
this.active = Boolean((((((duration == 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 tl:SimpleTimeline = ((this.vars.timeline is SimpleTimeline)) ? this.vars.timeline : (this.vars.useFrames) ? TweenLite.rootFramesTimeline : TweenLite.rootTimeline;
this.cachedStartTime = (tl.cachedTotalTime + _delay);
tl.addChild(this);
if (this.vars.reversed){
this.cachedReversed = true;
};
if (this.vars.paused){
this.paused = true;
};
}
public function renderTime(time:Number, suppressEvents:Boolean=false, force:Boolean=false):void{
}
public function get delay():Number{
return (_delay);
}
public function get duration():Number{
return (this.cachedDuration);
}
public function restart(includeDelay:Boolean=false, suppressEvents:Boolean=true):void{
this.reversed = false;
this.paused = false;
this.setTotalTime((includeDelay) ? -(_delay) : 0, suppressEvents);
}
public function set reversed(b:Boolean):void{
if (b != this.cachedReversed){
this.cachedReversed = b;
setTotalTime(this.cachedTotalTime, true);
};
}
public function set startTime(n:Number):void{
var adjust:Boolean = Boolean(((!((this.timeline == null))) && (((!((n == this.cachedStartTime))) || (this.gc)))));
this.cachedStartTime = n;
if (adjust){
this.timeline.addChild(this);
};
}
public function set delay(n:Number):void{
this.startTime = (this.startTime + (n - _delay));
_delay = n;
}
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(n:Number):void{
this.cachedDuration = (this.cachedTotalDuration = n);
setDirtyCache(false);
}
public function complete(skipRender:Boolean=false, suppressEvents:Boolean=false):void{
if (!skipRender){
renderTime(this.cachedTotalDuration, suppressEvents, false);
return;
};
if (this.timeline.autoRemoveChildren){
this.setEnabled(false, false);
} else {
this.active = false;
};
if (!suppressEvents){
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 invalidate():void{
}
public function get totalTime():Number{
return (this.cachedTotalTime);
}
public function get reversed():Boolean{
return (this.cachedReversed);
}
public function get startTime():Number{
return (this.cachedStartTime);
}
public function set currentTime(n:Number):void{
setTotalTime(n, false);
}
protected function setDirtyCache(includeSelf:Boolean=true):void{
var tween:TweenCore = (includeSelf) ? this : this.timeline;
while (tween) {
tween.cacheIsDirty = true;
tween = tween.timeline;
};
}
public function reverse(forceResume:Boolean=true):void{
this.reversed = true;
if (forceResume){
this.paused = false;
} else {
if (this.gc){
this.setEnabled(true, false);
};
};
}
public function set paused(b:Boolean):void{
if (((!((b == this.cachedPaused))) && (this.timeline))){
if (b){
_pauseTime = this.timeline.rawTime;
} else {
this.cachedStartTime = (this.cachedStartTime + (this.timeline.rawTime - _pauseTime));
_pauseTime = NaN;
setDirtyCache(false);
};
this.cachedPaused = b;
this.active = Boolean(((((!(this.cachedPaused)) && ((this.cachedTotalTime > 0)))) && ((this.cachedTotalTime < this.cachedTotalDuration))));
};
if (((!(b)) && (this.gc))){
this.setTotalTime(this.cachedTotalTime, false);
this.setEnabled(true, false);
};
}
public function kill():void{
setEnabled(false, false);
}
public function set totalTime(n:Number):void{
setTotalTime(n, false);
}
public function get currentTime():Number{
return (this.cachedTime);
}
protected function setTotalTime(time:Number, suppressEvents:Boolean=false):void{
var tlTime:Number;
var dur:Number;
if (this.timeline){
tlTime = (((_pauseTime) || ((_pauseTime == 0)))) ? _pauseTime : this.timeline.cachedTotalTime;
if (this.cachedReversed){
dur = (this.cacheIsDirty) ? this.totalDuration : this.cachedTotalDuration;
this.cachedStartTime = (tlTime - ((dur - time) / this.cachedTimeScale));
} else {
this.cachedStartTime = (tlTime - (time / this.cachedTimeScale));
};
if (!this.timeline.cacheIsDirty){
setDirtyCache(false);
};
if (this.cachedTotalTime != time){
renderTime(time, suppressEvents, false);
};
};
}
public function pause():void{
this.paused = true;
}
public function set totalDuration(n:Number):void{
this.duration = n;
}
public function get totalDuration():Number{
return (this.cachedTotalDuration);
}
public function setEnabled(enabled:Boolean, ignoreTimeline:Boolean=false):Boolean{
if (enabled){
this.active = Boolean(((((!(this.cachedPaused)) && ((this.cachedTotalTime > 0)))) && ((this.cachedTotalTime < this.cachedTotalDuration))));
if (((!(ignoreTimeline)) && (this.gc))){
this.timeline.addChild(this);
};
} else {
this.active = false;
if (!ignoreTimeline){
this.timeline.remove(this, true);
};
};
this.gc = !(enabled);
return (false);
}
}
}//package com.greensock.core
Section 51
//Elastic (com.greensock.easing.Elastic)
package com.greensock.easing {
public class Elastic {
private static const _2PI:Number = (Math.PI * 2);
public function Elastic(){
super();
}
public static function easeIn(t:Number, b:Number, c:Number, d:Number, a:Number=0, p:Number=0):Number{
var s:Number;
if (t == 0){
return (b);
};
t = (t / d);
if (t == 1){
return ((b + c));
};
if (!p){
p = (d * 0.3);
};
if (((((!(a)) || ((((c > 0)) && ((a < c)))))) || ((((c < 0)) && ((a < -(c))))))){
a = c;
s = (p / 4);
} else {
s = ((p / _2PI) * Math.asin((c / a)));
};
--t;
return ((-(((a * Math.pow(2, (10 * t))) * Math.sin(((((t * d) - s) * _2PI) / p)))) + b));
}
public static function easeInOut(t:Number, b:Number, c:Number, d:Number, a:Number=0, p:Number=0):Number{
var s:Number;
if (t == 0){
return (b);
};
t = (t / (d * 0.5));
if (t == 2){
return ((b + c));
};
if (!p){
p = (d * (0.3 * 1.5));
};
if (((((!(a)) || ((((c > 0)) && ((a < c)))))) || ((((c < 0)) && ((a < -(c))))))){
a = c;
s = (p / 4);
} else {
s = ((p / _2PI) * Math.asin((c / a)));
};
if (t < 1){
--t;
return (((-0.5 * ((a * Math.pow(2, (10 * t))) * Math.sin(((((t * d) - s) * _2PI) / p)))) + b));
};
--t;
return ((((((a * Math.pow(2, (-10 * t))) * Math.sin(((((t * d) - s) * _2PI) / p))) * 0.5) + c) + b));
}
public static function easeOut(t:Number, b:Number, c:Number, d:Number, a:Number=0, p:Number=0):Number{
var s:Number;
if (t == 0){
return (b);
};
t = (t / d);
if (t == 1){
return ((b + c));
};
if (!p){
p = (d * 0.3);
};
if (((((!(a)) || ((((c > 0)) && ((a < c)))))) || ((((c < 0)) && ((a < -(c))))))){
a = c;
s = (p / 4);
} else {
s = ((p / _2PI) * Math.asin((c / a)));
};
return (((((a * Math.pow(2, (-10 * t))) * Math.sin(((((t * d) - s) * _2PI) / p))) + c) + b));
}
}
}//package com.greensock.easing
Section 52
//TweenLite (com.greensock.TweenLite)
package com.greensock {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import com.greensock.core.*;
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.32;
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(target:Object, duration:Number, vars:Object){
var sibling:TweenLite;
super(duration, vars);
this.target = target;
if ((((this.target is TweenCore)) && (("timeScale" in this.vars)))){
this.cachedTimeScale = 1;
};
propTweenLookup = {};
_ease = defaultEase;
_overwrite = (((!((Number(vars.overwrite) > -1))) || (((!(overwriteManager.enabled)) && ((vars.overwrite > 1)))))) ? overwriteManager.mode : int(vars.overwrite);
var a:Array = masterList[target];
if (!a){
masterList[target] = [this];
} else {
if (_overwrite == 1){
for each (sibling in a) {
if (!sibling.gc){
sibling.setEnabled(false, false);
};
};
masterList[target] = [this];
} else {
a[a.length] = this;
};
};
if (((this.active) || (this.vars.immediateRender))){
renderTime(0, false, true);
};
}
protected function easeProxy(t:Number, b:Number, c:Number, d:Number):Number{
return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams)));
}
override public function renderTime(time:Number, suppressEvents:Boolean=false, force:Boolean=false):void{
var isComplete:Boolean;
var prevTime:Number = this.cachedTime;
if (time >= this.cachedDuration){
this.cachedTotalTime = (this.cachedTime = this.cachedDuration);
this.ratio = 1;
isComplete = true;
if (this.cachedDuration == 0){
if ((((((time == 0)) || ((_rawPrevTime < 0)))) && (!((_rawPrevTime == time))))){
force = true;
};
_rawPrevTime = time;
};
} else {
if (time <= 0){
this.cachedTotalTime = (this.cachedTime = (this.ratio = 0));
if (time < 0){
this.active = false;
if (this.cachedDuration == 0){
if (_rawPrevTime > 0){
force = true;
isComplete = true;
};
_rawPrevTime = time;
};
};
if (((this.cachedReversed) && (!((prevTime == 0))))){
isComplete = true;
};
} else {
this.cachedTotalTime = (this.cachedTime = time);
this.ratio = _ease(time, 0, 1, this.cachedDuration);
};
};
if ((((this.cachedTime == prevTime)) && (!(force)))){
return;
};
if (!this.initted){
init();
if (((!(isComplete)) && (this.cachedTime))){
this.ratio = _ease(this.cachedTime, 0, 1, this.cachedDuration);
};
};
if (((!(this.active)) && (!(this.cachedPaused)))){
this.active = true;
};
if ((((((((prevTime == 0)) && (this.vars.onStart))) && (!((this.cachedTime == 0))))) && (!(suppressEvents)))){
this.vars.onStart.apply(null, this.vars.onStartParams);
};
var pt:PropTween = this.cachedPT1;
while (pt) {
pt.target[pt.property] = (pt.start + (this.ratio * pt.change));
pt = pt.nextNode;
};
if (((_hasUpdate) && (!(suppressEvents)))){
this.vars.onUpdate.apply(null, this.vars.onUpdateParams);
};
if (isComplete){
if (((_hasPlugins) && (this.cachedPT1))){
onPluginEvent("onComplete", this);
};
complete(true, suppressEvents);
};
}
override public function setEnabled(enabled:Boolean, ignoreTimeline:Boolean=false):Boolean{
var a:Array;
if (enabled){
a = TweenLite.masterList[this.target];
if (!a){
TweenLite.masterList[this.target] = [this];
} else {
a[a.length] = this;
};
};
super.setEnabled(enabled, ignoreTimeline);
if (((_notifyPluginsOfEnabled) && (this.cachedPT1))){
return (onPluginEvent((enabled) ? "onEnable" : "onDisable", this));
};
return (false);
}
protected function init():void{
var p:String;
var i:int;
var plugin:*;
var prioritize:Boolean;
var siblings:Array;
var pt: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 (p in this.vars) {
if ((((p in _reservedProps)) && (!((((p == "timeScale")) && ((this.target is TweenCore))))))){
} else {
if ((((p in plugins)) && (new ((plugins[p] as Class)).onInitTween(this.target, this.vars[p], this)))){
this.cachedPT1 = new PropTween(plugin, "changeFactor", 0, 1, ((plugin.overwriteProps.length)==1) ? plugin.overwriteProps[0] : "_MULTIPLE_", true, this.cachedPT1);
if (this.cachedPT1.name == "_MULTIPLE_"){
i = plugin.overwriteProps.length;
while (--i > -1) {
this.propTweenLookup[plugin.overwriteProps[i]] = this.cachedPT1;
};
} else {
this.propTweenLookup[this.cachedPT1.name] = this.cachedPT1;
};
if (plugin.priority){
this.cachedPT1.priority = plugin.priority;
prioritize = true;
};
if (((plugin.onDisable) || (plugin.onEnable))){
_notifyPluginsOfEnabled = true;
};
_hasPlugins = true;
} else {
this.cachedPT1 = new PropTween(this.target, p, Number(this.target[p]), ((typeof(this.vars[p]))=="number") ? (Number(this.vars[p]) - this.target[p]) : Number(this.vars[p]), p, false, this.cachedPT1);
this.propTweenLookup[p] = this.cachedPT1;
};
};
};
if (prioritize){
onPluginEvent("onInit", this);
};
if (this.vars.runBackwards){
pt = this.cachedPT1;
while (pt) {
pt.start = (pt.start + pt.change);
pt.change = -(pt.change);
pt = pt.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]))) && ((siblings.length > 1)))){
if (overwriteManager.manageOverwrites(this, this.propTweenLookup, siblings, _overwrite)){
init();
};
};
this.initted = true;
}
public function killVars(vars:Object, permanent:Boolean=true):Boolean{
var p:String;
var pt:PropTween;
var changed:Boolean;
if (_overwrittenProps == null){
_overwrittenProps = {};
};
for (p in vars) {
if ((p in propTweenLookup)){
pt = propTweenLookup[p];
if (((pt.isPlugin) && ((pt.name == "_MULTIPLE_")))){
pt.target.killProps(vars);
if (pt.target.overwriteProps.length == 0){
pt.name = "";
};
};
if (pt.name != "_MULTIPLE_"){
if (pt.nextNode){
pt.nextNode.prevNode = pt.prevNode;
};
if (pt.prevNode){
pt.prevNode.nextNode = pt.nextNode;
} else {
if (this.cachedPT1 == pt){
this.cachedPT1 = pt.nextNode;
};
};
if (((pt.isPlugin) && (pt.target.onDisable))){
pt.target.onDisable();
if (pt.target.activeDisable){
changed = true;
};
};
delete propTweenLookup[p];
};
};
if (((permanent) && (!((vars == _overwrittenProps))))){
_overwrittenProps[p] = 1;
};
};
return (changed);
}
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(target:Object, complete:Boolean=false, vars:Object=null):void{
var a:Array;
var i:int;
var tween:TweenLite;
if ((target in masterList)){
a = masterList[target];
i = a.length;
while (--i > -1) {
tween = a[i];
if (!tween.gc){
if (complete){
tween.complete(false, false);
};
if (vars != null){
tween.killVars(vars);
};
if ((((vars == null)) || ((((tween.cachedPT1 == null)) && (tween.initted))))){
tween.setEnabled(false, false);
};
};
};
if (vars == null){
delete masterList[target];
};
};
}
public static function from(target:Object, duration:Number, vars:Object):TweenLite{
vars.runBackwards = true;
if (!("immediateRender" in vars)){
vars.immediateRender = true;
};
return (new TweenLite(target, duration, vars));
}
protected static function easeOut(t:Number, b:Number, c:Number, d:Number):Number{
t = (1 - (t / d));
return ((1 - (t * t)));
}
public static function delayedCall(delay:Number, onComplete:Function, onCompleteParams:Array=null, useFrames:Boolean=false):TweenLite{
return (new TweenLite(onComplete, 0, {delay:delay, onComplete:onComplete, onCompleteParams:onCompleteParams, immediateRender:false, useFrames:useFrames, overwrite:0}));
}
protected static function updateAll(e:Event=null):void{
var ml:Dictionary;
var tgt:Object;
var a:Array;
var i: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)){
ml = masterList;
for (tgt in ml) {
a = ml[tgt];
i = a.length;
while (--i > -1) {
if (TweenLite(a[i]).gc){
a.splice(i, 1);
};
};
if (a.length == 0){
delete ml[tgt];
};
};
};
}
public static function to(target:Object, duration:Number, vars:Object):TweenLite{
return (new TweenLite(target, duration, vars));
}
}
}//package com.greensock
Section 53
//Global (com.inruntime.utils.Global)
package com.inruntime.utils {
import flash.events.*;
import flash.utils.*;
public dynamic class Global extends Proxy implements IEventDispatcher {
private var globalKeychain:GlobalHashMap;
private var globalIncrement:int;// = 1
private var globalRepository:GlobalHashMap;
private var dispatcher:EventDispatcher;
private static var allowInstantiation:Boolean = false;
private static var instance:Global = null;
public function Global(useWeakReferences:Boolean=true){
super();
if (!allowInstantiation){
throw (new Error("Error: Instantiation failed: Use Global.getInstance() instead of new Global()."));
};
globalRepository = new GlobalHashMap(useWeakReferences);
globalKeychain = new GlobalHashMap(useWeakReferences);
dispatcher = new EventDispatcher(this);
}
public function containsKey(name:String):Boolean{
var retval:Boolean = globalRepository.containsKey(name);
return (retval);
}
public function remove(name:String):void{
globalRepository.remove(name);
globalKeychain.remove(name);
}
public function willTrigger(type:String):Boolean{
return (dispatcher.willTrigger(type));
}
public function take(name){
return (globalRepository.getValue(name));
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(name){
return (globalRepository.getValue(name));
}
public function put(name:String, value):void{
globalRepository.put(name, value);
}
public function getId(name:String):int{
return (globalKeychain.getValue(name));
}
public function containsValue(value):Boolean{
var retval:Boolean = globalRepository.containsValue(value);
return (retval);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function callProperty(methodName, ... _args){
var result:*;
switch (methodName.toString()){
default:
result = globalRepository.getValue(methodName).apply(globalRepository, _args);
break;
};
return (result);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextNameIndex(index:int):int{
if (index < (globalIncrement - 1)){
if (containsId((index + 1))){
return ((index + 1));
};
return (nextNameIndex((index + 1)));
//unresolved jump
};
return (0);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(name, value):void{
var oldValue:* = globalRepository.getValue(name);
if (!oldValue){
globalKeychain.put(name, globalIncrement.toString());
globalIncrement++;
};
globalRepository.put(name, value);
if (oldValue !== value){
dispatchEvent(new GlobalEvent(GlobalEvent.PROPERTY_CHANGED, name));
};
}
public function removeEventListener(type:String, listener:Function, useCapture:Boolean=false):void{
dispatcher.removeEventListener(type, listener, useCapture);
}
public function containsId(id:int):Boolean{
var retval:Boolean = globalKeychain.containsValue(id);
return (retval);
}
public function clear():void{
globalRepository.clear();
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextName(index:int):String{
return (getKey(index));
}
public function dispatchEvent(evt:Event):Boolean{
return (dispatcher.dispatchEvent(evt));
}
public function addEventListener(type:String, listener:Function, useCapture:Boolean=false, priority:int=0, useWeakReference:Boolean=false):void{
dispatcher.addEventListener(type, listener, useCapture, priority);
}
public function get length():int{
var retval:int = globalRepository.size();
return (retval);
}
public function getKey(id:int):String{
return (globalKeychain.getKey(id));
}
public function toString():String{
var key:*;
var temp:Array = new Array();
for (key in globalRepository) {
if (globalRepository[key] != null){
temp.push((((("{" + key) + ":") + globalRepository[key]) + "}"));
};
};
return (temp.join(","));
}
public function hasEventListener(type:String):Boolean{
return (dispatcher.hasEventListener(type));
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextValue(index:int){
var prop:String = getKey(index);
return (globalRepository.getValue(prop));
}
public static function getInstance(useWeakReferences:Boolean=true):Global{
if (Global.instance == null){
Global.allowInstantiation = true;
Global.instance = new Global(useWeakReferences);
Global.allowInstantiation = false;
};
return (Global.instance);
}
}
}//package com.inruntime.utils
import flash.utils.*;
dynamic class GlobalHashMap extends Dictionary {
private function GlobalHashMap(useWeakReferences:Boolean=true){
super(useWeakReferences);
}
public function containsKey(key:String):Boolean{
return (!((this[key] == null)));
}
public function size():int{
var prop:String;
var size:int;
for (prop in this) {
if (this[prop] != null){
size++;
};
};
return (size);
}
public function containsValue(value):Boolean{
var prop:String;
for (prop in this) {
if (this[prop] == value){
return (true);
};
};
return (false);
}
public function remove(key:String):void{
this[key] = null;
}
public function getKey(value):String{
var prop:String;
for (prop in this) {
if (this[prop] == value){
return (prop);
};
};
return (null);
}
public function isEmpty():Boolean{
var prop:String;
var size:int;
for (prop in this) {
if (this[prop] != null){
size++;
};
};
return ((size <= 0));
}
public function getValue(key:String){
if (this[key] != null){
return (this[key]);
};
}
public function clear():void{
var prop:String;
for (prop in this) {
this[prop] = null;
};
}
public function put(key:String, value):void{
this[key] = value;
}
}
Section 54
//GlobalEvent (com.inruntime.utils.GlobalEvent)
package com.inruntime.utils {
import flash.events.*;
public class GlobalEvent extends Event {
public var property;
public static const PROPERTY_CHANGED:String = "globalPropertyChanged";
public function GlobalEvent(type:String, property, bubbles:Boolean=false, cancelable:Boolean=false){
this.property = property;
super(type, bubbles, cancelable);
}
override public function clone():Event{
return (new GlobalEvent(type, property, bubbles, cancelable));
}
}
}//package com.inruntime.utils
Section 55
//KeyObject (com.senocular.utils.KeyObject)
package com.senocular.utils {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.ui.*;
public dynamic class KeyObject extends Proxy {
private static var keysDown:Object;
private static var stage:Stage;
public function KeyObject(stage:Stage){
super();
construct(stage);
}
private function keyReleased(evt:KeyboardEvent):void{
delete keysDown[evt.keyCode];
}
public function deconstruct():void{
stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
stage.removeEventListener(KeyboardEvent.KEY_UP, keyReleased);
keysDown = new Object();
KeyObject.stage = null;
}
public function construct(stage:Stage):void{
KeyObject.stage = stage;
keysDown = new Object();
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
stage.addEventListener(KeyboardEvent.KEY_UP, keyReleased);
}
private function keyPressed(evt:KeyboardEvent):void{
keysDown[evt.keyCode] = true;
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(name){
return (((name in Keyboard)) ? Keyboard[name] : -1);
}
public function isDown(keyCode:uint):Boolean{
return (Boolean((keyCode in keysDown)));
}
}
}//package com.senocular.utils
Section 56
//MochiAd (mochi.as3.MochiAd)
package mochi.as3 {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.net.*;
import flash.system.*;
public class MochiAd {
public function MochiAd(){
super();
}
public static function getVersion():String{
return (MochiServices.getVersion());
}
public static function showClickAwayAd(options:Object):void{
var clip:Object;
var mc:MovieClip;
var chk:MovieClip;
var options = options;
var DEFAULTS:Object = {ad_timeout:5500, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{
}, ad_finished:function ():void{
}, ad_loaded:function (width:Number, height:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
var ad_timeout:Number = options.ad_timeout;
delete options.ad_timeout;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
options.ad_finished();
};
var wh:Array = MochiAd._getRes(options, clip);
var w:Number = wh[0];
var h:Number = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
mc.unloadAd = function ():void{
MochiAd.unload(clip);
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.rpc = function (callbackID:Number, arg:Object):void{
MochiAd.rpc(clip, callbackID, arg);
};
chk["onEnterFrame"] = function ():void{
var total:Number;
if (!this.parent){
delete this.onEnterFrame;
return;
};
var ad_clip:Object = this.parent._mochiad_ctr;
var elapsed:Number = (getTimer() - this.started);
var finished:Boolean;
if (!chk.showing){
total = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (total > 0){
chk.showing = true;
finished = true;
chk.started = getTimer();
} else {
if (elapsed > chk.ad_timeout){
options.ad_failed();
finished = true;
};
};
};
if (this.root == null){
finished = true;
};
if (finished){
delete this.onEnterFrame;
};
};
doOnEnterFrame(chk);
}
public static function _isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function _allowDomains(server:String):String{
var hostname:String = server.split("/")[2].split(":")[0];
if (Security.sandboxType == "application"){
return (hostname);
};
Security.allowDomain("*");
Security.allowDomain(hostname);
Security.allowInsecureDomain("*");
Security.allowInsecureDomain(hostname);
return (hostname);
}
public static function unload(clip:Object):Boolean{
if (((clip.clip) && (clip.clip._mochiad))){
clip = clip.clip;
};
if (clip.origFrameRate != undefined){
clip.stage.frameRate = clip.origFrameRate;
};
if (!clip._mochiad){
return (false);
};
if (clip._mochiad._containerLCName != undefined){
clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"unload"});
};
if (clip._mochiad.onUnload){
clip._mochiad.onUnload();
};
delete clip._mochiad_loaded;
delete clip._mochiad;
return (true);
}
public static function showInterLevelAd(options:Object):void{
var clip:Object;
var mc:MovieClip;
var chk:MovieClip;
var options = options;
var DEFAULTS:Object = {ad_timeout:5500, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (width:Number, height:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
var ad_msec:Number = 11000;
var ad_timeout:Number = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time:Number = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
options.ad_finished();
};
var wh:Array = MochiAd._getRes(options, clip);
var w:Number = wh[0];
var h:Number = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
var p:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (p > 0){
this.parent.alpha = (p * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
mc.unloadAd = function ():void{
MochiAd.unload(clip);
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.adjustProgress = function (msec:Number):void{
var _chk:Object = mc._mochiad_wait;
_chk.server_control = true;
_chk.showing = true;
_chk.started = getTimer();
_chk.ad_msec = (msec - 250);
};
mc.rpc = function (callbackID:Number, arg:Object):void{
MochiAd.rpc(clip, callbackID, arg);
};
chk["onEnterFrame"] = function ():void{
var total:Number;
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
var ad_clip:Object = this.parent._mochiad_ctr;
var elapsed:Number = (getTimer() - this.started);
var finished:Boolean;
if (!chk.showing){
total = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (total > 0){
chk.showing = true;
chk.started = getTimer();
MochiAd.adShowing(clip);
} else {
if (elapsed > chk.ad_timeout){
options.ad_failed();
finished = true;
};
};
};
if (elapsed > chk.ad_msec){
finished = true;
};
if (finished){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function _parseOptions(options:Object, defaults:Object):Object{
var k:String;
var pairs:Array;
var i:Number;
var kv:Array;
var optcopy:Object = {};
for (k in defaults) {
optcopy[k] = defaults[k];
};
if (options){
for (k in options) {
optcopy[k] = options[k];
};
};
if (optcopy.clip == undefined){
throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite."));
};
options = optcopy.clip.loaderInfo.parameters.mochiad_options;
if (options){
pairs = options.split("&");
i = 0;
while (i < pairs.length) {
kv = pairs[i].split("=");
optcopy[unescape(kv[0])] = unescape(kv[1]);
i++;
};
};
if (optcopy.id == "test"){
trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!");
};
return (optcopy);
}
public static function _cleanup(mc:Object):void{
var k:String;
var lc:LocalConnection;
var f:Function;
var mc = mc;
if (("lc" in mc)){
lc = mc.lc;
f = function ():void{
lc.client = null;
lc.close();
//unresolved jump
var _slot1 = e;
};
setTimeout(f, 0);
};
var idx:Number = DisplayObjectContainer(mc).numChildren;
while (idx > 0) {
idx = (idx - 1);
DisplayObjectContainer(mc).removeChildAt(idx);
};
for (k in mc) {
delete mc[k];
};
}
public static function load(options:Object):MovieClip{
var clip:Object;
var mc:MovieClip;
var k:String;
var server:String;
var hostname:String;
var lc:LocalConnection;
var name:String;
var loader:Loader;
var g:Function;
var req:URLRequest;
var v:Object;
var options = options;
var DEFAULTS:Object = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = MochiAd._parseOptions(options, DEFAULTS);
options.swfv = 9;
options.mav = MochiAd.getVersion();
clip = options.clip;
if (!(clip is DisplayObject)){
trace("Warning: Object passed as container clip not a descendant of the DisplayObject type");
return (null);
};
if (MovieClip(clip).stage == null){
trace("Warning: Container clip for ad is not attached to the stage");
return (null);
};
if (!MochiAd._isNetworkAvailable()){
return (null);
};
if (clip._mochiad_loaded){
return (null);
};
//unresolved jump
var _slot1 = e;
throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic."));
var depth:Number = options.depth;
delete options.depth;
mc = createEmptyMovieClip(clip, "_mochiad", depth);
var wh:Array = MochiAd._getRes(options, clip);
options.res = ((wh[0] + "x") + wh[1]);
options.server = (options.server + options.id);
delete options.id;
clip._mochiad_loaded = true;
if (clip.loaderInfo.loaderURL.indexOf("http") == 0){
options.as3_swf = clip.loaderInfo.loaderURL;
} else {
trace("[MochiAd] NOTE: Security Sandbox Violation errors below are normal");
};
var lv:URLVariables = new URLVariables();
for (k in options) {
v = options[k];
if (!(v is Function)){
lv[k] = v;
};
};
server = lv.server;
delete lv.server;
hostname = _allowDomains(server);
lc = new LocalConnection();
lc.client = mc;
name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_");
lc.allowDomain("*", "localhost");
lc.allowInsecureDomain("*", "localhost");
lc.connect(name);
mc.lc = lc;
mc.lcName = name;
lv.lc = name;
lv.st = getTimer();
mc.regContLC = function (lc_name:String):void{
mc._containerLCName = lc_name;
};
loader = new Loader();
g = function (ev:Object):void{
ev.target.removeEventListener(ev.type, arguments.callee);
MochiAd.unload(clip);
};
loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g);
req = new URLRequest(((server + ".swf?cacheBust=") + new Date().getTime()));
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (io:IOErrorEvent):void{
trace("[MochiAds] Blocked URL");
});
if (!options.skip){
loader.load(req);
};
mc.addChild(loader);
mc._mochiad_ctr = loader;
return (mc);
}
public static function runMethod(base:Object, methodName:String, argsArray:Array):Object{
var nameArray:Array = methodName.split(".");
var i:Number = 0;
while (i < (nameArray.length - 1)) {
if ((((base[nameArray[i]] == undefined)) || ((base[nameArray[i]] == null)))){
return (undefined);
};
base = base[nameArray[i]];
i++;
};
if (typeof(base[nameArray[i]]) == "function"){
return (base[nameArray[i]].apply(base, argsArray));
};
return (undefined);
}
public static function createEmptyMovieClip(parent:Object, name:String, depth:Number):MovieClip{
var mc:MovieClip = new MovieClip();
if (((false) && (depth))){
parent.addChildAt(mc, depth);
} else {
parent.addChild(mc);
};
parent[name] = mc;
mc["_name"] = name;
return (mc);
}
public static function _getRes(options:Object, clip:Object):Array{
var xy:Array;
var b:Object = clip.getBounds(clip.root);
var w:Number = 0;
var h:Number = 0;
if (typeof(options.res) != "undefined"){
xy = options.res.split("x");
w = parseFloat(xy[0]);
h = parseFloat(xy[1]);
} else {
w = (b.right - b.left);
h = (b.top - b.bottom);
};
if ((((w == 0)) || ((h == 0)))){
w = clip.stage.stageWidth;
h = clip.stage.stageHeight;
};
return ([w, h]);
}
public static function adShowing(mc:Object):void{
mc.origFrameRate = mc.stage.frameRate;
mc.stage.frameRate = 30;
}
public static function getValue(base:Object, objectName:String):Object{
var nameArray:Array = objectName.split(".");
var i:Number = 0;
while (i < (nameArray.length - 1)) {
if ((((base[nameArray[i]] == undefined)) || ((base[nameArray[i]] == null)))){
return (undefined);
};
base = base[nameArray[i]];
i++;
};
return (base[nameArray[i]]);
}
public static function rpc(clip:Object, callbackID:Number, arg:Object):void{
var _local4:Object;
var _local5:Object;
switch (arg.id){
case "setValue":
MochiAd.setValue(clip, arg.objectName, arg.value);
break;
case "getValue":
_local4 = MochiAd.getValue(clip, arg.objectName);
clip._mochiad.lc.send(clip._mochiad._containerLCName, "rpcResult", callbackID, _local4);
break;
case "runMethod":
_local5 = MochiAd.runMethod(clip, arg.method, arg.args);
clip._mochiad.lc.send(clip._mochiad._containerLCName, "rpcResult", callbackID, _local5);
break;
default:
trace(("[mochiads rpc] unknown rpc id: " + arg.id));
};
}
public static function setValue(base:Object, objectName:String, value:Object):void{
var nameArray:Array = objectName.split(".");
var i:Number = 0;
while (i < (nameArray.length - 1)) {
if ((((base[nameArray[i]] == undefined)) || ((base[nameArray[i]] == null)))){
return;
};
base = base[nameArray[i]];
i++;
};
base[nameArray[i]] = value;
}
public static function showPreGameAd(options:Object):void{
var clip:Object;
var mc:MovieClip;
var h:Number;
var chk:MovieClip;
var complete:Boolean;
var unloaded:Boolean;
var sendHostProgress:Boolean;
var fn:Function;
var r:MovieClip;
var options = options;
var DEFAULTS:Object = {ad_timeout:5500, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (width:Number, height:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}, ad_progress:function (percent:Number):void{
}, progress_override:function (_clip:Object):Number{
return (NaN);
}, bar_offset:0};
options = MochiAd._parseOptions(options, DEFAULTS);
if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){
options.ad_started();
fn = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
return;
};
clip = options.clip;
var ad_msec:Number = 11000;
var ad_timeout:Number = options.ad_timeout;
if (options.skip){
ad_timeout = 0;
};
delete options.ad_timeout;
var fadeout_time:Number = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
var fn:Function = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
};
var wh:Array = MochiAd._getRes(options, clip);
var w:Number = wh[0];
h = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.x = (w * -0.5);
chk.y = (h * -0.5);
var bar:MovieClip = createEmptyMovieClip(chk, "_mochiad_bar", 4);
if (options.no_progress_bar){
bar.visible = false;
delete options.no_progress_bar;
} else {
bar.x = (10 + options.bar_offset);
bar.y = (h - 20);
};
var bar_w:Number = ((w - bar.x) - 10);
var bar_color:Number = options.color;
delete options.color;
var bar_background:Number = options.background;
delete options.background;
var bar_outline:Number = options.outline;
delete options.outline;
var backing_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 1);
var backing:Object = backing_mc.graphics;
backing.beginFill(bar_background);
backing.moveTo(0, 0);
backing.lineTo(bar_w, 0);
backing.lineTo(bar_w, 10);
backing.lineTo(0, 10);
backing.lineTo(0, 0);
backing.endFill();
var inside_mc:MovieClip = createEmptyMovieClip(bar, "_inside", 2);
var inside:Object = inside_mc.graphics;
inside.beginFill(bar_color);
inside.moveTo(0, 0);
inside.lineTo(bar_w, 0);
inside.lineTo(bar_w, 10);
inside.lineTo(0, 10);
inside.lineTo(0, 0);
inside.endFill();
inside_mc.scaleX = 0;
var outline_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 3);
var outline:Object = outline_mc.graphics;
outline.lineStyle(0, bar_outline, 100);
outline.moveTo(0, 0);
outline.lineTo(bar_w, 0);
outline.lineTo(bar_w, 10);
outline.lineTo(0, 10);
outline.lineTo(0, 0);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
var p:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (p > 0){
this.parent.alpha = (p * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
complete = false;
unloaded = false;
var progress:Number = Math.min(1, options.progress_override(clip));
var f:Function = function (ev:Event):void{
ev.target.removeEventListener(ev.type, arguments.callee);
complete = true;
if (unloaded){
MochiAd.unload(clip);
};
};
if (!isNaN(progress)){
complete = (progress == 1);
} else {
if (clip.loaderInfo.bytesLoaded == clip.loaderInfo.bytesTotal){
complete = true;
} else {
if ((clip.root is MovieClip)){
r = (clip.root as MovieClip);
if (r.framesLoaded >= r.totalFrames){
complete = true;
} else {
clip.loaderInfo.addEventListener(Event.COMPLETE, f);
};
} else {
clip.loaderInfo.addEventListener(Event.COMPLETE, f);
};
};
};
mc.unloadAd = function ():void{
unloaded = true;
if (complete){
MochiAd.unload(clip);
};
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.adjustProgress = function (msec:Number):void{
var _chk:Object = mc._mochiad_wait;
_chk.server_control = true;
_chk.showing = true;
_chk.started = getTimer();
_chk.ad_msec = msec;
};
mc.rpc = function (callbackID:Number, arg:Object):void{
MochiAd.rpc(clip, callbackID, arg);
};
mc.rpcTestFn = function (s:String):Object{
trace(("[MOCHIAD rpcTestFn] " + s));
return (s);
};
sendHostProgress = false;
mc.sendHostLoadProgress = function (lc_name:String):void{
sendHostProgress = true;
};
chk["onEnterFrame"] = function ():void{
var total:Number;
if (((!(this.parent)) || (!(this.parent.parent)))){
delete this["onEnterFrame"];
return;
};
var _clip:Object = this.parent.parent.root;
var ad_clip:Object = this.parent._mochiad_ctr;
var elapsed:Number = (getTimer() - this.started);
var finished:Boolean;
var clip_total:Number = _clip.loaderInfo.bytesTotal;
var clip_loaded:Number = _clip.loaderInfo.bytesLoaded;
var clip_progress:Number = Math.min(1, options.progress_override(_clip));
if (clip_progress == 1){
complete = true;
};
if (complete){
clip_loaded = Math.max(1, clip_loaded);
clip_total = clip_loaded;
};
var clip_pcnt:Number = ((100 * clip_loaded) / clip_total);
if (!isNaN(clip_progress)){
clip_pcnt = (100 * clip_progress);
};
var ad_pcnt:Number = ((100 * elapsed) / chk.ad_msec);
var _inside:Object = this._mochiad_bar._inside;
var pcnt:Number = Math.min(100, Math.min(((clip_pcnt) || (0)), ad_pcnt));
pcnt = Math.max(this.last_pcnt, pcnt);
this.last_pcnt = pcnt;
_inside.scaleX = (pcnt * 0.01);
options.ad_progress(pcnt);
if (sendHostProgress){
clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:clip_pcnt});
if (clip_pcnt >= 100){
sendHostProgress = false;
};
};
if (!chk.showing){
total = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (total > 0){
chk.showing = true;
chk.started = getTimer();
MochiAd.adShowing(clip);
} else {
if ((((elapsed > chk.ad_timeout)) && ((clip_pcnt == 100)))){
options.ad_failed();
finished = true;
};
};
};
if (elapsed > chk.ad_msec){
finished = true;
};
if (((complete) && (finished))){
if (unloaded){
MochiAd.unload(_clip);
} else {
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
};
};
};
};
doOnEnterFrame(chk);
}
public static function showPreloaderAd(options:Object):void{
trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0");
MochiAd.showPreGameAd(options);
}
public static function showTimedAd(options:Object):void{
trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0");
MochiAd.showInterLevelAd(options);
}
public static function doOnEnterFrame(mc:MovieClip):void{
var mc = mc;
var f:Function = function (ev:Object):void{
if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){
mc.onEnterFrame();
} else {
ev.target.removeEventListener(ev.type, arguments.callee);
};
};
mc.addEventListener(Event.ENTER_FRAME, f);
}
}
}//package mochi.as3
Section 57
//MochiCoins (mochi.as3.MochiCoins)
package mochi.as3 {
public class MochiCoins {
public static const STORE_HIDE:String = "StoreHide";
public static const NO_USER:String = "NoUser";
public static const IO_ERROR:String = "IOError";
public static const ITEM_NEW:String = "ItemNew";
public static const ITEM_OWNED:String = "ItemOwned";
public static const STORE_ITEMS:String = "StoreItems";
public static const ERROR:String = "Error";
public static const STORE_SHOW:String = "StoreShow";
private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher();
public static var _inventory:MochiInventory;
public function MochiCoins(){
super();
}
public static function triggerEvent(eventType:String, args:Object):void{
_dispatcher.triggerEvent(eventType, args);
}
public static function removeEventListener(eventType:String, delegate:Function):void{
_dispatcher.removeEventListener(eventType, delegate);
}
public static function addEventListener(eventType:String, delegate:Function):void{
_dispatcher.addEventListener(eventType, delegate);
}
public static function getStoreItems():void{
MochiServices.send("coins_getStoreItems");
}
public static function get inventory():MochiInventory{
return (_inventory);
}
public static function showStore(options:Object=null):void{
MochiServices.setContainer();
MochiServices.bringToTop();
MochiServices.send("coins_showStore", {options:options}, null, null);
}
public static function requestFunding(properties:Object=null):void{
MochiServices.setContainer();
MochiServices.bringToTop();
MochiServices.send("social_requestFunding", properties);
}
public static function showItem(options:Object=null):void{
if (((!(options)) || (!((typeof(options.item) == "string"))))){
trace("ERROR: showItem call must pass an Object with an item key");
return;
};
MochiServices.setContainer();
MochiServices.bringToTop();
MochiServices.send("coins_showItem", {options:options}, null, null);
}
public static function getVersion():String{
return (MochiServices.getVersion());
}
public static function showVideo(options:Object=null):void{
if (((!(options)) || (!((typeof(options.item) == "string"))))){
trace("ERROR: showVideo call must pass an Object with an item key");
return;
};
MochiServices.setContainer();
MochiServices.bringToTop();
MochiServices.send("coins_showVideo", {options:options}, null, null);
}
addEventListener(MochiSocial.LOGGED_IN, function (args:Object):void{
_inventory = new MochiInventory();
});
addEventListener(MochiSocial.LOGGED_OUT, function (args:Object):void{
_inventory = null;
});
}
}//package mochi.as3
Section 58
//MochiDigits (mochi.as3.MochiDigits)
package mochi.as3 {
public final class MochiDigits {
private var Sibling:MochiDigits;
private var Fragment:Number;
private var Encoder:Number;
public function MochiDigits(digit:Number=0, index:uint=0):void{
super();
Encoder = 0;
setValue(digit, index);
}
public function reencode():void{
var newEncode:uint = int((2147483647 * Math.random()));
Fragment = (Fragment ^ (newEncode ^ Encoder));
Encoder = newEncode;
}
public function set value(v:Number):void{
setValue(v);
}
public function toString():String{
var s:String = String.fromCharCode((Fragment ^ Encoder));
if (Sibling != null){
s = (s + Sibling.toString());
};
return (s);
}
public function setValue(digit:Number=0, index:uint=0):void{
var s:String = digit.toString();
var _temp1 = index;
index = (index + 1);
Fragment = (s.charCodeAt(_temp1) ^ Encoder);
if (index < s.length){
Sibling = new MochiDigits(digit, index);
} else {
Sibling = null;
};
reencode();
}
public function get value():Number{
return (Number(this.toString()));
}
public function addValue(inc:Number):void{
value = (value + inc);
}
}
}//package mochi.as3
Section 59
//MochiEventDispatcher (mochi.as3.MochiEventDispatcher)
package mochi.as3 {
public class MochiEventDispatcher {
private var eventTable:Object;
public function MochiEventDispatcher():void{
super();
eventTable = {};
}
public function triggerEvent(event:String, args:Object):void{
var i:Object;
if (eventTable[event] == undefined){
return;
};
for (i in eventTable[event]) {
var _local6 = eventTable[event];
_local6[i](args);
};
}
public function removeEventListener(event:String, delegate:Function):void{
var s:Object;
if (eventTable[event] == undefined){
eventTable[event] = [];
return;
};
for (s in eventTable[event]) {
if (eventTable[event][s] != delegate){
} else {
eventTable[event].splice(Number(s), 1);
};
};
}
public function addEventListener(event:String, delegate:Function):void{
removeEventListener(event, delegate);
eventTable[event].push(delegate);
}
}
}//package mochi.as3
Section 60
//MochiEvents (mochi.as3.MochiEvents)
package mochi.as3 {
import flash.display.*;
public class MochiEvents {
public static const ALIGN_BOTTOM_LEFT:String = "ALIGN_BL";
public static const FORMAT_LONG:String = "LongForm";
public static const ALIGN_BOTTOM:String = "ALIGN_B";
public static const ACHIEVEMENT_RECEIVED:String = "AchievementReceived";
public static const FORMAT_SHORT:String = "ShortForm";
public static const ALIGN_TOP_RIGHT:String = "ALIGN_TR";
public static const ALIGN_BOTTOM_RIGHT:String = "ALIGN_BR";
public static const ALIGN_TOP:String = "ALIGN_T";
public static const ALIGN_LEFT:String = "ALIGN_L";
public static const ALIGN_RIGHT:String = "ALIGN_R";
public static const ALIGN_TOP_LEFT:String = "ALIGN_TL";
public static const ALIGN_CENTER:String = "ALIGN_C";
private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher();
private static var gameStart:Number;
private static var levelStart:Number;
public function MochiEvents(){
super();
}
public static function endPlay():void{
MochiServices.send("events_clearRoundID", null, null, null);
}
public static function addEventListener(eventType:String, delegate:Function):void{
_dispatcher.addEventListener(eventType, delegate);
}
public static function trackEvent(tag:String, value=null):void{
MochiServices.send("events_trackEvent", {tag:tag, value:value}, null, null);
}
public static function removeEventListener(eventType:String, delegate:Function):void{
_dispatcher.removeEventListener(eventType, delegate);
}
public static function startSession(achievementID:String):void{
MochiServices.send("events_beginSession", {achievementID:achievementID}, null, null);
}
public static function triggerEvent(eventType:String, args:Object):void{
_dispatcher.triggerEvent(eventType, args);
}
public static function setNotifications(clip:MovieClip, style:Object):void{
var s:Object;
var args:Object = {};
for (s in style) {
args[s] = style[s];
};
args.clip = clip;
MochiServices.send("events_setNotifications", args, null, null);
}
public static function getVersion():String{
return (MochiServices.getVersion());
}
public static function startPlay(tag:String="gameplay"):void{
MochiServices.send("events_setRoundID", {tag:String(tag)}, null, null);
}
}
}//package mochi.as3
Section 61
//MochiInventory (mochi.as3.MochiInventory)
package mochi.as3 {
import flash.events.*;
import flash.utils.*;
public dynamic class MochiInventory extends Proxy {
private var _timer:Timer;
private var _names:Array;
private var _syncID:Number;
private var _consumableProperties:Object;
private var _storeSync:Object;
private var _outstandingID:Number;
private var _syncPending:Boolean;
public static const READY:String = "InvReady";
public static const ERROR:String = "Error";
public static const IO_ERROR:String = "IoError";
private static const KEY_SALT:String = " syncMaint";
public static const WRITTEN:String = "InvWritten";
public static const NOT_READY:String = "InvNotReady";
public static const VALUE_ERROR:String = "InvValueError";
private static const CONSUMER_KEY:String = "MochiConsumables";
private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher();
public function MochiInventory():void{
super();
MochiCoins.addEventListener(MochiCoins.ITEM_OWNED, itemOwned);
MochiCoins.addEventListener(MochiCoins.ITEM_NEW, newItems);
MochiSocial.addEventListener(MochiSocial.LOGGED_IN, loggedIn);
MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, loggedOut);
_storeSync = new Object();
_syncPending = false;
_outstandingID = 0;
_syncID = 0;
_timer = new Timer(1000);
_timer.addEventListener(TimerEvent.TIMER, sync);
_timer.start();
if (MochiSocial.loggedIn){
loggedIn();
} else {
loggedOut();
};
}
private function newItems(event:Object):void{
if (!this[(event.id + KEY_SALT)]){
this[(event.id + KEY_SALT)] = 0;
};
if (!this[event.id]){
this[event.id] = 0;
};
this[(event.id + KEY_SALT)] = (this[(event.id + KEY_SALT)] + event.count);
this[event.id] = (this[event.id] + event.count);
if (((event.privateProperties) && (event.privateProperties.consumable))){
if (!this[event.privateProperties.tag]){
this[event.privateProperties.tag] = 0;
};
this[event.privateProperties.tag] = (this[event.privateProperties.tag] + (event.privateProperties.inc * event.count));
};
}
public function release():void{
MochiCoins.removeEventListener(MochiCoins.ITEM_NEW, newItems);
MochiSocial.removeEventListener(MochiSocial.LOGGED_IN, loggedIn);
MochiSocial.removeEventListener(MochiSocial.LOGGED_OUT, loggedOut);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(name){
if (_consumableProperties == null){
triggerEvent(ERROR, {type:NOT_READY});
return (-1);
};
if (_consumableProperties[name]){
return (MochiDigits(_consumableProperties[name]).value);
};
return (undefined);
}
private function loggedIn(args:Object=null):void{
MochiUserData.get(CONSUMER_KEY, getConsumableBag);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function hasProperty(name):Boolean{
if (_consumableProperties == null){
triggerEvent(ERROR, {type:NOT_READY});
return (false);
};
if (_consumableProperties[name] == undefined){
return (false);
};
return (true);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextNameIndex(index:int):int{
return (((index)>=_names.length) ? 0 : (index + 1));
}
private function putConsumableBag(userData:MochiUserData):void{
_syncPending = false;
if (userData.error){
triggerEvent(ERROR, {type:IO_ERROR, error:userData.error});
_outstandingID = -1;
};
triggerEvent(WRITTEN, {});
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(name, value):void{
var d:MochiDigits;
if (_consumableProperties == null){
triggerEvent(ERROR, {type:NOT_READY});
return;
};
if (!(value is Number)){
triggerEvent(ERROR, {type:VALUE_ERROR, error:"Invalid type", arg:value});
return;
};
if (_consumableProperties[name]){
d = MochiDigits(_consumableProperties[name]);
if (d.value == value){
return;
};
d.value = value;
} else {
_names.push(name);
_consumableProperties[name] = new MochiDigits(value);
};
_syncID++;
}
private function itemOwned(event:Object):void{
_storeSync[event.id] = {properties:event.properties, count:event.count};
}
private function sync(e:Event=null):void{
var key:String;
if (((_syncPending) || ((_syncID == _outstandingID)))){
return;
};
_outstandingID = _syncID;
var output:Object = {};
for (key in _consumableProperties) {
output[key] = MochiDigits(_consumableProperties[key]).value;
};
MochiUserData.put(CONSUMER_KEY, output, putConsumableBag);
_syncPending = true;
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextName(index:int):String{
return (_names[(index - 1)]);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function deleteProperty(name):Boolean{
if (!_consumableProperties[name]){
return (false);
};
_names.splice(_names.indexOf(name), 1);
delete _consumableProperties[name];
return (true);
}
private function getConsumableBag(userData:MochiUserData):void{
var key:String;
var unsynced:Number;
if (userData.error){
triggerEvent(ERROR, {type:IO_ERROR, error:userData.error});
return;
};
_consumableProperties = {};
_names = new Array();
if (userData.data){
for (key in userData.data) {
_names.push(key);
_consumableProperties[key] = new MochiDigits(userData.data[key]);
};
};
for (key in _storeSync) {
unsynced = _storeSync[key].count;
if (_consumableProperties[(key + KEY_SALT)]){
unsynced = (unsynced - _consumableProperties[(key + KEY_SALT)].value);
};
if (unsynced == 0){
} else {
newItems({id:key, count:unsynced, properties:_storeSync[key].properties});
};
};
triggerEvent(READY, {});
}
private function loggedOut(args:Object=null):void{
_consumableProperties = null;
}
public static function triggerEvent(eventType:String, args:Object):void{
_dispatcher.triggerEvent(eventType, args);
}
public static function removeEventListener(eventType:String, delegate:Function):void{
_dispatcher.removeEventListener(eventType, delegate);
}
public static function addEventListener(eventType:String, delegate:Function):void{
_dispatcher.addEventListener(eventType, delegate);
}
}
}//package mochi.as3
Section 62
//MochiScores (mochi.as3.MochiScores)
package mochi.as3 {
import flash.display.*;
import flash.text.*;
public class MochiScores {
private static var boardID:String;
public static var onErrorHandler:Object;
public static var onCloseHandler:Object;
public function MochiScores(){
super();
}
public static function showLeaderboard(options:Object=null):void{
var n:Number;
var options = options;
if (options != null){
delete options.clip;
MochiServices.setContainer();
MochiServices.bringToTop();
if (options.name != null){
if ((options.name is TextField)){
if (options.name.text.length > 0){
options.name = options.name.text;
};
};
};
if (options.score != null){
if ((options.score is TextField)){
if (options.score.text.length > 0){
options.score = options.score.text;
};
} else {
if ((options.score is MochiDigits)){
options.score = options.score.value;
};
};
n = Number(options.score);
if (isNaN(n)){
trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is 'Not a Number'"));
} else {
if ((((n == Number.NEGATIVE_INFINITY)) || ((n == Number.POSITIVE_INFINITY)))){
trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is an infinite"));
} else {
if (Math.floor(n) != n){
trace((("WARNING: Submitted score '" + options.score) + "' will be truncated"));
};
options.score = n;
};
};
};
if (options.onDisplay != null){
options.onDisplay();
} else {
if (MochiServices.clip != null){
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.stop();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onDisplay.");
};
};
};
} else {
options = {};
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.stop();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onDisplay.");
};
};
if (options.onClose != null){
onCloseHandler = options.onClose;
} else {
onCloseHandler = function ():void{
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.play();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onClose.");
};
};
};
if (options.onError != null){
onErrorHandler = options.onError;
} else {
onErrorHandler = null;
};
if (options.boardID == null){
if (MochiScores.boardID != null){
options.boardID = MochiScores.boardID;
};
};
MochiServices.warnID(options.boardID, true);
trace("[MochiScores] NOTE: Security Sandbox Violation errors below are normal");
MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose);
}
public static function closeLeaderboard():void{
MochiServices.send("scores_closeLeaderboard");
}
public static function getPlayerInfo(callbackObj:Object, callbackMethod:Object=null):void{
MochiServices.send("scores_getPlayerInfo", null, callbackObj, callbackMethod);
}
public static function requestList(callbackObj:Object, callbackMethod:Object=null):void{
MochiServices.send("scores_requestList", null, callbackObj, callbackMethod);
}
public static function scoresArrayToObjects(scores:Object):Object{
var i:Number;
var j:Number;
var o:Object;
var row_obj:Object;
var item:String;
var param:String;
var so:Object = {};
for (item in scores) {
if (typeof(scores[item]) == "object"){
if (((!((scores[item].cols == null))) && (!((scores[item].rows == null))))){
so[item] = [];
o = scores[item];
j = 0;
while (j < o.rows.length) {
row_obj = {};
i = 0;
while (i < o.cols.length) {
row_obj[o.cols[i]] = o.rows[j][i];
i++;
};
so[item].push(row_obj);
j++;
};
} else {
so[item] = {};
for (param in scores[item]) {
so[item][param] = scores[item][param];
};
};
} else {
so[item] = scores[item];
};
};
return (so);
}
public static function submit(score:Number, name:String, callbackObj:Object=null, callbackMethod:Object=null):void{
score = Number(score);
if (isNaN(score)){
trace((("ERROR: Submitted score '" + String(score)) + "' will be rejected, score is 'Not a Number'"));
} else {
if ((((score == Number.NEGATIVE_INFINITY)) || ((score == Number.POSITIVE_INFINITY)))){
trace((("ERROR: Submitted score '" + String(score)) + "' will be rejected, score is an infinite"));
} else {
if (Math.floor(score) != score){
trace((("WARNING: Submitted score '" + String(score)) + "' will be truncated"));
};
score = Number(score);
};
};
MochiServices.send("scores_submit", {score:score, name:name}, callbackObj, callbackMethod);
}
public static function onClose(args:Object=null):void{
if (((((args) && ((args.error == true)))) && (onErrorHandler))){
if (args.errorCode == null){
args.errorCode = "IOError";
};
onErrorHandler(args.errorCode);
MochiServices.doClose();
return;
};
onCloseHandler();
MochiServices.doClose();
}
public static function setBoardID(boardID:String):void{
MochiServices.warnID(boardID, true);
MochiScores.boardID = boardID;
MochiServices.send("scores_setBoardID", {boardID:boardID});
}
}
}//package mochi.as3
Section 63
//MochiServices (mochi.as3.MochiServices)
package mochi.as3 {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.net.*;
import flash.system.*;
import flash.geom.*;
public class MochiServices {
public static const CONNECTED:String = "onConnected";
private static var _container:Object;
private static var _connected:Boolean = false;
private static var _queue:Array;
private static var _swfVersion:String;
private static var _preserved:Object;
public static var netupAttempted:Boolean = false;
private static var _sendChannel:LocalConnection;
private static var _nextCallbackID:Number;
private static var _clip:MovieClip;
private static var _loader:Loader;
private static var _id:String;
private static var _services:String = "services.swf";
private static var _servURL:String = "http://www.mochiads.com/static/lib/services/";
public static var widget:Boolean = false;
private static var _timer:Timer;
private static var _sendChannelName:String;
private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher();
private static var _callbacks:Object;
private static var _connecting:Boolean = false;
private static var _mochiLocalConnection:MovieClip;
private static var _listenChannelName:String = "__ms_";
public static var onError:Object;
public static var netup:Boolean = true;
private static var _mochiLC:String = "MochiLC.swf";
public function MochiServices(){
super();
}
public static function isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function get connected():Boolean{
return (_connected);
}
private static function onReceive(pkg:Object):void{
var methodName:String;
var pkg = pkg;
var cb:String = pkg.callbackID;
var cblst:Object = _callbacks[cb];
if (!cblst){
return;
};
var method:* = cblst.callbackMethod;
methodName = "";
var obj:Object = cblst.callbackObject;
if (((obj) && ((typeof(method) == "string")))){
methodName = method;
if (obj[method] != null){
method = obj[method];
} else {
trace((("Error: Method " + method) + " does not exist."));
};
};
if (method != undefined){
method.apply(obj, pkg.args);
//unresolved jump
var _slot1 = error;
trace(((("Error invoking callback method '" + methodName) + "': ") + _slot1.toString()));
} else {
if (obj != null){
obj(pkg.args);
//unresolved jump
var _slot1 = error;
trace(("Error invoking method on object: " + _slot1.toString()));
};
};
delete _callbacks[cb];
}
public static function send(methodName:String, args:Object=null, callbackObject:Object=null, callbackMethod:Object=null):void{
if (_connected){
_mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:methodName, args:args, callbackID:_nextCallbackID});
} else {
if ((((_clip == null)) || (!(_connecting)))){
trace(("Error: MochiServices not connected. Please call MochiServices.connect(). Function: " + methodName));
handleError(args, callbackObject, callbackMethod);
flush(true);
return;
};
_queue.push({methodName:methodName, args:args, callbackID:_nextCallbackID});
};
if (_clip != null){
if (_callbacks != null){
_callbacks[_nextCallbackID] = {callbackObject:callbackObject, callbackMethod:callbackMethod};
_nextCallbackID++;
};
};
}
private static function init(id:String, clip:Object):void{
_id = id;
if (clip != null){
_container = clip;
loadCommunicator(id, _container);
};
}
private static function clickMovie(url:String, cb:Function):MovieClip{
var b:int;
var loader:Loader;
var avm1_bytecode:Array = [150, 21, 0, 7, 1, 0, 0, 0, 0, 98, 116, 110, 0, 7, 2, 0, 0, 0, 0, 116, 104, 105, 115, 0, 28, 150, 22, 0, 0, 99, 114, 101, 97, 116, 101, 69, 109, 112, 116, 121, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 82, 135, 1, 0, 0, 23, 150, 13, 0, 4, 0, 0, 111, 110, 82, 101, 108, 101, 97, 115, 101, 0, 142, 8, 0, 0, 0, 0, 2, 42, 0, 114, 0, 150, 17, 0, 0, 32, 0, 7, 1, 0, 0, 0, 8, 0, 0, 115, 112, 108, 105, 116, 0, 82, 135, 1, 0, 1, 23, 150, 7, 0, 4, 1, 7, 0, 0, 0, 0, 78, 150, 8, 0, 0, 95, 98, 108, 97, 110, 107, 0, 154, 1, 0, 0, 150, 7, 0, 0, 99, 108, 105, 99, 107, 0, 150, 7, 0, 4, 1, 7, 1, 0, 0, 0, 78, 150, 27, 0, 7, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 76, 111, 99, 97, 108, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 0, 64, 150, 6, 0, 0, 115, 101, 110, 100, 0, 82, 79, 150, 15, 0, 4, 0, 0, 95, 97, 108, 112, 104, 97, 0, 7, 0, 0, 0, 0, 79, 150, 23, 0, 7, 0xFF, 0, 0xFF, 0, 7, 1, 0, 0, 0, 4, 0, 0, 98, 101, 103, 105, 110, 70, 105, 108, 108, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 109, 111, 118, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 16, 0, 7, 0, 0, 0, 0, 4, 0, 0, 101, 110, 100, 70, 105, 108, 108, 0, 82, 23];
var header:Array = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3];
var footer:Array = [0, 64, 0, 0, 0];
var mc:MovieClip = new MovieClip();
var lc:LocalConnection = new LocalConnection();
var lc_name:String = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().time));
lc = new LocalConnection();
mc.lc = lc;
mc.click = cb;
lc.client = mc;
lc.connect(lc_name);
var ba:ByteArray = new ByteArray();
var cpool:ByteArray = new ByteArray();
cpool.endian = Endian.LITTLE_ENDIAN;
cpool.writeShort(1);
cpool.writeUTFBytes(((url + " ") + lc_name));
cpool.writeByte(0);
var actionLength:uint = ((avm1_bytecode.length + cpool.length) + 4);
var fileLength:uint = (actionLength + 35);
ba.endian = Endian.LITTLE_ENDIAN;
ba.writeUTFBytes("FWS");
ba.writeByte(8);
ba.writeUnsignedInt(fileLength);
for each (b in header) {
ba.writeByte(b);
};
ba.writeUnsignedInt(actionLength);
ba.writeByte(136);
ba.writeShort(cpool.length);
ba.writeBytes(cpool);
for each (b in avm1_bytecode) {
ba.writeByte(b);
};
for each (b in footer) {
ba.writeByte(b);
};
loader = new Loader();
loader.loadBytes(ba);
mc.addChild(loader);
return (mc);
}
private static function detach(event:Event):void{
var loader:LoaderInfo = LoaderInfo(event.target);
loader.removeEventListener(Event.COMPLETE, detach);
loader.removeEventListener(IOErrorEvent.IO_ERROR, detach);
loader.removeEventListener(Event.COMPLETE, loadLCBridgeComplete);
loader.removeEventListener(IOErrorEvent.IO_ERROR, loadError);
}
public static function stayOnTop():void{
_container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true);
if (_clip != null){
_clip.visible = true;
};
}
private static function loadLCBridgeComplete(e:Event):void{
var loader:Loader = LoaderInfo(e.target).loader;
_mochiLocalConnection = MovieClip(loader.content);
listen();
}
public static function disconnect():void{
if (((_connected) || (_connecting))){
if (_clip != null){
if (_clip.parent != null){
if ((_clip.parent is Sprite)){
Sprite(_clip.parent).removeChild(_clip);
_clip = null;
};
};
};
_connecting = (_connected = false);
flush(true);
_mochiLocalConnection.close();
//unresolved jump
var _slot1 = error;
};
if (_timer != null){
_timer.stop();
_timer.removeEventListener(TimerEvent.TIMER, connectWait);
_timer = null;
//unresolved jump
var _slot1 = error;
};
}
public static function allowDomains(server:String):String{
var hostname:String;
if (Security.sandboxType != "application"){
Security.allowDomain("*");
Security.allowInsecureDomain("*");
};
if (server.indexOf("http://") != -1){
hostname = server.split("/")[2].split(":")[0];
if (Security.sandboxType != "application"){
Security.allowDomain(hostname);
Security.allowInsecureDomain(hostname);
};
};
return (hostname);
}
public static function getVersion():String{
return ("3.9.1 as3");
}
public static function doClose():void{
_container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop);
}
public static function warnID(bid:String, leaderboard:Boolean):void{
bid = bid.toLowerCase();
if (bid.length != 16){
trace((("WARNING: " + (leaderboard) ? "board" : "game") + " ID is not the appropriate length"));
return;
} else {
if (bid == "1e113c7239048b3f"){
if (leaderboard){
trace("WARNING: Using testing board ID");
} else {
trace("WARNING: Using testing board ID as game ID");
};
return;
} else {
if (bid == "84993a1de4031cd8"){
if (leaderboard){
trace("WARNING: Using testing game ID as board ID");
} else {
trace("WARNING: Using testing game ID");
};
return;
};
};
};
var i:Number = 0;
while (i < bid.length) {
switch (bid.charAt(i)){
case "0":
case "1":
case "2":
case "3":
case "4":
case "5":
case "6":
case "7":
case "8":
case "9":
case "a":
case "b":
case "c":
case "d":
case "e":
case "f":
break;
default:
trace(("WARNING: Board ID contains illegal characters: " + bid));
return;
};
i++;
};
}
private static function flush(error:Boolean):void{
var request:Object;
var callback:Object;
if (((_clip) && (_queue))){
while (_queue.length > 0) {
request = _queue.shift();
callback = null;
if (request != null){
if (request.callbackID != null){
callback = _callbacks[request.callbackID];
};
delete _callbacks[request.callbackID];
if (((error) && (!((callback == null))))){
handleError(request.args, callback.callbackObject, callback.callbackMethod);
};
};
};
};
}
public static function get id():String{
return (_id);
}
private static function onEvent(pkg:Object):void{
var target:String = pkg.target;
var event:String = pkg.event;
switch (target){
case "services":
MochiServices.triggerEvent(pkg.event, pkg.args);
break;
case "events":
MochiEvents.triggerEvent(pkg.event, pkg.args);
break;
case "coins":
MochiCoins.triggerEvent(pkg.event, pkg.args);
break;
case "social":
MochiSocial.triggerEvent(pkg.event, pkg.args);
break;
};
}
private static function urlOptions(clip:Object):Object{
var options:String;
var pairs:Array;
var i:Number;
var kv:Array;
var opts:Object = {};
if (clip.stage){
options = clip.stage.loaderInfo.parameters.mochiad_options;
} else {
options = clip.loaderInfo.parameters.mochiad_options;
};
if (options){
pairs = options.split("&");
i = 0;
while (i < pairs.length) {
kv = pairs[i].split("=");
opts[unescape(kv[0])] = unescape(kv[1]);
i++;
};
};
return (opts);
}
public static function addLinkEvent(url:String, burl:String, btn:DisplayObjectContainer, onClick:Function=null):void{
var avm1Click:DisplayObject;
var x:String;
var req:URLRequest;
var loader:Loader;
var setURL:Function;
var err:Function;
var complete:Function;
var url = url;
var burl = burl;
var btn = btn;
var onClick = onClick;
var vars:Object = new Object();
vars["mav"] = getVersion();
vars["swfv"] = "9";
vars["swfurl"] = btn.loaderInfo.loaderURL;
vars["fv"] = Capabilities.version;
vars["os"] = Capabilities.os;
vars["lang"] = Capabilities.language;
vars["scres"] = ((Capabilities.screenResolutionX + "x") + Capabilities.screenResolutionY);
var s = "?";
var i:Number = 0;
for (x in vars) {
if (i != 0){
s = (s + "&");
};
i = (i + 1);
s = (((s + x) + "=") + escape(vars[x]));
};
req = new URLRequest("http://link.mochiads.com/linkping.swf");
loader = new Loader();
setURL = function (url:String):void{
if (avm1Click){
btn.removeChild(avm1Click);
};
avm1Click = clickMovie(url, onClick);
var rect:Rectangle = btn.getBounds(btn);
btn.addChild(avm1Click);
avm1Click.x = rect.x;
avm1Click.y = rect.y;
avm1Click.scaleX = (0.01 * rect.width);
avm1Click.scaleY = (0.01 * rect.height);
};
err = function (ev:Object):void{
netup = false;
ev.target.removeEventListener(ev.type, arguments.callee);
setURL(burl);
};
complete = function (ev:Object):void{
ev.target.removeEventListener(ev.type, arguments.callee);
};
if (netup){
setURL((url + s));
} else {
setURL(burl);
};
if (!((netupAttempted) || (_connected))){
netupAttempted = true;
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, err);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete);
loader.load(req);
};
}
public static function setContainer(container:Object=null, doAdd:Boolean=true):void{
if (_clip.parent){
_clip.parent.removeChild(_clip);
};
if (container != null){
if ((container is DisplayObjectContainer)){
_container = container;
};
};
if (doAdd){
if ((_container is DisplayObjectContainer)){
DisplayObjectContainer(_container).addChild(_clip);
};
};
}
private static function handleError(args:Object, callbackObject:Object, callbackMethod:Object):void{
var args = args;
var callbackObject = callbackObject;
var callbackMethod = callbackMethod;
if (args != null){
if (args.onError != null){
args.onError.apply(null, ["NotConnected"]);
};
if (((!((args.options == null))) && (!((args.options.onError == null))))){
args.options.onError.apply(null, ["NotConnected"]);
};
};
if (callbackMethod != null){
args = {};
args.error = true;
args.errorCode = "NotConnected";
if (((!((callbackObject == null))) && ((callbackMethod is String)))){
var _local5 = callbackObject;
_local5[callbackMethod](args);
//unresolved jump
var _slot1 = error;
} else {
if (callbackMethod != null){
callbackMethod.apply(args);
//unresolved jump
var _slot1 = error;
};
};
};
}
private static function loadError(ev:Object):void{
if (_clip != null){
_clip._mochiad_ctr_failed = true;
};
trace("MochiServices could not load.");
MochiServices.disconnect();
MochiServices.onError("IOError");
}
public static function get childClip():Object{
return (_clip);
}
private static function initComChannels():void{
if (!_connected){
trace("[SERVICES_API] connected!");
_connecting = false;
_connected = true;
_mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"});
_mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"registerGame", preserved:_preserved, id:_id, version:getVersion(), parentURL:_container.loaderInfo.loaderURL});
_clip.onReceive = onReceive;
_clip.onEvent = onEvent;
_clip.onError = function ():void{
MochiServices.onError("IOError");
};
while (_queue.length > 0) {
_mochiLocalConnection.send(_sendChannelName, "onReceive", _queue.shift());
};
};
}
public static function triggerEvent(eventType:String, args:Object):void{
_dispatcher.triggerEvent(eventType, args);
}
public static function removeEventListener(eventType:String, delegate:Function):void{
_dispatcher.removeEventListener(eventType, delegate);
}
private static function listen():void{
_mochiLocalConnection.connect(_listenChannelName);
_clip.handshake = function (args:Object):void{
MochiServices.comChannelName = args.newChannel;
};
trace("Waiting for MochiAds services to connect...");
}
public static function addEventListener(eventType:String, delegate:Function):void{
_dispatcher.addEventListener(eventType, delegate);
}
private static function loadLCBridge(clip:Object):void{
var loader:Loader = new Loader();
var mochiLCURL:String = (_servURL + _mochiLC);
var req:URLRequest = new URLRequest(mochiLCURL);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, detach);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, detach);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadLCBridgeComplete);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError);
loader.load(req);
clip.addChild(loader);
}
public static function set comChannelName(val:String):void{
if (val != null){
if (val.length > 3){
_sendChannelName = (val + "_fromgame");
initComChannels();
};
};
}
private static function loadCommunicator(id:String, clip:Object):MovieClip{
if (_clip != null){
return (_clip);
};
if (!MochiServices.isNetworkAvailable()){
return (null);
};
if (urlOptions(clip).servURL){
_servURL = urlOptions(clip).servURL;
};
var servicesURL:String = (_servURL + _services);
if (urlOptions(clip).servicesURL){
servicesURL = urlOptions(clip).servicesURL;
};
_listenChannelName = (_listenChannelName + ((Math.floor(new Date().time) + "_") + Math.floor((Math.random() * 99999))));
MochiServices.allowDomains(servicesURL);
_clip = new MovieClip();
loadLCBridge(_clip);
_loader = new Loader();
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, detach);
_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, detach);
_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError);
var req:URLRequest = new URLRequest(servicesURL);
var vars:URLVariables = new URLVariables();
vars.listenLC = _listenChannelName;
vars.mochiad_options = clip.loaderInfo.parameters.mochiad_options;
vars.api_version = getVersion();
if (widget){
vars.widget = true;
};
req.data = vars;
_loader.load(req);
_clip.addChild(_loader);
_sendChannel = new LocalConnection();
_queue = [];
_nextCallbackID = 0;
_callbacks = {};
_timer = new Timer(10000, 1);
_timer.addEventListener(TimerEvent.TIMER, connectWait);
_timer.start();
return (_clip);
}
public static function get clip():Object{
return (_container);
}
public static function connect(id:String, clip:Object, onError:Object=null):void{
var id = id;
var clip = clip;
var onError = onError;
warnID(id, false);
if ((clip is DisplayObject)){
if (clip.stage == null){
trace("MochiServices connect requires the containing clip be attached to the stage");
};
if (((!(_connected)) && ((_clip == null)))){
trace("MochiServices Connecting...");
_connecting = true;
init(id, clip);
};
} else {
trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage.");
};
if (onError != null){
MochiServices.onError = onError;
} else {
if (MochiServices.onError == null){
MochiServices.onError = function (errorCode:String):void{
trace(errorCode);
};
};
};
}
public static function bringToTop(e:Event=null):void{
var e = e;
if (((!((MochiServices.clip == null))) && (!((MochiServices.childClip == null))))){
if (MochiServices.clip.numChildren > 1){
MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1));
};
//unresolved jump
var _slot1 = errorObject;
trace("Warning: Depth sort error.");
_container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop);
};
}
public static function connectWait(e:TimerEvent):void{
if (!_connected){
_clip._mochiad_ctr_failed = true;
trace("MochiServices could not load. (timeout)");
MochiServices.disconnect();
MochiServices.onError("IOError");
} else {
_timer.stop();
_timer.removeEventListener(TimerEvent.TIMER, connectWait);
_timer = null;
};
}
}
}//package mochi.as3
Section 64
//MochiSocial (mochi.as3.MochiSocial)
package mochi.as3 {
public class MochiSocial {
public static const LOGGED_IN:String = "LoggedIn";
public static const ACTION_CANCELED:String = "onCancel";
public static const PROPERTIES_SIZE:String = "PropertiesSize";
public static const IO_ERROR:String = "IOError";
public static const NO_USER:String = "NoUser";
public static const FRIEND_LIST:String = "FriendsList";
public static const PROFILE_DATA:String = "ProfileData";
public static const GAMEPLAY_DATA:String = "GameplayData";
public static const ACTION_COMPLETE:String = "onComplete";
public static const LOGIN_SHOW:String = "LoginShow";
public static const PROFILE_HIDE:String = "ProfileHide";
public static const USER_INFO:String = "UserInfo";
public static const PROPERTIES_SAVED:String = "PropertySaved";
public static const WIDGET_LOADED:String = "WidgetLoaded";
public static const ERROR:String = "Error";
public static const LOGGED_OUT:String = "LoggedOut";
public static const PROFILE_SHOW:String = "ProfileShow";
public static const LOGIN_HIDE:String = "LoginHide";
public static const LOGIN_SHOWN:String = "LoginShown";
public static var _user_info:Object = null;
private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher();
public function MochiSocial(){
super();
}
public static function requestFan(properties:Object=null):void{
MochiServices.setContainer();
MochiServices.bringToTop();
MochiServices.send("social_requestFan", properties);
}
public static function postToStream(properties:Object=null):void{
MochiServices.setContainer();
MochiServices.bringToTop();
MochiServices.send("social_postToStream", properties);
}
public static function getFriendsList(properties:Object=null):void{
MochiServices.send("social_getFriendsList", properties);
}
public static function requestLogin(properties:Object=null):void{
MochiServices.setContainer();
MochiServices.bringToTop();
MochiServices.send("social_requestLogin", properties);
}
public static function getVersion():String{
return (MochiServices.getVersion());
}
public static function saveUserProperties(properties:Object):void{
MochiServices.send("social_saveUserProperties", properties);
}
public static function triggerEvent(eventType:String, args:Object):void{
_dispatcher.triggerEvent(eventType, args);
}
public static function removeEventListener(eventType:String, delegate:Function):void{
_dispatcher.removeEventListener(eventType, delegate);
}
public static function inviteFriends(properties:Object=null):void{
MochiServices.setContainer();
MochiServices.bringToTop();
MochiServices.send("social_inviteFriends", properties);
}
public static function get loggedIn():Boolean{
return (!((_user_info == null)));
}
public static function addEventListener(eventType:String, delegate:Function):void{
_dispatcher.addEventListener(eventType, delegate);
}
public static function showLoginWidget(options:Object=null):void{
MochiServices.setContainer();
MochiServices.bringToTop();
MochiServices.send("social_showLoginWidget", {options:options});
}
public static function getAPIURL():String{
if (!_user_info){
return (null);
};
return (_user_info.api_url);
}
public static function hideLoginWidget():void{
MochiServices.send("social_hideLoginWidget");
}
public static function getAPIToken():String{
if (!_user_info){
return (null);
};
return (_user_info.api_token);
}
MochiSocial.addEventListener(MochiSocial.LOGGED_IN, function (args:Object):void{
_user_info = args;
});
MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, function (args:Object):void{
_user_info = null;
});
}
}//package mochi.as3
Section 65
//MochiUserData (mochi.as3.MochiUserData)
package mochi.as3 {
import flash.events.*;
import flash.utils.*;
import flash.net.*;
public class MochiUserData extends EventDispatcher {
public var callback:Function;// = null
public var operation:String;// = null
public var error:Event;// = null
public var data;// = null
public var _loader:URLLoader;
public var key:String;// = null
public function MochiUserData(key:String="", callback:Function=null){
super();
this.key = key;
this.callback = callback;
}
public function serialize(obj):ByteArray{
var arr:ByteArray = new ByteArray();
arr.objectEncoding = ObjectEncoding.AMF3;
arr.writeObject(obj);
arr.compress();
return (arr);
}
public function errorHandler(event:IOErrorEvent):void{
data = null;
error = event;
if (callback != null){
performCallback();
} else {
dispatchEvent(event);
};
close();
}
public function putEvent(obj):void{
request("put", serialize(obj));
}
public function deserialize(arr:ByteArray){
arr.objectEncoding = ObjectEncoding.AMF3;
arr.uncompress();
return (arr.readObject());
}
public function securityErrorHandler(event:SecurityErrorEvent):void{
errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + event.toString())));
}
public function getEvent():void{
request("get", serialize(null));
}
override public function toString():String{
return ((((((((("[MochiUserData operation=" + operation) + " key=\"") + key) + "\" data=") + data) + " error=\"") + error) + "\"]"));
}
public function performCallback():void{
callback(this);
//unresolved jump
var _slot1 = e;
trace(("[MochiUserData] exception during callback: " + _slot1));
}
public function request(_operation:String, _data:ByteArray):void{
var _operation = _operation;
var _data = _data;
operation = _operation;
var api_url:String = MochiSocial.getAPIURL();
var api_token:String = MochiSocial.getAPIToken();
if ((((api_url == null)) || ((api_token == null)))){
errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, "not logged in"));
return;
};
_loader = new URLLoader();
var args:URLVariables = new URLVariables();
args.op = _operation;
args.key = key;
var req:URLRequest = new URLRequest((((MochiSocial.getAPIURL() + "/") + "MochiUserData?") + args.toString()));
req.method = URLRequestMethod.POST;
req.contentType = "application/x-mochi-userdata";
req.requestHeaders = [new URLRequestHeader("x-mochi-services-version", MochiServices.getVersion()), new URLRequestHeader("x-mochi-api-token", api_token)];
req.data = _data;
_loader.dataFormat = URLLoaderDataFormat.BINARY;
_loader.addEventListener(Event.COMPLETE, completeHandler);
_loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
_loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
_loader.load(req);
//unresolved jump
var _slot1 = e;
errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + _slot1.toString())));
}
public function completeHandler(event:Event):void{
var event = event;
if (_loader.data.length){
data = deserialize(_loader.data);
} else {
data = null;
};
//unresolved jump
var _slot1 = e;
errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("deserialize error: " + _slot1.toString())));
return;
if (callback != null){
performCallback();
} else {
dispatchEvent(event);
};
close();
}
public function close():void{
if (_loader){
_loader.removeEventListener(Event.COMPLETE, completeHandler);
_loader.removeEventListener(IOErrorEvent.IO_ERROR, errorHandler);
_loader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
_loader.close();
_loader = null;
};
error = null;
callback = null;
}
public static function get(key:String, callback:Function):void{
var userData:MochiUserData = new MochiUserData(key, callback);
userData.getEvent();
}
public static function put(key:String, obj, callback:Function):void{
var userData:MochiUserData = new MochiUserData(key, callback);
userData.putEvent(obj);
}
}
}//package mochi.as3
Section 66
//EdgeMetrics (mx.core.EdgeMetrics)
package mx.core {
public class EdgeMetrics {
public var top:Number;
public var left:Number;
public var bottom:Number;
public var right:Number;
mx_internal static const VERSION:String = "3.3.0.4852";
public static const EMPTY:EdgeMetrics = new EdgeMetrics(0, 0, 0, 0);
;
public function EdgeMetrics(left:Number=0, top:Number=0, right:Number=0, bottom:Number=0){
super();
this.left = left;
this.top = top;
this.right = right;
this.bottom = bottom;
}
public function clone():EdgeMetrics{
return (new EdgeMetrics(left, top, right, bottom));
}
}
}//package mx.core
Section 67
//FlexLoader (mx.core.FlexLoader)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexLoader extends Loader {
mx_internal static const VERSION:String = "3.3.0.4852";
public function FlexLoader(){
super();
name = NameUtil.createUniqueName(this);
//unresolved jump
var _slot1 = e;
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 68
//FlexMovieClip (mx.core.FlexMovieClip)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexMovieClip extends MovieClip {
mx_internal static const VERSION:String = "3.3.0.4852";
public function FlexMovieClip(){
super();
name = NameUtil.createUniqueName(this);
//unresolved jump
var _slot1 = e;
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 69
//FlexShape (mx.core.FlexShape)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexShape extends Shape {
mx_internal static const VERSION:String = "3.3.0.4852";
public function FlexShape(){
super();
name = NameUtil.createUniqueName(this);
//unresolved jump
var _slot1 = e;
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 70
//FlexSprite (mx.core.FlexSprite)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexSprite extends Sprite {
mx_internal static const VERSION:String = "3.3.0.4852";
public function FlexSprite(){
super();
name = NameUtil.createUniqueName(this);
//unresolved jump
var _slot1 = e;
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 71
//FlexVersion (mx.core.FlexVersion)
package mx.core {
import mx.resources.*;
public class FlexVersion {
public static const VERSION_2_0_1:uint = 33554433;
public static const CURRENT_VERSION:uint = 50331648;
public static const VERSION_3_0:uint = 50331648;
public static const VERSION_2_0:uint = 33554432;
public static const VERSION_ALREADY_READ:String = "versionAlreadyRead";
public static const VERSION_ALREADY_SET:String = "versionAlreadySet";
mx_internal static const VERSION:String = "3.3.0.4852";
private static var compatibilityVersionChanged:Boolean = false;
private static var _compatibilityErrorFunction:Function;
private static var _compatibilityVersion:uint = 50331648;
private static var compatibilityVersionRead:Boolean = false;
public function FlexVersion(){
super();
}
mx_internal static function changeCompatibilityVersionString(value:String):void{
var pieces:Array = value.split(".");
var major:uint = parseInt(pieces[0]);
var minor:uint = parseInt(pieces[1]);
var update:uint = parseInt(pieces[2]);
_compatibilityVersion = (((major << 24) + (minor << 16)) + update);
}
public static function set compatibilityVersion(value:uint):void{
var s:String;
if (value == _compatibilityVersion){
return;
};
if (compatibilityVersionChanged){
if (compatibilityErrorFunction == null){
s = ResourceManager.getInstance().getString("core", VERSION_ALREADY_SET);
throw (new Error(s));
};
compatibilityErrorFunction(value, VERSION_ALREADY_SET);
};
if (compatibilityVersionRead){
if (compatibilityErrorFunction == null){
s = ResourceManager.getInstance().getString("core", VERSION_ALREADY_READ);
throw (new Error(s));
};
compatibilityErrorFunction(value, VERSION_ALREADY_READ);
};
_compatibilityVersion = value;
compatibilityVersionChanged = true;
}
public static function get compatibilityVersion():uint{
compatibilityVersionRead = true;
return (_compatibilityVersion);
}
public static function set compatibilityErrorFunction(value:Function):void{
_compatibilityErrorFunction = value;
}
public static function set compatibilityVersionString(value:String):void{
var pieces:Array = value.split(".");
var major:uint = parseInt(pieces[0]);
var minor:uint = parseInt(pieces[1]);
var update:uint = parseInt(pieces[2]);
compatibilityVersion = (((major << 24) + (minor << 16)) + update);
}
public static function get compatibilityErrorFunction():Function{
return (_compatibilityErrorFunction);
}
public static function get compatibilityVersionString():String{
var major:uint = ((compatibilityVersion >> 24) & 0xFF);
var minor:uint = ((compatibilityVersion >> 16) & 0xFF);
var update:uint = (compatibilityVersion & 0xFFFF);
return (((((major.toString() + ".") + minor.toString()) + ".") + update.toString()));
}
}
}//package mx.core
Section 72
//FontAsset (mx.core.FontAsset)
package mx.core {
import flash.text.*;
public class FontAsset extends Font implements IFlexAsset {
mx_internal static const VERSION:String = "3.3.0.4852";
public function FontAsset(){
super();
}
}
}//package mx.core
Section 73
//IBorder (mx.core.IBorder)
package mx.core {
public interface IBorder {
function get borderMetrics():EdgeMetrics;
}
}//package mx.core
Section 74
//IButton (mx.core.IButton)
package mx.core {
public interface IButton extends IUIComponent {
function get emphasized():Boolean;
function set emphasized(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\core;IButton.as:Boolean):void;
function callLater(_arg1:Function, _arg2:Array=null):void;
}
}//package mx.core
Section 75
//IChildList (mx.core.IChildList)
package mx.core {
import flash.geom.*;
import flash.display.*;
public interface IChildList {
function get numChildren():int;
function removeChild(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\core;IChildList.as:DisplayObject):DisplayObject;
function getChildByName(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\core;IChildList.as:String):DisplayObject;
function removeChildAt(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\core;IChildList.as:int):DisplayObject;
function getChildIndex(:DisplayObject):int;
function addChildAt(_arg1:DisplayObject, _arg2:int):DisplayObject;
function getObjectsUnderPoint(child:Point):Array;
function setChildIndex(_arg1:DisplayObject, _arg2:int):void;
function getChildAt(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\core;IChildList.as:int):DisplayObject;
function addChild(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\core;IChildList.as:DisplayObject):DisplayObject;
function contains(flash.display:DisplayObject):Boolean;
}
}//package mx.core
Section 76
//IContainer (mx.core.IContainer)
package mx.core {
import flash.geom.*;
import flash.display.*;
import mx.managers.*;
import flash.media.*;
import flash.text.*;
public interface IContainer extends IUIComponent {
function set hitArea(mx.core:IContainer/mx.core:IContainer:graphics/get:Sprite):void;
function swapChildrenAt(_arg1:int, _arg2:int):void;
function getChildByName(Graphics:String):DisplayObject;
function get doubleClickEnabled():Boolean;
function get graphics():Graphics;
function get useHandCursor():Boolean;
function addChildAt(_arg1:DisplayObject, _arg2:int):DisplayObject;
function set mouseChildren(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void;
function set creatingContentPane(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void;
function get textSnapshot():TextSnapshot;
function getChildIndex(value:DisplayObject):int;
function set doubleClickEnabled(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void;
function getObjectsUnderPoint(lockCenter:Point):Array;
function get creatingContentPane():Boolean;
function setChildIndex(_arg1:DisplayObject, _arg2:int):void;
function get soundTransform():SoundTransform;
function set useHandCursor(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void;
function get numChildren():int;
function contains(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\core;ISpriteInterface.as:DisplayObject):Boolean;
function get verticalScrollPosition():Number;
function set defaultButton(mx.core:IContainer/mx.core:IContainer:graphics/get:IFlexDisplayObject):void;
function swapChildren(_arg1:DisplayObject, _arg2:DisplayObject):void;
function set horizontalScrollPosition(mx.core:IContainer/mx.core:IContainer:graphics/get:Number):void;
function get focusManager():IFocusManager;
function startDrag(_arg1:Boolean=false, _arg2:Rectangle=null):void;
function set mouseEnabled(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void;
function getChildAt(Graphics:int):DisplayObject;
function set soundTransform(mx.core:IContainer/mx.core:IContainer:graphics/get:SoundTransform):void;
function get tabChildren():Boolean;
function get tabIndex():int;
function set focusRect(mx.core:IContainer/mx.core:IContainer:graphics/get:Object):void;
function get hitArea():Sprite;
function get mouseChildren():Boolean;
function removeChildAt(Graphics:int):DisplayObject;
function get defaultButton():IFlexDisplayObject;
function stopDrag():void;
function set tabEnabled(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void;
function get horizontalScrollPosition():Number;
function get focusRect():Object;
function get viewMetrics():EdgeMetrics;
function set verticalScrollPosition(mx.core:IContainer/mx.core:IContainer:graphics/get:Number):void;
function get dropTarget():DisplayObject;
function get mouseEnabled():Boolean;
function set tabChildren(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void;
function set buttonMode(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void;
function get tabEnabled():Boolean;
function get buttonMode():Boolean;
function removeChild(Graphics:DisplayObject):DisplayObject;
function set tabIndex(mx.core:IContainer/mx.core:IContainer:graphics/get:int):void;
function addChild(Graphics:DisplayObject):DisplayObject;
function areInaccessibleObjectsUnderPoint(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\core;ISpriteInterface.as:Point):Boolean;
}
}//package mx.core
Section 77
//IFlexAsset (mx.core.IFlexAsset)
package mx.core {
public interface IFlexAsset {
}
}//package mx.core
Section 78
//IFlexDisplayObject (mx.core.IFlexDisplayObject)
package mx.core {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import flash.accessibility.*;
public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher {
function get visible():Boolean;
function get rotation():Number;
function localToGlobal(void:Point):Point;
function get name():String;
function set width(flash.display:Number):void;
function get measuredHeight():Number;
function get blendMode():String;
function get scale9Grid():Rectangle;
function set name(flash.display:String):void;
function set scaleX(flash.display:Number):void;
function set scaleY(flash.display:Number):void;
function get measuredWidth():Number;
function get accessibilityProperties():AccessibilityProperties;
function set scrollRect(flash.display:Rectangle):void;
function get cacheAsBitmap():Boolean;
function globalToLocal(void:Point):Point;
function get height():Number;
function set blendMode(flash.display:String):void;
function get parent():DisplayObjectContainer;
function getBounds(String:DisplayObject):Rectangle;
function get opaqueBackground():Object;
function set scale9Grid(flash.display:Rectangle):void;
function setActualSize(_arg1:Number, _arg2:Number):void;
function set alpha(flash.display:Number):void;
function set accessibilityProperties(flash.display:AccessibilityProperties):void;
function get width():Number;
function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean;
function set cacheAsBitmap(flash.display:Boolean):void;
function get scaleX():Number;
function get scaleY():Number;
function get scrollRect():Rectangle;
function get mouseX():Number;
function get mouseY():Number;
function set height(flash.display:Number):void;
function set mask(flash.display:DisplayObject):void;
function getRect(String:DisplayObject):Rectangle;
function get alpha():Number;
function set transform(flash.display:Transform):void;
function move(_arg1:Number, _arg2:Number):void;
function get loaderInfo():LoaderInfo;
function get root():DisplayObject;
function hitTestObject(mx.core:IFlexDisplayObject/mx.core:IFlexDisplayObject:stage/get:DisplayObject):Boolean;
function set opaqueBackground(flash.display:Object):void;
function set visible(flash.display:Boolean):void;
function get mask():DisplayObject;
function set x(flash.display:Number):void;
function set y(flash.display:Number):void;
function get transform():Transform;
function set filters(flash.display:Array):void;
function get x():Number;
function get y():Number;
function get filters():Array;
function set rotation(flash.display:Number):void;
function get stage():Stage;
}
}//package mx.core
Section 79
//IFlexModuleFactory (mx.core.IFlexModuleFactory)
package mx.core {
public interface IFlexModuleFactory {
function create(... _args):Object;
function info():Object;
}
}//package mx.core
Section 80
//IInvalidating (mx.core.IInvalidating)
package mx.core {
public interface IInvalidating {
function validateNow():void;
function invalidateSize():void;
function invalidateDisplayList():void;
function invalidateProperties():void;
}
}//package mx.core
Section 81
//IProgrammaticSkin (mx.core.IProgrammaticSkin)
package mx.core {
public interface IProgrammaticSkin {
function validateNow():void;
function validateDisplayList():void;
}
}//package mx.core
Section 82
//IRawChildrenContainer (mx.core.IRawChildrenContainer)
package mx.core {
public interface IRawChildrenContainer {
function get rawChildren():IChildList;
}
}//package mx.core
Section 83
//IRectangularBorder (mx.core.IRectangularBorder)
package mx.core {
import flash.geom.*;
public interface IRectangularBorder extends IBorder {
function get backgroundImageBounds():Rectangle;
function get hasBackgroundImage():Boolean;
function set backgroundImageBounds(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\core;IRectangularBorder.as:Rectangle):void;
function layoutBackgroundImage():void;
}
}//package mx.core
Section 84
//IRepeaterClient (mx.core.IRepeaterClient)
package mx.core {
public interface IRepeaterClient {
function get instanceIndices():Array;
function set instanceIndices(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void;
function get isDocument():Boolean;
function set repeaters(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void;
function initializeRepeaterArrays(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:IRepeaterClient):void;
function get repeaters():Array;
function set repeaterIndices(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void;
function get repeaterIndices():Array;
}
}//package mx.core
Section 85
//ISWFBridgeGroup (mx.core.ISWFBridgeGroup)
package mx.core {
import flash.events.*;
public interface ISWFBridgeGroup {
function getChildBridgeProvider(mx.core:ISWFBridgeGroup/mx.core:ISWFBridgeGroup:parentBridge/get:IEventDispatcher):ISWFBridgeProvider;
function removeChildBridge(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\core;ISWFBridgeGroup.as:IEventDispatcher):void;
function get parentBridge():IEventDispatcher;
function addChildBridge(_arg1:IEventDispatcher, _arg2:ISWFBridgeProvider):void;
function set parentBridge(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\core;ISWFBridgeGroup.as:IEventDispatcher):void;
function containsBridge(IEventDispatcher:IEventDispatcher):Boolean;
function getChildBridges():Array;
}
}//package mx.core
Section 86
//ISWFBridgeProvider (mx.core.ISWFBridgeProvider)
package mx.core {
import flash.events.*;
public interface ISWFBridgeProvider {
function get childAllowsParent():Boolean;
function get swfBridge():IEventDispatcher;
function get parentAllowsChild():Boolean;
}
}//package mx.core
Section 87
//IUIComponent (mx.core.IUIComponent)
package mx.core {
import flash.display.*;
import mx.managers.*;
public interface IUIComponent extends IFlexDisplayObject {
function set focusPane(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Sprite):void;
function get enabled():Boolean;
function set enabled(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Boolean):void;
function set isPopUp(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Boolean):void;
function get explicitMinHeight():Number;
function get percentWidth():Number;
function get isPopUp():Boolean;
function get owner():DisplayObjectContainer;
function get percentHeight():Number;
function get baselinePosition():Number;
function owns(Number:DisplayObject):Boolean;
function initialize():void;
function get maxWidth():Number;
function get minWidth():Number;
function getExplicitOrMeasuredWidth():Number;
function get explicitMaxWidth():Number;
function get explicitMaxHeight():Number;
function set percentHeight(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Number):void;
function get minHeight():Number;
function set percentWidth(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Number):void;
function get document():Object;
function get focusPane():Sprite;
function getExplicitOrMeasuredHeight():Number;
function set tweeningProperties(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Array):void;
function set explicitWidth(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Number):void;
function set measuredMinHeight(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Number):void;
function get explicitMinWidth():Number;
function get tweeningProperties():Array;
function get maxHeight():Number;
function set owner(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:DisplayObjectContainer):void;
function set includeInLayout(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Boolean):void;
function setVisible(_arg1:Boolean, _arg2:Boolean=false):void;
function parentChanged(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:DisplayObjectContainer):void;
function get explicitWidth():Number;
function get measuredMinHeight():Number;
function set measuredMinWidth(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Number):void;
function set explicitHeight(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Number):void;
function get includeInLayout():Boolean;
function get measuredMinWidth():Number;
function get explicitHeight():Number;
function set systemManager(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:ISystemManager):void;
function set document(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Object):void;
function get systemManager():ISystemManager;
}
}//package mx.core
Section 88
//MovieClipAsset (mx.core.MovieClipAsset)
package mx.core {
public class MovieClipAsset extends FlexMovieClip implements IFlexAsset, IFlexDisplayObject, IBorder {
private var _measuredHeight:Number;
private var _measuredWidth:Number;
mx_internal static const VERSION:String = "3.3.0.4852";
public function MovieClipAsset(){
super();
_measuredWidth = width;
_measuredHeight = height;
}
public function get measuredWidth():Number{
return (_measuredWidth);
}
public function get measuredHeight():Number{
return (_measuredHeight);
}
public function setActualSize(newWidth:Number, newHeight:Number):void{
width = newWidth;
height = newHeight;
}
public function move(x:Number, y:Number):void{
this.x = x;
this.y = y;
}
public function get borderMetrics():EdgeMetrics{
if (scale9Grid == null){
return (EdgeMetrics.EMPTY);
};
return (new EdgeMetrics(scale9Grid.left, scale9Grid.top, Math.ceil((measuredWidth - scale9Grid.right)), Math.ceil((measuredHeight - scale9Grid.bottom))));
}
}
}//package mx.core
Section 89
//mx_internal (mx.core.mx_internal)
package mx.core {
public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal";
}//package mx.core
Section 90
//Singleton (mx.core.Singleton)
package mx.core {
public class Singleton {
mx_internal static const VERSION:String = "3.3.0.4852";
private static var classMap:Object = {};
public function Singleton(){
super();
}
public static function registerClass(interfaceName:String, clazz:Class):void{
var c:Class = classMap[interfaceName];
if (!c){
classMap[interfaceName] = clazz;
};
}
public static function getClass(interfaceName:String):Class{
return (classMap[interfaceName]);
}
public static function getInstance(interfaceName:String):Object{
var c:Class = classMap[interfaceName];
if (!c){
throw (new Error((("No class registered for interface '" + interfaceName) + "'.")));
};
return (c["getInstance"]());
}
}
}//package mx.core
Section 91
//SoundAsset (mx.core.SoundAsset)
package mx.core {
import flash.media.*;
public class SoundAsset extends Sound implements IFlexAsset {
mx_internal static const VERSION:String = "3.3.0.4852";
public function SoundAsset(){
super();
}
}
}//package mx.core
Section 92
//SpriteAsset (mx.core.SpriteAsset)
package mx.core {
public class SpriteAsset extends FlexSprite implements IFlexAsset, IFlexDisplayObject, IBorder {
private var _measuredHeight:Number;
private var _measuredWidth:Number;
mx_internal static const VERSION:String = "3.3.0.4852";
public function SpriteAsset(){
super();
_measuredWidth = width;
_measuredHeight = height;
}
public function get measuredWidth():Number{
return (_measuredWidth);
}
public function get measuredHeight():Number{
return (_measuredHeight);
}
public function setActualSize(newWidth:Number, newHeight:Number):void{
width = newWidth;
height = newHeight;
}
public function move(x:Number, y:Number):void{
this.x = x;
this.y = y;
}
public function get borderMetrics():EdgeMetrics{
if (scale9Grid == null){
return (EdgeMetrics.EMPTY);
};
return (new EdgeMetrics(scale9Grid.left, scale9Grid.top, Math.ceil((measuredWidth - scale9Grid.right)), Math.ceil((measuredHeight - scale9Grid.bottom))));
}
}
}//package mx.core
Section 93
//UIComponentGlobals (mx.core.UIComponentGlobals)
package mx.core {
import flash.geom.*;
import flash.display.*;
import mx.managers.*;
public class UIComponentGlobals {
mx_internal static var callLaterSuspendCount:int = 0;
mx_internal static var layoutManager:ILayoutManager;
mx_internal static var nextFocusObject:InteractiveObject;
mx_internal static var designTime:Boolean = false;
mx_internal static var tempMatrix:Matrix = new Matrix();
mx_internal static var callLaterDispatcherCount:int = 0;
private static var _catchCallLaterExceptions:Boolean = false;
public function UIComponentGlobals(){
super();
}
public static function set catchCallLaterExceptions(value:Boolean):void{
_catchCallLaterExceptions = value;
}
public static function get designMode():Boolean{
return (designTime);
}
public static function set designMode(value:Boolean):void{
designTime = value;
}
public static function get catchCallLaterExceptions():Boolean{
return (_catchCallLaterExceptions);
}
}
}//package mx.core
Section 94
//ModuleEvent (mx.events.ModuleEvent)
package mx.events {
import flash.events.*;
import mx.modules.*;
public class ModuleEvent extends ProgressEvent {
public var errorText:String;
private var _module:IModuleInfo;
public static const READY:String = "ready";
public static const ERROR:String = "error";
public static const PROGRESS:String = "progress";
mx_internal static const VERSION:String = "3.3.0.4852";
public static const SETUP:String = "setup";
public static const UNLOAD:String = "unload";
public function ModuleEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, bytesLoaded:uint=0, bytesTotal:uint=0, errorText:String=null, module:IModuleInfo=null){
super(type, bubbles, cancelable, bytesLoaded, bytesTotal);
this.errorText = errorText;
this._module = module;
}
public function get module():IModuleInfo{
if (_module){
return (_module);
};
return ((target as IModuleInfo));
}
override public function clone():Event{
return (new ModuleEvent(type, bubbles, cancelable, bytesLoaded, bytesTotal, errorText, module));
}
}
}//package mx.events
Section 95
//ResourceEvent (mx.events.ResourceEvent)
package mx.events {
import flash.events.*;
public class ResourceEvent extends ProgressEvent {
public var errorText:String;
mx_internal static const VERSION:String = "3.3.0.4852";
public static const COMPLETE:String = "complete";
public static const PROGRESS:String = "progress";
public static const ERROR:String = "error";
public function ResourceEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, bytesLoaded:uint=0, bytesTotal:uint=0, errorText:String=null){
super(type, bubbles, cancelable, bytesLoaded, bytesTotal);
this.errorText = errorText;
}
override public function clone():Event{
return (new ResourceEvent(type, bubbles, cancelable, bytesLoaded, bytesTotal, errorText));
}
}
}//package mx.events
Section 96
//StyleEvent (mx.events.StyleEvent)
package mx.events {
import flash.events.*;
public class StyleEvent extends ProgressEvent {
public var errorText:String;
mx_internal static const VERSION:String = "3.3.0.4852";
public static const COMPLETE:String = "complete";
public static const PROGRESS:String = "progress";
public static const ERROR:String = "error";
public function StyleEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, bytesLoaded:uint=0, bytesTotal:uint=0, errorText:String=null){
super(type, bubbles, cancelable, bytesLoaded, bytesTotal);
this.errorText = errorText;
}
override public function clone():Event{
return (new StyleEvent(type, bubbles, cancelable, bytesLoaded, bytesTotal, errorText));
}
}
}//package mx.events
Section 97
//RectangularDropShadow (mx.graphics.RectangularDropShadow)
package mx.graphics {
import flash.geom.*;
import mx.core.*;
import flash.display.*;
import mx.utils.*;
import flash.filters.*;
public class RectangularDropShadow {
private var leftShadow:BitmapData;
private var _tlRadius:Number;// = 0
private var _trRadius:Number;// = 0
private var _angle:Number;// = 45
private var topShadow:BitmapData;
private var _distance:Number;// = 4
private var rightShadow:BitmapData;
private var _alpha:Number;// = 0.4
private var shadow:BitmapData;
private var _brRadius:Number;// = 0
private var _blRadius:Number;// = 0
private var _color:int;// = 0
private var bottomShadow:BitmapData;
private var changed:Boolean;// = true
mx_internal static const VERSION:String = "3.3.0.4852";
public function RectangularDropShadow(){
super();
}
public function get blRadius():Number{
return (_blRadius);
}
public function set brRadius(value:Number):void{
if (_brRadius != value){
_brRadius = value;
changed = true;
};
}
public function set color(value:int):void{
if (_color != value){
_color = value;
changed = true;
};
}
public function drawShadow(g:Graphics, x:Number, y:Number, width:Number, height:Number):void{
var tlWidth:Number;
var tlHeight:Number;
var trWidth:Number;
var trHeight:Number;
var blWidth:Number;
var blHeight:Number;
var brWidth:Number;
var brHeight:Number;
if (changed){
createShadowBitmaps();
changed = false;
};
width = Math.ceil(width);
height = Math.ceil(height);
var leftThickness:int = (leftShadow) ? leftShadow.width : 0;
var rightThickness:int = (rightShadow) ? rightShadow.width : 0;
var topThickness:int = (topShadow) ? topShadow.height : 0;
var bottomThickness:int = (bottomShadow) ? bottomShadow.height : 0;
var widthThickness:int = (leftThickness + rightThickness);
var heightThickness:int = (topThickness + bottomThickness);
var maxCornerHeight:Number = ((height + heightThickness) / 2);
var maxCornerWidth:Number = ((width + widthThickness) / 2);
var matrix:Matrix = new Matrix();
if (((leftShadow) || (topShadow))){
tlWidth = Math.min((tlRadius + widthThickness), maxCornerWidth);
tlHeight = Math.min((tlRadius + heightThickness), maxCornerHeight);
matrix.tx = (x - leftThickness);
matrix.ty = (y - topThickness);
g.beginBitmapFill(shadow, matrix);
g.drawRect((x - leftThickness), (y - topThickness), tlWidth, tlHeight);
g.endFill();
};
if (((rightShadow) || (topShadow))){
trWidth = Math.min((trRadius + widthThickness), maxCornerWidth);
trHeight = Math.min((trRadius + heightThickness), maxCornerHeight);
matrix.tx = (((x + width) + rightThickness) - shadow.width);
matrix.ty = (y - topThickness);
g.beginBitmapFill(shadow, matrix);
g.drawRect((((x + width) + rightThickness) - trWidth), (y - topThickness), trWidth, trHeight);
g.endFill();
};
if (((leftShadow) || (bottomShadow))){
blWidth = Math.min((blRadius + widthThickness), maxCornerWidth);
blHeight = Math.min((blRadius + heightThickness), maxCornerHeight);
matrix.tx = (x - leftThickness);
matrix.ty = (((y + height) + bottomThickness) - shadow.height);
g.beginBitmapFill(shadow, matrix);
g.drawRect((x - leftThickness), (((y + height) + bottomThickness) - blHeight), blWidth, blHeight);
g.endFill();
};
if (((rightShadow) || (bottomShadow))){
brWidth = Math.min((brRadius + widthThickness), maxCornerWidth);
brHeight = Math.min((brRadius + heightThickness), maxCornerHeight);
matrix.tx = (((x + width) + rightThickness) - shadow.width);
matrix.ty = (((y + height) + bottomThickness) - shadow.height);
g.beginBitmapFill(shadow, matrix);
g.drawRect((((x + width) + rightThickness) - brWidth), (((y + height) + bottomThickness) - brHeight), brWidth, brHeight);
g.endFill();
};
if (leftShadow){
matrix.tx = (x - leftThickness);
matrix.ty = 0;
g.beginBitmapFill(leftShadow, matrix);
g.drawRect((x - leftThickness), ((y - topThickness) + tlHeight), leftThickness, ((((height + topThickness) + bottomThickness) - tlHeight) - blHeight));
g.endFill();
};
if (rightShadow){
matrix.tx = (x + width);
matrix.ty = 0;
g.beginBitmapFill(rightShadow, matrix);
g.drawRect((x + width), ((y - topThickness) + trHeight), rightThickness, ((((height + topThickness) + bottomThickness) - trHeight) - brHeight));
g.endFill();
};
if (topShadow){
matrix.tx = 0;
matrix.ty = (y - topThickness);
g.beginBitmapFill(topShadow, matrix);
g.drawRect(((x - leftThickness) + tlWidth), (y - topThickness), ((((width + leftThickness) + rightThickness) - tlWidth) - trWidth), topThickness);
g.endFill();
};
if (bottomShadow){
matrix.tx = 0;
matrix.ty = (y + height);
g.beginBitmapFill(bottomShadow, matrix);
g.drawRect(((x - leftThickness) + blWidth), (y + height), ((((width + leftThickness) + rightThickness) - blWidth) - brWidth), bottomThickness);
g.endFill();
};
}
public function get brRadius():Number{
return (_brRadius);
}
public function get angle():Number{
return (_angle);
}
private function createShadowBitmaps():void{
var roundRectWidth:Number = ((Math.max(tlRadius, blRadius) + (2 * distance)) + Math.max(trRadius, brRadius));
var roundRectHeight:Number = ((Math.max(tlRadius, trRadius) + (2 * distance)) + Math.max(blRadius, brRadius));
if ((((roundRectWidth < 0)) || ((roundRectHeight < 0)))){
return;
};
var roundRect:Shape = new FlexShape();
var g:Graphics = roundRect.graphics;
g.beginFill(0xFFFFFF);
GraphicsUtil.drawRoundRectComplex(g, 0, 0, roundRectWidth, roundRectHeight, tlRadius, trRadius, blRadius, brRadius);
g.endFill();
var roundRectBitmap:BitmapData = new BitmapData(roundRectWidth, roundRectHeight, true, 0);
roundRectBitmap.draw(roundRect, new Matrix());
var filter:DropShadowFilter = new DropShadowFilter(distance, angle, color, alpha);
filter.knockout = true;
var inputRect:Rectangle = new Rectangle(0, 0, roundRectWidth, roundRectHeight);
var outputRect:Rectangle = roundRectBitmap.generateFilterRect(inputRect, filter);
var leftThickness:Number = (inputRect.left - outputRect.left);
var rightThickness:Number = (outputRect.right - inputRect.right);
var topThickness:Number = (inputRect.top - outputRect.top);
var bottomThickness:Number = (outputRect.bottom - inputRect.bottom);
shadow = new BitmapData(outputRect.width, outputRect.height);
shadow.applyFilter(roundRectBitmap, inputRect, new Point(leftThickness, topThickness), filter);
var origin:Point = new Point(0, 0);
var rect:Rectangle = new Rectangle();
if (leftThickness > 0){
rect.x = 0;
rect.y = ((tlRadius + topThickness) + bottomThickness);
rect.width = leftThickness;
rect.height = 1;
leftShadow = new BitmapData(leftThickness, 1);
leftShadow.copyPixels(shadow, rect, origin);
} else {
leftShadow = null;
};
if (rightThickness > 0){
rect.x = (shadow.width - rightThickness);
rect.y = ((trRadius + topThickness) + bottomThickness);
rect.width = rightThickness;
rect.height = 1;
rightShadow = new BitmapData(rightThickness, 1);
rightShadow.copyPixels(shadow, rect, origin);
} else {
rightShadow = null;
};
if (topThickness > 0){
rect.x = ((tlRadius + leftThickness) + rightThickness);
rect.y = 0;
rect.width = 1;
rect.height = topThickness;
topShadow = new BitmapData(1, topThickness);
topShadow.copyPixels(shadow, rect, origin);
} else {
topShadow = null;
};
if (bottomThickness > 0){
rect.x = ((blRadius + leftThickness) + rightThickness);
rect.y = (shadow.height - bottomThickness);
rect.width = 1;
rect.height = bottomThickness;
bottomShadow = new BitmapData(1, bottomThickness);
bottomShadow.copyPixels(shadow, rect, origin);
} else {
bottomShadow = null;
};
}
public function get alpha():Number{
return (_alpha);
}
public function get color():int{
return (_color);
}
public function set angle(value:Number):void{
if (_angle != value){
_angle = value;
changed = true;
};
}
public function set trRadius(value:Number):void{
if (_trRadius != value){
_trRadius = value;
changed = true;
};
}
public function set tlRadius(value:Number):void{
if (_tlRadius != value){
_tlRadius = value;
changed = true;
};
}
public function get trRadius():Number{
return (_trRadius);
}
public function set distance(value:Number):void{
if (_distance != value){
_distance = value;
changed = true;
};
}
public function get distance():Number{
return (_distance);
}
public function get tlRadius():Number{
return (_tlRadius);
}
public function set alpha(value:Number):void{
if (_alpha != value){
_alpha = value;
changed = true;
};
}
public function set blRadius(value:Number):void{
if (_blRadius != value){
_blRadius = value;
changed = true;
};
}
}
}//package mx.graphics
Section 98
//IFocusManager (mx.managers.IFocusManager)
package mx.managers {
import flash.events.*;
import mx.core.*;
import flash.display.*;
public interface IFocusManager {
function get focusPane():Sprite;
function getFocus():IFocusManagerComponent;
function deactivate():void;
function set defaultButton(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\managers;IFocusManager.as:IButton):void;
function set focusPane(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\managers;IFocusManager.as:Sprite):void;
function set showFocusIndicator(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\managers;IFocusManager.as:Boolean):void;
function moveFocus(_arg1:String, _arg2:DisplayObject=null):void;
function addSWFBridge(_arg1:IEventDispatcher, _arg2:DisplayObject):void;
function removeSWFBridge(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\managers;IFocusManager.as:IEventDispatcher):void;
function get defaultButtonEnabled():Boolean;
function findFocusManagerComponent(value:InteractiveObject):IFocusManagerComponent;
function get nextTabIndex():int;
function get defaultButton():IButton;
function get showFocusIndicator():Boolean;
function setFocus(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\managers;IFocusManager.as:IFocusManagerComponent):void;
function activate():void;
function showFocus():void;
function set defaultButtonEnabled(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\managers;IFocusManager.as:Boolean):void;
function hideFocus():void;
function getNextFocusManagerComponent(value:Boolean=false):IFocusManagerComponent;
}
}//package mx.managers
Section 99
//IFocusManagerComponent (mx.managers.IFocusManagerComponent)
package mx.managers {
public interface IFocusManagerComponent {
function set focusEnabled(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\managers;IFocusManagerComponent.as:Boolean):void;
function drawFocus(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\managers;IFocusManagerComponent.as:Boolean):void;
function setFocus():void;
function get focusEnabled():Boolean;
function get tabEnabled():Boolean;
function get tabIndex():int;
function get mouseFocusEnabled():Boolean;
}
}//package mx.managers
Section 100
//IFocusManagerContainer (mx.managers.IFocusManagerContainer)
package mx.managers {
import flash.events.*;
import flash.display.*;
public interface IFocusManagerContainer extends IEventDispatcher {
function set focusManager(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\managers;IFocusManagerContainer.as:IFocusManager):void;
function get focusManager():IFocusManager;
function get systemManager():ISystemManager;
function contains(mx.managers:DisplayObject):Boolean;
}
}//package mx.managers
Section 101
//ILayoutManager (mx.managers.ILayoutManager)
package mx.managers {
import flash.events.*;
public interface ILayoutManager extends IEventDispatcher {
function validateNow():void;
function validateClient(_arg1:ILayoutManagerClient, _arg2:Boolean=false):void;
function isInvalid():Boolean;
function invalidateDisplayList(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\managers;ILayoutManager.as:ILayoutManagerClient):void;
function set usePhasedInstantiation(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\managers;ILayoutManager.as:Boolean):void;
function invalidateSize(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\managers;ILayoutManager.as:ILayoutManagerClient):void;
function get usePhasedInstantiation():Boolean;
function invalidateProperties(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\managers;ILayoutManager.as:ILayoutManagerClient):void;
}
}//package mx.managers
Section 102
//ILayoutManagerClient (mx.managers.ILayoutManagerClient)
package mx.managers {
import flash.events.*;
public interface ILayoutManagerClient extends IEventDispatcher {
function get updateCompletePendingFlag():Boolean;
function set updateCompletePendingFlag(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\managers;ILayoutManagerClient.as:Boolean):void;
function set initialized(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\managers;ILayoutManagerClient.as:Boolean):void;
function validateProperties():void;
function validateDisplayList():void;
function get nestLevel():int;
function get initialized():Boolean;
function get processedDescriptors():Boolean;
function validateSize(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\managers;ILayoutManagerClient.as:Boolean=false):void;
function set nestLevel(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\managers;ILayoutManagerClient.as:int):void;
function set processedDescriptors(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\managers;ILayoutManagerClient.as:Boolean):void;
}
}//package mx.managers
Section 103
//ISystemManager (mx.managers.ISystemManager)
package mx.managers {
import flash.events.*;
import flash.geom.*;
import mx.core.*;
import flash.display.*;
import flash.text.*;
public interface ISystemManager extends IEventDispatcher, IChildList, IFlexModuleFactory {
function set focusPane(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:Sprite):void;
function get toolTipChildren():IChildList;
function useSWFBridge():Boolean;
function isFontFaceEmbedded(flash.display:TextFormat):Boolean;
function deployMouseShields(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:Boolean):void;
function get rawChildren():IChildList;
function get topLevelSystemManager():ISystemManager;
function dispatchEventFromSWFBridges(_arg1:Event, _arg2:IEventDispatcher=null, _arg3:Boolean=false, _arg4:Boolean=false):void;
function getSandboxRoot():DisplayObject;
function get swfBridgeGroup():ISWFBridgeGroup;
function removeFocusManager(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:IFocusManagerContainer):void;
function addChildToSandboxRoot(_arg1:String, _arg2:DisplayObject):void;
function get document():Object;
function get focusPane():Sprite;
function get loaderInfo():LoaderInfo;
function addChildBridge(_arg1:IEventDispatcher, _arg2:DisplayObject):void;
function getTopLevelRoot():DisplayObject;
function removeChildBridge(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:IEventDispatcher):void;
function isDisplayObjectInABridgedApplication(flash.display:DisplayObject):Boolean;
function get popUpChildren():IChildList;
function get screen():Rectangle;
function removeChildFromSandboxRoot(_arg1:String, _arg2:DisplayObject):void;
function getDefinitionByName(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\managers;ISystemManager.as:String):Object;
function activate(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:IFocusManagerContainer):void;
function deactivate(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:IFocusManagerContainer):void;
function get cursorChildren():IChildList;
function set document(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:Object):void;
function get embeddedFontList():Object;
function set numModalWindows(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:int):void;
function isTopLevel():Boolean;
function isTopLevelRoot():Boolean;
function get numModalWindows():int;
function addFocusManager(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:IFocusManagerContainer):void;
function get stage():Stage;
function getVisibleApplicationRect(value:Rectangle=null):Rectangle;
}
}//package mx.managers
Section 104
//SystemManagerGlobals (mx.managers.SystemManagerGlobals)
package mx.managers {
public class SystemManagerGlobals {
public static var topLevelSystemManagers:Array = [];
public static var changingListenersInOtherSystemManagers:Boolean;
public static var bootstrapLoaderInfoURL:String;
public static var showMouseCursor:Boolean;
public function SystemManagerGlobals(){
super();
}
}
}//package mx.managers
Section 105
//IModuleInfo (mx.modules.IModuleInfo)
package mx.modules {
import flash.events.*;
import mx.core.*;
import flash.utils.*;
import flash.system.*;
public interface IModuleInfo extends IEventDispatcher {
function get ready():Boolean;
function get loaded():Boolean;
function load(_arg1:ApplicationDomain=null, _arg2:SecurityDomain=null, _arg3:ByteArray=null):void;
function release():void;
function get error():Boolean;
function get data():Object;
function publish(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\modules;IModuleInfo.as:IFlexModuleFactory):void;
function get factory():IFlexModuleFactory;
function set data(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\modules;IModuleInfo.as:Object):void;
function get url():String;
function get setup():Boolean;
function unload():void;
}
}//package mx.modules
Section 106
//ModuleManager (mx.modules.ModuleManager)
package mx.modules {
import mx.core.*;
public class ModuleManager {
mx_internal static const VERSION:String = "3.3.0.4852";
public function ModuleManager(){
super();
}
public static function getModule(url:String):IModuleInfo{
return (getSingleton().getModule(url));
}
private static function getSingleton():Object{
if (!ModuleManagerGlobals.managerSingleton){
ModuleManagerGlobals.managerSingleton = new ModuleManagerImpl();
};
return (ModuleManagerGlobals.managerSingleton);
}
public static function getAssociatedFactory(object:Object):IFlexModuleFactory{
return (getSingleton().getAssociatedFactory(object));
}
}
}//package mx.modules
import flash.events.*;
import mx.core.*;
import flash.display.*;
import flash.utils.*;
import flash.system.*;
import mx.events.*;
import flash.net.*;
class ModuleInfoProxy extends EventDispatcher implements IModuleInfo {
private var _data:Object;
private var info:ModuleInfo;
private var referenced:Boolean;// = false
private function ModuleInfoProxy(info:ModuleInfo){
super();
this.info = info;
info.addEventListener(ModuleEvent.SETUP, moduleEventHandler, false, 0, true);
info.addEventListener(ModuleEvent.PROGRESS, moduleEventHandler, false, 0, true);
info.addEventListener(ModuleEvent.READY, moduleEventHandler, false, 0, true);
info.addEventListener(ModuleEvent.ERROR, moduleEventHandler, false, 0, true);
info.addEventListener(ModuleEvent.UNLOAD, moduleEventHandler, false, 0, true);
}
public function get loaded():Boolean{
return (info.loaded);
}
public function release():void{
if (referenced){
info.removeReference();
referenced = false;
};
}
public function get error():Boolean{
return (info.error);
}
public function get factory():IFlexModuleFactory{
return (info.factory);
}
public function publish(factory:IFlexModuleFactory):void{
info.publish(factory);
}
public function set data(value:Object):void{
_data = value;
}
public function get ready():Boolean{
return (info.ready);
}
public function load(applicationDomain:ApplicationDomain=null, securityDomain:SecurityDomain=null, bytes:ByteArray=null):void{
var moduleEvent:ModuleEvent;
info.resurrect();
if (!referenced){
info.addReference();
referenced = true;
};
if (info.error){
dispatchEvent(new ModuleEvent(ModuleEvent.ERROR));
} else {
if (info.loaded){
if (info.setup){
dispatchEvent(new ModuleEvent(ModuleEvent.SETUP));
if (info.ready){
moduleEvent = new ModuleEvent(ModuleEvent.PROGRESS);
moduleEvent.bytesLoaded = info.size;
moduleEvent.bytesTotal = info.size;
dispatchEvent(moduleEvent);
dispatchEvent(new ModuleEvent(ModuleEvent.READY));
};
};
} else {
info.load(applicationDomain, securityDomain, bytes);
};
};
}
private function moduleEventHandler(event:ModuleEvent):void{
dispatchEvent(event);
}
public function get url():String{
return (info.url);
}
public function get data():Object{
return (_data);
}
public function get setup():Boolean{
return (info.setup);
}
public function unload():void{
info.unload();
info.removeEventListener(ModuleEvent.SETUP, moduleEventHandler);
info.removeEventListener(ModuleEvent.PROGRESS, moduleEventHandler);
info.removeEventListener(ModuleEvent.READY, moduleEventHandler);
info.removeEventListener(ModuleEvent.ERROR, moduleEventHandler);
info.removeEventListener(ModuleEvent.UNLOAD, moduleEventHandler);
}
}
class ModuleManagerImpl extends EventDispatcher {
private var moduleList:Object;
private function ModuleManagerImpl(){
moduleList = {};
super();
}
public function getModule(url:String):IModuleInfo{
var info:ModuleInfo = (moduleList[url] as ModuleInfo);
if (!info){
info = new ModuleInfo(url);
moduleList[url] = info;
};
return (new ModuleInfoProxy(info));
}
public function getAssociatedFactory(object:Object):IFlexModuleFactory{
var m:Object;
var info:ModuleInfo;
var domain:ApplicationDomain;
var cls:Class;
var object = object;
var className:String = getQualifiedClassName(object);
for each (m in moduleList) {
info = (m as ModuleInfo);
if (!info.ready){
} else {
domain = info.applicationDomain;
cls = Class(domain.getDefinition(className));
if ((object is cls)){
return (info.factory);
};
//unresolved jump
var _slot1 = error;
};
};
return (null);
}
}
class ModuleInfo extends EventDispatcher {
private var _error:Boolean;// = false
private var loader:Loader;
private var factoryInfo:FactoryInfo;
private var limbo:Dictionary;
private var _loaded:Boolean;// = false
private var _ready:Boolean;// = false
private var numReferences:int;// = 0
private var _url:String;
private var _setup:Boolean;// = false
private function ModuleInfo(url:String){
super();
_url = url;
}
private function clearLoader():void{
if (loader){
if (loader.contentLoaderInfo){
loader.contentLoaderInfo.removeEventListener(Event.INIT, initHandler);
loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, completeHandler);
loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, progressHandler);
loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, errorHandler);
loader.contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler);
};
if (loader.content){
loader.content.removeEventListener("ready", readyHandler);
loader.content.removeEventListener("error", moduleErrorHandler);
};
//unresolved jump
var _slot1 = error;
if (_loaded){
loader.close();
//unresolved jump
var _slot1 = error;
};
loader.unload();
//unresolved jump
var _slot1 = error;
loader = null;
};
}
public function get size():int{
return ((((!(limbo)) && (factoryInfo))) ? factoryInfo.bytesTotal : 0);
}
public function get loaded():Boolean{
return ((limbo) ? false : _loaded);
}
public function release():void{
if (((_ready) && (!(limbo)))){
limbo = new Dictionary(true);
limbo[factoryInfo] = 1;
factoryInfo = null;
} else {
unload();
};
}
public function get error():Boolean{
return ((limbo) ? false : _error);
}
public function get factory():IFlexModuleFactory{
return ((((!(limbo)) && (factoryInfo))) ? factoryInfo.factory : null);
}
public function completeHandler(event:Event):void{
var moduleEvent:ModuleEvent = new ModuleEvent(ModuleEvent.PROGRESS, event.bubbles, event.cancelable);
moduleEvent.bytesLoaded = loader.contentLoaderInfo.bytesLoaded;
moduleEvent.bytesTotal = loader.contentLoaderInfo.bytesTotal;
dispatchEvent(moduleEvent);
}
public function publish(factory:IFlexModuleFactory):void{
if (factoryInfo){
return;
};
if (_url.indexOf("published://") != 0){
return;
};
factoryInfo = new FactoryInfo();
factoryInfo.factory = factory;
_loaded = true;
_setup = true;
_ready = true;
_error = false;
dispatchEvent(new ModuleEvent(ModuleEvent.SETUP));
dispatchEvent(new ModuleEvent(ModuleEvent.PROGRESS));
dispatchEvent(new ModuleEvent(ModuleEvent.READY));
}
public function initHandler(event:Event):void{
var moduleEvent:ModuleEvent;
var event = event;
factoryInfo = new FactoryInfo();
factoryInfo.factory = (loader.content as IFlexModuleFactory);
//unresolved jump
var _slot1 = error;
if (!factoryInfo.factory){
moduleEvent = new ModuleEvent(ModuleEvent.ERROR, event.bubbles, event.cancelable);
moduleEvent.bytesLoaded = 0;
moduleEvent.bytesTotal = 0;
moduleEvent.errorText = "SWF is not a loadable module";
dispatchEvent(moduleEvent);
return;
};
loader.content.addEventListener("ready", readyHandler);
loader.content.addEventListener("error", moduleErrorHandler);
factoryInfo.applicationDomain = loader.contentLoaderInfo.applicationDomain;
//unresolved jump
var _slot1 = error;
_setup = true;
dispatchEvent(new ModuleEvent(ModuleEvent.SETUP));
}
public function resurrect():void{
var f:Object;
if (((!(factoryInfo)) && (limbo))){
for (f in limbo) {
factoryInfo = (f as FactoryInfo);
break;
};
limbo = null;
};
if (!factoryInfo){
if (_loaded){
dispatchEvent(new ModuleEvent(ModuleEvent.UNLOAD));
};
loader = null;
_loaded = false;
_setup = false;
_ready = false;
_error = false;
};
}
public function errorHandler(event:ErrorEvent):void{
_error = true;
var moduleEvent:ModuleEvent = new ModuleEvent(ModuleEvent.ERROR, event.bubbles, event.cancelable);
moduleEvent.bytesLoaded = 0;
moduleEvent.bytesTotal = 0;
moduleEvent.errorText = event.text;
dispatchEvent(moduleEvent);
}
public function get ready():Boolean{
return ((limbo) ? false : _ready);
}
private function loadBytes(applicationDomain:ApplicationDomain, bytes:ByteArray):void{
var c:LoaderContext = new LoaderContext();
c.applicationDomain = (applicationDomain) ? applicationDomain : new ApplicationDomain(ApplicationDomain.currentDomain);
if (("allowLoadBytesCodeExecution" in c)){
c["allowLoadBytesCodeExecution"] = true;
};
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler);
loader.loadBytes(bytes, c);
}
public function removeReference():void{
numReferences--;
if (numReferences == 0){
release();
};
}
public function addReference():void{
numReferences++;
}
public function progressHandler(event:ProgressEvent):void{
var moduleEvent:ModuleEvent = new ModuleEvent(ModuleEvent.PROGRESS, event.bubbles, event.cancelable);
moduleEvent.bytesLoaded = event.bytesLoaded;
moduleEvent.bytesTotal = event.bytesTotal;
dispatchEvent(moduleEvent);
}
public function load(applicationDomain:ApplicationDomain=null, securityDomain:SecurityDomain=null, bytes:ByteArray=null):void{
if (_loaded){
return;
};
_loaded = true;
limbo = null;
if (bytes){
loadBytes(applicationDomain, bytes);
return;
};
if (_url.indexOf("published://") == 0){
return;
};
var r:URLRequest = new URLRequest(_url);
var c:LoaderContext = new LoaderContext();
c.applicationDomain = (applicationDomain) ? applicationDomain : new ApplicationDomain(ApplicationDomain.currentDomain);
c.securityDomain = securityDomain;
if ((((securityDomain == null)) && ((Security.sandboxType == Security.REMOTE)))){
c.securityDomain = SecurityDomain.currentDomain;
};
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler);
loader.load(r, c);
}
public function get url():String{
return (_url);
}
public function get applicationDomain():ApplicationDomain{
return ((((!(limbo)) && (factoryInfo))) ? factoryInfo.applicationDomain : null);
}
public function moduleErrorHandler(event:Event):void{
var errorEvent:ModuleEvent;
_ready = true;
factoryInfo.bytesTotal = loader.contentLoaderInfo.bytesTotal;
clearLoader();
if ((event is ModuleEvent)){
errorEvent = ModuleEvent(event);
} else {
errorEvent = new ModuleEvent(ModuleEvent.ERROR);
};
dispatchEvent(errorEvent);
}
public function readyHandler(event:Event):void{
_ready = true;
factoryInfo.bytesTotal = loader.contentLoaderInfo.bytesTotal;
clearLoader();
dispatchEvent(new ModuleEvent(ModuleEvent.READY));
}
public function get setup():Boolean{
return ((limbo) ? false : _setup);
}
public function unload():void{
clearLoader();
if (_loaded){
dispatchEvent(new ModuleEvent(ModuleEvent.UNLOAD));
};
limbo = null;
factoryInfo = null;
_loaded = false;
_setup = false;
_ready = false;
_error = false;
}
}
class FactoryInfo {
public var bytesTotal:int;// = 0
public var factory:IFlexModuleFactory;
public var applicationDomain:ApplicationDomain;
private function FactoryInfo(){
super();
}
}
Section 107
//ModuleManagerGlobals (mx.modules.ModuleManagerGlobals)
package mx.modules {
public class ModuleManagerGlobals {
public static var managerSingleton:Object = null;
public function ModuleManagerGlobals(){
super();
}
}
}//package mx.modules
Section 108
//IResourceBundle (mx.resources.IResourceBundle)
package mx.resources {
public interface IResourceBundle {
function get content():Object;
function get locale():String;
function get bundleName():String;
}
}//package mx.resources
Section 109
//IResourceManager (mx.resources.IResourceManager)
package mx.resources {
import flash.events.*;
import flash.system.*;
public interface IResourceManager extends IEventDispatcher {
function loadResourceModule(_arg1:String, _arg2:Boolean=true, _arg3:ApplicationDomain=null, _arg4:SecurityDomain=null):IEventDispatcher;
function getBoolean(_arg1:String, _arg2:String, _arg3:String=null):Boolean;
function getClass(_arg1:String, _arg2:String, _arg3:String=null):Class;
function getLocales():Array;
function removeResourceBundlesForLocale(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\resources;IResourceManager.as:String):void;
function getResourceBundle(_arg1:String, _arg2:String):IResourceBundle;
function get localeChain():Array;
function getInt(_arg1:String, _arg2:String, _arg3:String=null):int;
function update():void;
function set localeChain(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\resources;IResourceManager.as:Array):void;
function getUint(_arg1:String, _arg2:String, _arg3:String=null):uint;
function addResourceBundle(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\resources;IResourceManager.as:IResourceBundle):void;
function getStringArray(_arg1:String, _arg2:String, _arg3:String=null):Array;
function getBundleNamesForLocale(:String):Array;
function removeResourceBundle(_arg1:String, _arg2:String):void;
function getObject(_arg1:String, _arg2:String, _arg3:String=null);
function getString(_arg1:String, _arg2:String, _arg3:Array=null, _arg4:String=null):String;
function installCompiledResourceBundles(_arg1:ApplicationDomain, _arg2:Array, _arg3:Array):void;
function unloadResourceModule(_arg1:String, _arg2:Boolean=true):void;
function getPreferredLocaleChain():Array;
function findResourceBundleWithResource(_arg1:String, _arg2:String):IResourceBundle;
function initializeLocaleChain(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\resources;IResourceManager.as:Array):void;
function getNumber(_arg1:String, _arg2:String, _arg3:String=null):Number;
}
}//package mx.resources
Section 110
//IResourceModule (mx.resources.IResourceModule)
package mx.resources {
public interface IResourceModule {
function get resourceBundles():Array;
}
}//package mx.resources
Section 111
//LocaleSorter (mx.resources.LocaleSorter)
package mx.resources {
public class LocaleSorter {
mx_internal static const VERSION:String = "3.3.0.4852";
public function LocaleSorter(){
super();
}
private static function normalizeLocale(locale:String):String{
return (locale.toLowerCase().replace(/-/g, "_"));
}
public static function sortLocalesByPreference(appLocales:Array, systemPreferences:Array, ultimateFallbackLocale:String=null, addAll:Boolean=false):Array{
var result:Array;
var hasLocale:Object;
var i:int;
var j:int;
var k:int;
var l:int;
var locale:String;
var plocale:LocaleID;
var appLocales = appLocales;
var systemPreferences = systemPreferences;
var ultimateFallbackLocale = ultimateFallbackLocale;
var addAll = addAll;
var promote:Function = function (locale:String):void{
if (typeof(hasLocale[locale]) != "undefined"){
result.push(appLocales[hasLocale[locale]]);
delete hasLocale[locale];
};
};
result = [];
hasLocale = {};
var locales:Array = trimAndNormalize(appLocales);
var preferenceLocales:Array = trimAndNormalize(systemPreferences);
addUltimateFallbackLocale(preferenceLocales, ultimateFallbackLocale);
j = 0;
while (j < locales.length) {
hasLocale[locales[j]] = j;
j = (j + 1);
};
i = 0;
l = preferenceLocales.length;
while (i < l) {
plocale = LocaleID.fromString(preferenceLocales[i]);
promote(preferenceLocales[i]);
promote(plocale.toString());
while (plocale.transformToParent()) {
promote(plocale.toString());
};
plocale = LocaleID.fromString(preferenceLocales[i]);
j = 0;
while (j < l) {
locale = preferenceLocales[j];
if (plocale.isSiblingOf(LocaleID.fromString(locale))){
promote(locale);
};
j = (j + 1);
};
j = 0;
k = locales.length;
while (j < k) {
locale = locales[j];
if (plocale.isSiblingOf(LocaleID.fromString(locale))){
promote(locale);
};
j = (j + 1);
};
i = (i + 1);
};
if (addAll){
j = 0;
k = locales.length;
while (j < k) {
promote(locales[j]);
j = (j + 1);
};
};
return (result);
}
private static function addUltimateFallbackLocale(preferenceLocales:Array, ultimateFallbackLocale:String):void{
var locale:String;
if (((!((ultimateFallbackLocale == null))) && (!((ultimateFallbackLocale == ""))))){
locale = normalizeLocale(ultimateFallbackLocale);
if (preferenceLocales.indexOf(locale) == -1){
preferenceLocales.push(locale);
};
};
}
private static function trimAndNormalize(list:Array):Array{
var resultList:Array = [];
var i:int;
while (i < list.length) {
resultList.push(normalizeLocale(list[i]));
i++;
};
return (resultList);
}
}
}//package mx.resources
class LocaleID {
private var privateLangs:Boolean;// = false
private var script:String;// = ""
private var variants:Array;
private var privates:Array;
private var extensions:Object;
private var lang:String;// = ""
private var region:String;// = ""
private var extended_langs:Array;
public static const STATE_PRIMARY_LANGUAGE:int = 0;
public static const STATE_REGION:int = 3;
public static const STATE_EXTENDED_LANGUAGES:int = 1;
public static const STATE_EXTENSIONS:int = 5;
public static const STATE_SCRIPT:int = 2;
public static const STATE_VARIANTS:int = 4;
public static const STATE_PRIVATES:int = 6;
private function LocaleID(){
extended_langs = [];
variants = [];
extensions = {};
privates = [];
super();
}
public function equals(locale:LocaleID):Boolean{
return ((toString() == locale.toString()));
}
public function canonicalize():void{
var i:String;
for (i in extensions) {
if (extensions.hasOwnProperty(i)){
if (extensions[i].length == 0){
delete extensions[i];
} else {
extensions[i] = extensions[i].sort();
};
};
};
extended_langs = extended_langs.sort();
variants = variants.sort();
privates = privates.sort();
if (script == ""){
script = LocaleRegistry.getScriptByLang(lang);
};
if ((((script == "")) && (!((region == ""))))){
script = LocaleRegistry.getScriptByLangAndRegion(lang, region);
};
if ((((region == "")) && (!((script == ""))))){
region = LocaleRegistry.getDefaultRegionForLangAndScript(lang, script);
};
}
public function toString():String{
var i:String;
var stack:Array = [lang];
Array.prototype.push.apply(stack, extended_langs);
if (script != ""){
stack.push(script);
};
if (region != ""){
stack.push(region);
};
Array.prototype.push.apply(stack, variants);
for (i in extensions) {
if (extensions.hasOwnProperty(i)){
stack.push(i);
Array.prototype.push.apply(stack, extensions[i]);
};
};
if (privates.length > 0){
stack.push("x");
Array.prototype.push.apply(stack, privates);
};
return (stack.join("_"));
}
public function isSiblingOf(other:LocaleID):Boolean{
return ((((lang == other.lang)) && ((script == other.script))));
}
public function transformToParent():Boolean{
var i:String;
var lastExtension:Array;
var defaultRegion:String;
if (privates.length > 0){
privates.splice((privates.length - 1), 1);
return (true);
};
var lastExtensionName:String;
for (i in extensions) {
if (extensions.hasOwnProperty(i)){
lastExtensionName = i;
};
};
if (lastExtensionName){
lastExtension = extensions[lastExtensionName];
if (lastExtension.length == 1){
delete extensions[lastExtensionName];
return (true);
};
lastExtension.splice((lastExtension.length - 1), 1);
return (true);
};
if (variants.length > 0){
variants.splice((variants.length - 1), 1);
return (true);
};
if (script != ""){
if (LocaleRegistry.getScriptByLang(lang) != ""){
script = "";
return (true);
};
if (region == ""){
defaultRegion = LocaleRegistry.getDefaultRegionForLangAndScript(lang, script);
if (defaultRegion != ""){
region = defaultRegion;
script = "";
return (true);
};
};
};
if (region != ""){
if (!(((script == "")) && ((LocaleRegistry.getScriptByLang(lang) == "")))){
region = "";
return (true);
};
};
if (extended_langs.length > 0){
extended_langs.splice((extended_langs.length - 1), 1);
return (true);
};
return (false);
}
public static function fromString(str:String):LocaleID{
var last_extension:Array;
var subtag:String;
var subtag_length:int;
var firstChar:String;
var localeID:LocaleID = new (LocaleID);
var state:int = STATE_PRIMARY_LANGUAGE;
var subtags:Array = str.replace(/-/g, "_").split("_");
var i:int;
var l:int = subtags.length;
while (i < l) {
subtag = subtags[i].toLowerCase();
if (state == STATE_PRIMARY_LANGUAGE){
if (subtag == "x"){
localeID.privateLangs = true;
} else {
if (subtag == "i"){
localeID.lang = (localeID.lang + "i-");
} else {
localeID.lang = (localeID.lang + subtag);
state = STATE_EXTENDED_LANGUAGES;
};
};
} else {
subtag_length = subtag.length;
if (subtag_length == 0){
} else {
firstChar = subtag.charAt(0).toLowerCase();
if ((((state <= STATE_EXTENDED_LANGUAGES)) && ((subtag_length == 3)))){
localeID.extended_langs.push(subtag);
if (localeID.extended_langs.length == 3){
state = STATE_SCRIPT;
};
} else {
if ((((state <= STATE_SCRIPT)) && ((subtag_length == 4)))){
localeID.script = subtag;
state = STATE_REGION;
} else {
if ((((state <= STATE_REGION)) && ((((subtag_length == 2)) || ((subtag_length == 3)))))){
localeID.region = subtag;
state = STATE_VARIANTS;
} else {
if ((((state <= STATE_VARIANTS)) && ((((((((firstChar >= "a")) && ((firstChar <= "z")))) && ((subtag_length >= 5)))) || ((((((firstChar >= "0")) && ((firstChar <= "9")))) && ((subtag_length >= 4)))))))){
localeID.variants.push(subtag);
state = STATE_VARIANTS;
} else {
if ((((state < STATE_PRIVATES)) && ((subtag_length == 1)))){
if (subtag == "x"){
state = STATE_PRIVATES;
last_extension = localeID.privates;
} else {
state = STATE_EXTENSIONS;
last_extension = ((localeID.extensions[subtag]) || ([]));
localeID.extensions[subtag] = last_extension;
};
} else {
if (state >= STATE_EXTENSIONS){
last_extension.push(subtag);
};
};
};
};
};
};
};
};
i++;
};
localeID.canonicalize();
return (localeID);
}
}
class LocaleRegistry {
private static const SCRIPT_ID_BY_LANG:Object = {ab:5, af:1, am:2, ar:3, as:4, ay:1, be:5, bg:5, bn:4, bs:1, ca:1, ch:1, cs:1, cy:1, da:1, de:1, dv:6, dz:7, el:8, en:1, eo:1, es:1, et:1, eu:1, fa:3, fi:1, fj:1, fo:1, fr:1, frr:1, fy:1, ga:1, gl:1, gn:1, gu:9, gv:1, he:10, hi:11, hr:1, ht:1, hu:1, hy:12, id:1, in:1, is:1, it:1, iw:10, ja:13, ka:14, kk:5, kl:1, km:15, kn:16, ko:17, la:1, lb:1, ln:1, lo:18, lt:1, lv:1, mg:1, mh:1, mk:5, ml:19, mo:1, mr:11, ms:1, mt:1, my:20, na:1, nb:1, nd:1, ne:11, nl:1, nn:1, no:1, nr:1, ny:1, om:1, or:21, pa:22, pl:1, ps:3, pt:1, qu:1, rn:1, ro:1, ru:5, rw:1, sg:1, si:23, sk:1, sl:1, sm:1, so:1, sq:1, ss:1, st:1, sv:1, sw:1, ta:24, te:25, th:26, ti:2, tl:1, tn:1, to:1, tr:1, ts:1, uk:5, ur:3, ve:1, vi:1, wo:1, xh:1, yi:10, zu:1, cpe:1, dsb:1, frs:1, gsw:1, hsb:1, kok:11, mai:11, men:1, nds:1, niu:1, nqo:27, nso:1, son:1, tem:1, tkl:1, tmh:1, tpi:1, tvl:1, zbl:28};
private static const SCRIPTS:Array = ["", "latn", "ethi", "arab", "beng", "cyrl", "thaa", "tibt", "grek", "gujr", "hebr", "deva", "armn", "jpan", "geor", "khmr", "knda", "kore", "laoo", "mlym", "mymr", "orya", "guru", "sinh", "taml", "telu", "thai", "nkoo", "blis", "hans", "hant", "mong", "syrc"];
private static const DEFAULT_REGION_BY_LANG_AND_SCRIPT:Object = {bg:{5:"bg"}, ca:{1:"es"}, zh:{30:"tw", 29:"cn"}, cs:{1:"cz"}, da:{1:"dk"}, de:{1:"de"}, el:{8:"gr"}, en:{1:"us"}, es:{1:"es"}, fi:{1:"fi"}, fr:{1:"fr"}, he:{10:"il"}, hu:{1:"hu"}, is:{1:"is"}, it:{1:"it"}, ja:{13:"jp"}, ko:{17:"kr"}, nl:{1:"nl"}, nb:{1:"no"}, pl:{1:"pl"}, pt:{1:"br"}, ro:{1:"ro"}, ru:{5:"ru"}, hr:{1:"hr"}, sk:{1:"sk"}, sq:{1:"al"}, sv:{1:"se"}, th:{26:"th"}, tr:{1:"tr"}, ur:{3:"pk"}, id:{1:"id"}, uk:{5:"ua"}, be:{5:"by"}, sl:{1:"si"}, et:{1:"ee"}, lv:{1:"lv"}, lt:{1:"lt"}, fa:{3:"ir"}, vi:{1:"vn"}, hy:{12:"am"}, az:{1:"az", 5:"az"}, eu:{1:"es"}, mk:{5:"mk"}, af:{1:"za"}, ka:{14:"ge"}, fo:{1:"fo"}, hi:{11:"in"}, ms:{1:"my"}, kk:{5:"kz"}, ky:{5:"kg"}, sw:{1:"ke"}, uz:{1:"uz", 5:"uz"}, tt:{5:"ru"}, pa:{22:"in"}, gu:{9:"in"}, ta:{24:"in"}, te:{25:"in"}, kn:{16:"in"}, mr:{11:"in"}, sa:{11:"in"}, mn:{5:"mn"}, gl:{1:"es"}, kok:{11:"in"}, syr:{32:"sy"}, dv:{6:"mv"}, nn:{1:"no"}, sr:{1:"cs", 5:"cs"}, cy:{1:"gb"}, mi:{1:"nz"}, mt:{1:"mt"}, quz:{1:"bo"}, tn:{1:"za"}, xh:{1:"za"}, zu:{1:"za"}, nso:{1:"za"}, se:{1:"no"}, smj:{1:"no"}, sma:{1:"no"}, sms:{1:"fi"}, smn:{1:"fi"}, bs:{1:"ba"}};
private static const SCRIPT_BY_ID:Object = {latn:1, ethi:2, arab:3, beng:4, cyrl:5, thaa:6, tibt:7, grek:8, gujr:9, hebr:10, deva:11, armn:12, jpan:13, geor:14, khmr:15, knda:16, kore:17, laoo:18, mlym:19, mymr:20, orya:21, guru:22, sinh:23, taml:24, telu:25, thai:26, nkoo:27, blis:28, hans:29, hant:30, mong:31, syrc:32};
private static const SCRIPT_ID_BY_LANG_AND_REGION:Object = {zh:{cn:29, sg:29, tw:30, hk:30, mo:30}, mn:{cn:31, sg:5}, pa:{pk:3, in:22}, ha:{gh:1, ne:1}};
private function LocaleRegistry(){
super();
}
public static function getScriptByLangAndRegion(lang:String, region:String):String{
var langRegions:Object = SCRIPT_ID_BY_LANG_AND_REGION[lang];
if (langRegions == null){
return ("");
};
var scriptID:Object = langRegions[region];
if (scriptID == null){
return ("");
};
return (SCRIPTS[int(scriptID)].toLowerCase());
}
public static function getScriptByLang(lang:String):String{
var scriptID:Object = SCRIPT_ID_BY_LANG[lang];
if (scriptID == null){
return ("");
};
return (SCRIPTS[int(scriptID)].toLowerCase());
}
public static function getDefaultRegionForLangAndScript(lang:String, script:String):String{
var langObj:Object = DEFAULT_REGION_BY_LANG_AND_SCRIPT[lang];
var scriptID:Object = SCRIPT_BY_ID[script];
if ((((langObj == null)) || ((scriptID == null)))){
return ("");
};
return (((langObj[int(scriptID)]) || ("")));
}
}
Section 112
//ResourceBundle (mx.resources.ResourceBundle)
package mx.resources {
import mx.core.*;
import flash.system.*;
import mx.utils.*;
public class ResourceBundle implements IResourceBundle {
mx_internal var _locale:String;
private var _content:Object;
mx_internal var _bundleName:String;
mx_internal static const VERSION:String = "3.3.0.4852";
mx_internal static var backupApplicationDomain:ApplicationDomain;
mx_internal static var locale:String;
public function ResourceBundle(locale:String=null, bundleName:String=null){
_content = {};
super();
mx_internal::_locale = locale;
mx_internal::_bundleName = bundleName;
_content = getContent();
}
protected function getContent():Object{
return ({});
}
public function getString(key:String):String{
return (String(_getObject(key)));
}
public function get content():Object{
return (_content);
}
public function getBoolean(key:String, defaultValue:Boolean=true):Boolean{
var temp:String = _getObject(key).toLowerCase();
if (temp == "false"){
return (false);
};
if (temp == "true"){
return (true);
};
return (defaultValue);
}
public function getStringArray(key:String):Array{
var array:Array = _getObject(key).split(",");
var n:int = array.length;
var i:int;
while (i < n) {
array[i] = StringUtil.trim(array[i]);
i++;
};
return (array);
}
public function getObject(key:String):Object{
return (_getObject(key));
}
private function _getObject(key:String):Object{
var value:Object = content[key];
if (!value){
throw (new Error(((("Key " + key) + " was not found in resource bundle ") + bundleName)));
};
return (value);
}
public function get locale():String{
return (mx_internal::_locale);
}
public function get bundleName():String{
return (mx_internal::_bundleName);
}
public function getNumber(key:String):Number{
return (Number(_getObject(key)));
}
private static function getClassByName(name:String, domain:ApplicationDomain):Class{
var c:Class;
if (domain.hasDefinition(name)){
c = (domain.getDefinition(name) as Class);
};
return (c);
}
public static function getResourceBundle(baseName:String, currentDomain:ApplicationDomain=null):ResourceBundle{
var className:String;
var bundleClass:Class;
var bundleObj:Object;
var bundle:ResourceBundle;
if (!currentDomain){
currentDomain = ApplicationDomain.currentDomain;
};
className = (((mx_internal::locale + "$") + baseName) + "_properties");
bundleClass = getClassByName(className, currentDomain);
if (!bundleClass){
className = (baseName + "_properties");
bundleClass = getClassByName(className, currentDomain);
};
if (!bundleClass){
className = baseName;
bundleClass = getClassByName(className, currentDomain);
};
if (((!(bundleClass)) && (mx_internal::backupApplicationDomain))){
className = (baseName + "_properties");
bundleClass = getClassByName(className, mx_internal::backupApplicationDomain);
if (!bundleClass){
className = baseName;
bundleClass = getClassByName(className, mx_internal::backupApplicationDomain);
};
};
if (bundleClass){
bundleObj = new (bundleClass);
if ((bundleObj is ResourceBundle)){
bundle = ResourceBundle(bundleObj);
return (bundle);
};
};
throw (new Error(("Could not find resource bundle " + baseName)));
}
}
}//package mx.resources
Section 113
//ResourceManager (mx.resources.ResourceManager)
package mx.resources {
import mx.core.*;
public class ResourceManager {
mx_internal static const VERSION:String = "3.3.0.4852";
private static var implClassDependency:ResourceManagerImpl;
private static var instance:IResourceManager;
public function ResourceManager(){
super();
}
public static function getInstance():IResourceManager{
if (!instance){
instance = IResourceManager(Singleton.getInstance("mx.resources::IResourceManager"));
//unresolved jump
var _slot1 = e;
instance = new ResourceManagerImpl();
};
return (instance);
}
}
}//package mx.resources
Section 114
//ResourceManagerImpl (mx.resources.ResourceManagerImpl)
package mx.resources {
import flash.events.*;
import mx.core.*;
import flash.utils.*;
import flash.system.*;
import mx.modules.*;
import mx.events.*;
import mx.utils.*;
public class ResourceManagerImpl extends EventDispatcher implements IResourceManager {
private var resourceModules:Object;
private var initializedForNonFrameworkApp:Boolean;// = false
private var localeMap:Object;
private var _localeChain:Array;
mx_internal static const VERSION:String = "3.3.0.4852";
private static var instance:IResourceManager;
public function ResourceManagerImpl(){
localeMap = {};
resourceModules = {};
super();
}
public function get localeChain():Array{
return (_localeChain);
}
public function set localeChain(value:Array):void{
_localeChain = value;
update();
}
public function getStringArray(bundleName:String, resourceName:String, locale:String=null):Array{
var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale);
if (!resourceBundle){
return (null);
};
var value:* = resourceBundle.content[resourceName];
var array:Array = String(value).split(",");
var n:int = array.length;
var i:int;
while (i < n) {
array[i] = StringUtil.trim(array[i]);
i++;
};
return (array);
}
mx_internal function installCompiledResourceBundle(applicationDomain:ApplicationDomain, locale:String, bundleName:String):void{
var packageName:String;
var localName:String = bundleName;
var colonIndex:int = bundleName.indexOf(":");
if (colonIndex != -1){
packageName = bundleName.substring(0, colonIndex);
localName = bundleName.substring((colonIndex + 1));
};
if (getResourceBundle(locale, bundleName)){
return;
};
var resourceBundleClassName = (((locale + "$") + localName) + "_properties");
if (packageName != null){
resourceBundleClassName = ((packageName + ".") + resourceBundleClassName);
};
var bundleClass:Class;
if (applicationDomain.hasDefinition(resourceBundleClassName)){
bundleClass = Class(applicationDomain.getDefinition(resourceBundleClassName));
};
if (!bundleClass){
resourceBundleClassName = bundleName;
if (applicationDomain.hasDefinition(resourceBundleClassName)){
bundleClass = Class(applicationDomain.getDefinition(resourceBundleClassName));
};
};
if (!bundleClass){
resourceBundleClassName = (bundleName + "_properties");
if (applicationDomain.hasDefinition(resourceBundleClassName)){
bundleClass = Class(applicationDomain.getDefinition(resourceBundleClassName));
};
};
if (!bundleClass){
throw (new Error((((("Could not find compiled resource bundle '" + bundleName) + "' for locale '") + locale) + "'.")));
};
var resourceBundle:ResourceBundle = ResourceBundle(new (bundleClass));
resourceBundle.mx_internal::_locale = locale;
resourceBundle.mx_internal::_bundleName = bundleName;
addResourceBundle(resourceBundle);
}
public function getString(bundleName:String, resourceName:String, parameters:Array=null, locale:String=null):String{
var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale);
if (!resourceBundle){
return (null);
};
var value:String = String(resourceBundle.content[resourceName]);
if (parameters){
value = StringUtil.substitute(value, parameters);
};
return (value);
}
public function loadResourceModule(url:String, updateFlag:Boolean=true, applicationDomain:ApplicationDomain=null, securityDomain:SecurityDomain=null):IEventDispatcher{
var moduleInfo:IModuleInfo;
var resourceEventDispatcher:ResourceEventDispatcher;
var timer:Timer;
var timerHandler:Function;
var url = url;
var updateFlag = updateFlag;
var applicationDomain = applicationDomain;
var securityDomain = securityDomain;
moduleInfo = ModuleManager.getModule(url);
resourceEventDispatcher = new ResourceEventDispatcher(moduleInfo);
var readyHandler:Function = function (event:ModuleEvent):void{
var resourceModule:* = event.module.factory.create();
resourceModules[event.module.url].resourceModule = resourceModule;
if (updateFlag){
update();
};
};
moduleInfo.addEventListener(ModuleEvent.READY, readyHandler, false, 0, true);
var errorHandler:Function = function (event:ModuleEvent):void{
var resourceEvent:ResourceEvent;
var message:String = ("Unable to load resource module from " + url);
if (resourceEventDispatcher.willTrigger(ResourceEvent.ERROR)){
resourceEvent = new ResourceEvent(ResourceEvent.ERROR, event.bubbles, event.cancelable);
resourceEvent.bytesLoaded = 0;
resourceEvent.bytesTotal = 0;
resourceEvent.errorText = message;
resourceEventDispatcher.dispatchEvent(resourceEvent);
} else {
throw (new Error(message));
};
};
moduleInfo.addEventListener(ModuleEvent.ERROR, errorHandler, false, 0, true);
resourceModules[url] = new ResourceModuleInfo(moduleInfo, readyHandler, errorHandler);
timer = new Timer(0);
timerHandler = function (event:TimerEvent):void{
timer.removeEventListener(TimerEvent.TIMER, timerHandler);
timer.stop();
moduleInfo.load(applicationDomain, securityDomain);
};
timer.addEventListener(TimerEvent.TIMER, timerHandler, false, 0, true);
timer.start();
return (resourceEventDispatcher);
}
public function getLocales():Array{
var p:String;
var locales:Array = [];
for (p in localeMap) {
locales.push(p);
};
return (locales);
}
public function removeResourceBundlesForLocale(locale:String):void{
delete localeMap[locale];
}
public function getResourceBundle(locale:String, bundleName:String):IResourceBundle{
var bundleMap:Object = localeMap[locale];
if (!bundleMap){
return (null);
};
return (bundleMap[bundleName]);
}
private function dumpResourceModule(resourceModule):void{
var bundle:ResourceBundle;
var p:String;
for each (bundle in resourceModule.resourceBundles) {
trace(bundle.locale, bundle.bundleName);
for (p in bundle.content) {
};
};
}
public function addResourceBundle(resourceBundle:IResourceBundle):void{
var locale:String = resourceBundle.locale;
var bundleName:String = resourceBundle.bundleName;
if (!localeMap[locale]){
localeMap[locale] = {};
};
localeMap[locale][bundleName] = resourceBundle;
}
public function getObject(bundleName:String, resourceName:String, locale:String=null){
var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale);
if (!resourceBundle){
return (undefined);
};
return (resourceBundle.content[resourceName]);
}
public function getInt(bundleName:String, resourceName:String, locale:String=null):int{
var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale);
if (!resourceBundle){
return (0);
};
var value:* = resourceBundle.content[resourceName];
return (int(value));
}
private function findBundle(bundleName:String, resourceName:String, locale:String):IResourceBundle{
supportNonFrameworkApps();
return (((locale)!=null) ? getResourceBundle(locale, bundleName) : findResourceBundleWithResource(bundleName, resourceName));
}
private function supportNonFrameworkApps():void{
if (initializedForNonFrameworkApp){
return;
};
initializedForNonFrameworkApp = true;
if (getLocales().length > 0){
return;
};
var applicationDomain:ApplicationDomain = ApplicationDomain.currentDomain;
if (!applicationDomain.hasDefinition("_CompiledResourceBundleInfo")){
return;
};
var c:Class = Class(applicationDomain.getDefinition("_CompiledResourceBundleInfo"));
var locales:Array = c.compiledLocales;
var bundleNames:Array = c.compiledResourceBundleNames;
installCompiledResourceBundles(applicationDomain, locales, bundleNames);
localeChain = locales;
}
public function getBundleNamesForLocale(locale:String):Array{
var p:String;
var bundleNames:Array = [];
for (p in localeMap[locale]) {
bundleNames.push(p);
};
return (bundleNames);
}
public function getPreferredLocaleChain():Array{
return (LocaleSorter.sortLocalesByPreference(getLocales(), getSystemPreferredLocales(), null, true));
}
public function getNumber(bundleName:String, resourceName:String, locale:String=null):Number{
var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale);
if (!resourceBundle){
return (NaN);
};
var value:* = resourceBundle.content[resourceName];
return (Number(value));
}
public function update():void{
dispatchEvent(new Event(Event.CHANGE));
}
public function getClass(bundleName:String, resourceName:String, locale:String=null):Class{
var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale);
if (!resourceBundle){
return (null);
};
var value:* = resourceBundle.content[resourceName];
return ((value as Class));
}
public function removeResourceBundle(locale:String, bundleName:String):void{
delete localeMap[locale][bundleName];
if (getBundleNamesForLocale(locale).length == 0){
delete localeMap[locale];
};
}
public function initializeLocaleChain(compiledLocales:Array):void{
localeChain = LocaleSorter.sortLocalesByPreference(compiledLocales, getSystemPreferredLocales(), null, true);
}
public function findResourceBundleWithResource(bundleName:String, resourceName:String):IResourceBundle{
var locale:String;
var bundleMap:Object;
var bundle:ResourceBundle;
if (!_localeChain){
return (null);
};
var n:int = _localeChain.length;
var i:int;
while (i < n) {
locale = localeChain[i];
bundleMap = localeMap[locale];
if (!bundleMap){
} else {
bundle = bundleMap[bundleName];
if (!bundle){
} else {
if ((resourceName in bundle.content)){
return (bundle);
};
};
};
i++;
};
return (null);
}
public function getUint(bundleName:String, resourceName:String, locale:String=null):uint{
var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale);
if (!resourceBundle){
return (0);
};
var value:* = resourceBundle.content[resourceName];
return (uint(value));
}
private function getSystemPreferredLocales():Array{
var systemPreferences:Array;
if (Capabilities["languages"]){
systemPreferences = Capabilities["languages"];
} else {
systemPreferences = [Capabilities.language];
};
return (systemPreferences);
}
public function installCompiledResourceBundles(applicationDomain:ApplicationDomain, locales:Array, bundleNames:Array):void{
var locale:String;
var j:int;
var bundleName:String;
var n:int = (locales) ? locales.length : 0;
var m:int = (bundleNames) ? bundleNames.length : 0;
var i:int;
while (i < n) {
locale = locales[i];
j = 0;
while (j < m) {
bundleName = bundleNames[j];
mx_internal::installCompiledResourceBundle(applicationDomain, locale, bundleName);
j++;
};
i++;
};
}
public function getBoolean(bundleName:String, resourceName:String, locale:String=null):Boolean{
var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale);
if (!resourceBundle){
return (false);
};
var value:* = resourceBundle.content[resourceName];
return ((String(value).toLowerCase() == "true"));
}
public function unloadResourceModule(url:String, update:Boolean=true):void{
throw (new Error("unloadResourceModule() is not yet implemented."));
}
public static function getInstance():IResourceManager{
if (!instance){
instance = new (ResourceManagerImpl);
};
return (instance);
}
}
}//package mx.resources
import flash.events.*;
import mx.modules.*;
import mx.events.*;
class ResourceModuleInfo {
public var resourceModule:IResourceModule;
public var errorHandler:Function;
public var readyHandler:Function;
public var moduleInfo:IModuleInfo;
private function ResourceModuleInfo(moduleInfo:IModuleInfo, readyHandler:Function, errorHandler:Function){
super();
this.moduleInfo = moduleInfo;
this.readyHandler = readyHandler;
this.errorHandler = errorHandler;
}
}
class ResourceEventDispatcher extends EventDispatcher {
private function ResourceEventDispatcher(moduleInfo:IModuleInfo){
super();
moduleInfo.addEventListener(ModuleEvent.ERROR, moduleInfo_errorHandler, false, 0, true);
moduleInfo.addEventListener(ModuleEvent.PROGRESS, moduleInfo_progressHandler, false, 0, true);
moduleInfo.addEventListener(ModuleEvent.READY, moduleInfo_readyHandler, false, 0, true);
}
private function moduleInfo_progressHandler(event:ModuleEvent):void{
var resourceEvent:ResourceEvent = new ResourceEvent(ResourceEvent.PROGRESS, event.bubbles, event.cancelable);
resourceEvent.bytesLoaded = event.bytesLoaded;
resourceEvent.bytesTotal = event.bytesTotal;
dispatchEvent(resourceEvent);
}
private function moduleInfo_readyHandler(event:ModuleEvent):void{
var resourceEvent:ResourceEvent = new ResourceEvent(ResourceEvent.COMPLETE);
dispatchEvent(resourceEvent);
}
private function moduleInfo_errorHandler(event:ModuleEvent):void{
var resourceEvent:ResourceEvent = new ResourceEvent(ResourceEvent.ERROR, event.bubbles, event.cancelable);
resourceEvent.bytesLoaded = event.bytesLoaded;
resourceEvent.bytesTotal = event.bytesTotal;
resourceEvent.errorText = event.errorText;
dispatchEvent(resourceEvent);
}
}
Section 115
//HaloBorder (mx.skins.halo.HaloBorder)
package mx.skins.halo {
import mx.core.*;
import flash.display.*;
import mx.styles.*;
import mx.skins.*;
import mx.graphics.*;
import mx.utils.*;
public class HaloBorder extends RectangularBorder {
mx_internal var radiusObj:Object;
mx_internal var backgroundHole:Object;
mx_internal var radius:Number;
mx_internal var bRoundedCorners:Boolean;
mx_internal var backgroundColor:Object;
private var dropShadow:RectangularDropShadow;
protected var _borderMetrics:EdgeMetrics;
mx_internal var backgroundAlphaName:String;
mx_internal static const VERSION:String = "3.3.0.4852";
private static var BORDER_WIDTHS:Object = {none:0, solid:1, inset:2, outset:2, alert:3, dropdown:2, menuBorder:1, comboNonEdit:2};
public function HaloBorder(){
super();
BORDER_WIDTHS["default"] = 3;
}
override public function styleChanged(styleProp:String):void{
if ((((((((((styleProp == null)) || ((styleProp == "styleName")))) || ((styleProp == "borderStyle")))) || ((styleProp == "borderThickness")))) || ((styleProp == "borderSides")))){
_borderMetrics = null;
};
invalidateDisplayList();
}
override protected function updateDisplayList(w:Number, h:Number):void{
if (((isNaN(w)) || (isNaN(h)))){
return;
};
super.updateDisplayList(w, h);
backgroundColor = getBackgroundColor();
bRoundedCorners = false;
backgroundAlphaName = "backgroundAlpha";
backgroundHole = null;
radius = 0;
radiusObj = null;
drawBorder(w, h);
drawBackground(w, h);
}
mx_internal function drawBorder(w:Number, h:Number):void{
var backgroundAlpha:Number;
var borderCapColor:uint;
var borderColor:uint;
var borderSides:String;
var borderThickness:Number;
var buttonColor:uint;
var docked:Boolean;
var dropdownBorderColor:uint;
var fillColors:Array;
var footerColors:Array;
var highlightColor:uint;
var shadowCapColor:uint;
var shadowColor:uint;
var themeColor:uint;
var translucent:Boolean;
var hole:Object;
var borderColorDrk1:Number;
var borderColorDrk2:Number;
var borderColorLt1:Number;
var borderInnerColor:Object;
var contentAlpha:Number;
var br:Number;
var parentContainer:IContainer;
var vm:EdgeMetrics;
var showChrome:Boolean;
var borderAlpha:Number;
var fillAlphas:Array;
var backgroundColorNum:uint;
var bHasAllSides:Boolean;
var holeRadius:Number;
var borderStyle:String = getStyle("borderStyle");
var highlightAlphas:Array = getStyle("highlightAlphas");
var drawTopHighlight:Boolean;
var g:Graphics = graphics;
g.clear();
if (borderStyle){
switch (borderStyle){
case "none":
break;
case "inset":
borderColor = getStyle("borderColor");
borderColorDrk1 = ColorUtil.adjustBrightness2(borderColor, -40);
borderColorDrk2 = ColorUtil.adjustBrightness2(borderColor, 25);
borderColorLt1 = ColorUtil.adjustBrightness2(borderColor, 40);
borderInnerColor = backgroundColor;
if ((((borderInnerColor === null)) || ((borderInnerColor === "")))){
borderInnerColor = borderColor;
};
draw3dBorder(borderColorDrk2, borderColorDrk1, borderColorLt1, Number(borderInnerColor), Number(borderInnerColor), Number(borderInnerColor));
break;
case "outset":
borderColor = getStyle("borderColor");
borderColorDrk1 = ColorUtil.adjustBrightness2(borderColor, -40);
borderColorDrk2 = ColorUtil.adjustBrightness2(borderColor, -25);
borderColorLt1 = ColorUtil.adjustBrightness2(borderColor, 40);
borderInnerColor = backgroundColor;
if ((((borderInnerColor === null)) || ((borderInnerColor === "")))){
borderInnerColor = borderColor;
};
draw3dBorder(borderColorDrk2, borderColorLt1, borderColorDrk1, Number(borderInnerColor), Number(borderInnerColor), Number(borderInnerColor));
break;
case "alert":
case "default":
if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){
contentAlpha = getStyle("backgroundAlpha");
backgroundAlpha = getStyle("borderAlpha");
backgroundAlphaName = "borderAlpha";
radius = getStyle("cornerRadius");
bRoundedCorners = (getStyle("roundedBottomCorners").toString().toLowerCase() == "true");
br = (bRoundedCorners) ? radius : 0;
drawDropShadow(0, 0, w, h, radius, radius, br, br);
if (!bRoundedCorners){
radiusObj = {};
};
parentContainer = (parent as IContainer);
if (parentContainer){
vm = parentContainer.viewMetrics;
backgroundHole = {x:vm.left, y:vm.top, w:Math.max(0, ((w - vm.left) - vm.right)), h:Math.max(0, ((h - vm.top) - vm.bottom)), r:0};
if ((((backgroundHole.w > 0)) && ((backgroundHole.h > 0)))){
if (contentAlpha != backgroundAlpha){
drawDropShadow(backgroundHole.x, backgroundHole.y, backgroundHole.w, backgroundHole.h, 0, 0, 0, 0);
};
g.beginFill(Number(backgroundColor), contentAlpha);
g.drawRect(backgroundHole.x, backgroundHole.y, backgroundHole.w, backgroundHole.h);
g.endFill();
};
};
backgroundColor = getStyle("borderColor");
};
break;
case "dropdown":
dropdownBorderColor = getStyle("dropdownBorderColor");
drawDropShadow(0, 0, w, h, 4, 0, 0, 4);
drawRoundRect(0, 0, w, h, {tl:4, tr:0, br:0, bl:4}, 5068126, 1);
drawRoundRect(0, 0, w, h, {tl:4, tr:0, br:0, bl:4}, [0xFFFFFF, 0xFFFFFF], [0.7, 0], verticalGradientMatrix(0, 0, w, h));
drawRoundRect(1, 1, (w - 1), (h - 2), {tl:3, tr:0, br:0, bl:3}, 0xFFFFFF, 1);
drawRoundRect(1, 2, (w - 1), (h - 3), {tl:3, tr:0, br:0, bl:3}, [0xEEEEEE, 0xFFFFFF], 1, verticalGradientMatrix(0, 0, (w - 1), (h - 3)));
if (!isNaN(dropdownBorderColor)){
drawRoundRect(0, 0, (w + 1), h, {tl:4, tr:0, br:0, bl:4}, dropdownBorderColor, 0.5);
drawRoundRect(1, 1, (w - 1), (h - 2), {tl:3, tr:0, br:0, bl:3}, 0xFFFFFF, 1);
drawRoundRect(1, 2, (w - 1), (h - 3), {tl:3, tr:0, br:0, bl:3}, [0xEEEEEE, 0xFFFFFF], 1, verticalGradientMatrix(0, 0, (w - 1), (h - 3)));
};
backgroundColor = null;
break;
case "menuBorder":
borderColor = getStyle("borderColor");
drawRoundRect(0, 0, w, h, 0, borderColor, 1);
drawDropShadow(1, 1, (w - 2), (h - 2), 0, 0, 0, 0);
break;
case "comboNonEdit":
break;
case "controlBar":
if ((((w == 0)) || ((h == 0)))){
backgroundColor = null;
break;
};
footerColors = getStyle("footerColors");
showChrome = !((footerColors == null));
borderAlpha = getStyle("borderAlpha");
if (showChrome){
g.lineStyle(0, ((footerColors.length > 0)) ? footerColors[1] : footerColors[0], borderAlpha);
g.moveTo(0, 0);
g.lineTo(w, 0);
g.lineStyle(0, 0, 0);
if (((((parent) && (parent.parent))) && ((parent.parent is IStyleClient)))){
radius = IStyleClient(parent.parent).getStyle("cornerRadius");
borderAlpha = IStyleClient(parent.parent).getStyle("borderAlpha");
};
if (isNaN(radius)){
radius = 0;
};
if (IStyleClient(parent.parent).getStyle("roundedBottomCorners").toString().toLowerCase() != "true"){
radius = 0;
};
drawRoundRect(0, 1, w, (h - 1), {tl:0, tr:0, bl:radius, br:radius}, footerColors, borderAlpha, verticalGradientMatrix(0, 0, w, h));
if ((((footerColors.length > 1)) && (!((footerColors[0] == footerColors[1]))))){
drawRoundRect(0, 1, w, (h - 1), {tl:0, tr:0, bl:radius, br:radius}, [0xFFFFFF, 0xFFFFFF], highlightAlphas, verticalGradientMatrix(0, 0, w, h));
drawRoundRect(1, 2, (w - 2), (h - 3), {tl:0, tr:0, bl:(radius - 1), br:(radius - 1)}, footerColors, borderAlpha, verticalGradientMatrix(0, 0, w, h));
};
};
backgroundColor = null;
break;
case "applicationControlBar":
fillColors = getStyle("fillColors");
backgroundAlpha = getStyle("backgroundAlpha");
highlightAlphas = getStyle("highlightAlphas");
fillAlphas = getStyle("fillAlphas");
docked = getStyle("docked");
backgroundColorNum = uint(backgroundColor);
radius = getStyle("cornerRadius");
if (!radius){
radius = 0;
};
drawDropShadow(0, 1, w, (h - 1), radius, radius, radius, radius);
if (((!((backgroundColor === null))) && (StyleManager.isValidStyleValue(backgroundColor)))){
drawRoundRect(0, 1, w, (h - 1), radius, backgroundColorNum, backgroundAlpha, verticalGradientMatrix(0, 0, w, h));
};
drawRoundRect(0, 1, w, (h - 1), radius, fillColors, fillAlphas, verticalGradientMatrix(0, 0, w, h));
drawRoundRect(0, 1, w, ((h / 2) - 1), {tl:radius, tr:radius, bl:0, br:0}, [0xFFFFFF, 0xFFFFFF], highlightAlphas, verticalGradientMatrix(0, 0, w, ((h / 2) - 1)));
drawRoundRect(0, 1, w, (h - 1), {tl:radius, tr:radius, bl:0, br:0}, 0xFFFFFF, 0.3, null, GradientType.LINEAR, null, {x:0, y:2, w:w, h:(h - 2), r:{tl:radius, tr:radius, bl:0, br:0}});
backgroundColor = null;
break;
default:
borderColor = getStyle("borderColor");
borderThickness = getStyle("borderThickness");
borderSides = getStyle("borderSides");
bHasAllSides = true;
radius = getStyle("cornerRadius");
bRoundedCorners = (getStyle("roundedBottomCorners").toString().toLowerCase() == "true");
holeRadius = Math.max((radius - borderThickness), 0);
hole = {x:borderThickness, y:borderThickness, w:(w - (borderThickness * 2)), h:(h - (borderThickness * 2)), r:holeRadius};
if (!bRoundedCorners){
radiusObj = {tl:radius, tr:radius, bl:0, br:0};
hole.r = {tl:holeRadius, tr:holeRadius, bl:0, br:0};
};
if (borderSides != "left top right bottom"){
hole.r = {tl:holeRadius, tr:holeRadius, bl:(bRoundedCorners) ? holeRadius : 0, br:(bRoundedCorners) ? holeRadius : 0};
radiusObj = {tl:radius, tr:radius, bl:(bRoundedCorners) ? radius : 0, br:(bRoundedCorners) ? radius : 0};
borderSides = borderSides.toLowerCase();
if (borderSides.indexOf("left") == -1){
hole.x = 0;
hole.w = (hole.w + borderThickness);
hole.r.tl = 0;
hole.r.bl = 0;
radiusObj.tl = 0;
radiusObj.bl = 0;
bHasAllSides = false;
};
if (borderSides.indexOf("top") == -1){
hole.y = 0;
hole.h = (hole.h + borderThickness);
hole.r.tl = 0;
hole.r.tr = 0;
radiusObj.tl = 0;
radiusObj.tr = 0;
bHasAllSides = false;
};
if (borderSides.indexOf("right") == -1){
hole.w = (hole.w + borderThickness);
hole.r.tr = 0;
hole.r.br = 0;
radiusObj.tr = 0;
radiusObj.br = 0;
bHasAllSides = false;
};
if (borderSides.indexOf("bottom") == -1){
hole.h = (hole.h + borderThickness);
hole.r.bl = 0;
hole.r.br = 0;
radiusObj.bl = 0;
radiusObj.br = 0;
bHasAllSides = false;
};
};
if ((((radius == 0)) && (bHasAllSides))){
drawDropShadow(0, 0, w, h, 0, 0, 0, 0);
g.beginFill(borderColor);
g.drawRect(0, 0, w, h);
g.drawRect(borderThickness, borderThickness, (w - (2 * borderThickness)), (h - (2 * borderThickness)));
g.endFill();
} else {
if (radiusObj){
drawDropShadow(0, 0, w, h, radiusObj.tl, radiusObj.tr, radiusObj.br, radiusObj.bl);
drawRoundRect(0, 0, w, h, radiusObj, borderColor, 1, null, null, null, hole);
radiusObj.tl = Math.max((radius - borderThickness), 0);
radiusObj.tr = Math.max((radius - borderThickness), 0);
radiusObj.bl = (bRoundedCorners) ? Math.max((radius - borderThickness), 0) : 0;
radiusObj.br = (bRoundedCorners) ? Math.max((radius - borderThickness), 0) : 0;
} else {
drawDropShadow(0, 0, w, h, radius, radius, radius, radius);
drawRoundRect(0, 0, w, h, radius, borderColor, 1, null, null, null, hole);
radius = Math.max((getStyle("cornerRadius") - borderThickness), 0);
};
};
};
};
}
mx_internal function drawBackground(w:Number, h:Number):void{
var nd:Number;
var alpha:Number;
var bm:EdgeMetrics;
var g:Graphics;
var bottom:Number;
var bottomRadius:Number;
var highlightAlphas:Array;
var highlightAlpha:Number;
if (((((((!((backgroundColor === null))) && (!((backgroundColor === ""))))) || (getStyle("mouseShield")))) || (getStyle("mouseShieldChildren")))){
nd = Number(backgroundColor);
alpha = 1;
bm = getBackgroundColorMetrics();
g = graphics;
if (((((isNaN(nd)) || ((backgroundColor === "")))) || ((backgroundColor === null)))){
alpha = 0;
nd = 0xFFFFFF;
} else {
alpha = getStyle(backgroundAlphaName);
};
if (((!((radius == 0))) || (backgroundHole))){
bottom = bm.bottom;
if (radiusObj){
bottomRadius = (bRoundedCorners) ? radius : 0;
radiusObj = {tl:radius, tr:radius, bl:bottomRadius, br:bottomRadius};
drawRoundRect(bm.left, bm.top, (width - (bm.left + bm.right)), (height - (bm.top + bottom)), radiusObj, nd, alpha, null, GradientType.LINEAR, null, backgroundHole);
} else {
drawRoundRect(bm.left, bm.top, (width - (bm.left + bm.right)), (height - (bm.top + bottom)), radius, nd, alpha, null, GradientType.LINEAR, null, backgroundHole);
};
} else {
g.beginFill(nd, alpha);
g.drawRect(bm.left, bm.top, ((w - bm.right) - bm.left), ((h - bm.bottom) - bm.top));
g.endFill();
};
};
var borderStyle:String = getStyle("borderStyle");
if ((((((FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0)) && ((((borderStyle == "alert")) || ((borderStyle == "default")))))) && ((getStyle("headerColors") == null)))){
highlightAlphas = getStyle("highlightAlphas");
highlightAlpha = (highlightAlphas) ? highlightAlphas[0] : 0.3;
drawRoundRect(0, 0, w, h, {tl:radius, tr:radius, bl:0, br:0}, 0xFFFFFF, highlightAlpha, null, GradientType.LINEAR, null, {x:0, y:1, w:w, h:(h - 1), r:{tl:radius, tr:radius, bl:0, br:0}});
};
}
mx_internal function drawDropShadow(x:Number, y:Number, width:Number, height:Number, tlRadius:Number, trRadius:Number, brRadius:Number, blRadius:Number):void{
var angle:Number;
var docked:Boolean;
if ((((((((getStyle("dropShadowEnabled") == false)) || ((getStyle("dropShadowEnabled") == "false")))) || ((width == 0)))) || ((height == 0)))){
return;
};
var distance:Number = getStyle("shadowDistance");
var direction:String = getStyle("shadowDirection");
if (getStyle("borderStyle") == "applicationControlBar"){
docked = getStyle("docked");
angle = (docked) ? 90 : getDropShadowAngle(distance, direction);
distance = Math.abs(distance);
} else {
angle = getDropShadowAngle(distance, direction);
distance = (Math.abs(distance) + 2);
};
if (!dropShadow){
dropShadow = new RectangularDropShadow();
};
dropShadow.distance = distance;
dropShadow.angle = angle;
dropShadow.color = getStyle("dropShadowColor");
dropShadow.alpha = 0.4;
dropShadow.tlRadius = tlRadius;
dropShadow.trRadius = trRadius;
dropShadow.blRadius = blRadius;
dropShadow.brRadius = brRadius;
dropShadow.drawShadow(graphics, x, y, width, height);
}
mx_internal function getBackgroundColor():Object{
var color:Object;
var p:IUIComponent = (parent as IUIComponent);
if (((p) && (!(p.enabled)))){
color = getStyle("backgroundDisabledColor");
if (((!((color === null))) && (StyleManager.isValidStyleValue(color)))){
return (color);
};
};
return (getStyle("backgroundColor"));
}
mx_internal function draw3dBorder(c1:Number, c2:Number, c3:Number, c4:Number, c5:Number, c6:Number):void{
var w:Number = width;
var h:Number = height;
drawDropShadow(0, 0, width, height, 0, 0, 0, 0);
var g:Graphics = graphics;
g.beginFill(c1);
g.drawRect(0, 0, w, h);
g.drawRect(1, 0, (w - 2), h);
g.endFill();
g.beginFill(c2);
g.drawRect(1, 0, (w - 2), 1);
g.endFill();
g.beginFill(c3);
g.drawRect(1, (h - 1), (w - 2), 1);
g.endFill();
g.beginFill(c4);
g.drawRect(1, 1, (w - 2), 1);
g.endFill();
g.beginFill(c5);
g.drawRect(1, (h - 2), (w - 2), 1);
g.endFill();
g.beginFill(c6);
g.drawRect(1, 2, (w - 2), (h - 4));
g.drawRect(2, 2, (w - 4), (h - 4));
g.endFill();
}
mx_internal function getBackgroundColorMetrics():EdgeMetrics{
return (borderMetrics);
}
mx_internal function getDropShadowAngle(distance:Number, direction:String):Number{
if (direction == "left"){
return (((distance >= 0)) ? 135 : 225);
} else {
if (direction == "right"){
return (((distance >= 0)) ? 45 : 315);
//unresolved jump
};
};
return (!NULL!);
}
override public function get borderMetrics():EdgeMetrics{
var borderThickness:Number;
var borderSides:String;
if (_borderMetrics){
return (_borderMetrics);
};
var borderStyle:String = getStyle("borderStyle");
if ((((borderStyle == "default")) || ((borderStyle == "alert")))){
if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){
_borderMetrics = new EdgeMetrics(0, 0, 0, 0);
} else {
return (EdgeMetrics.EMPTY);
};
} else {
if ((((borderStyle == "controlBar")) || ((borderStyle == "applicationControlBar")))){
_borderMetrics = new EdgeMetrics(1, 1, 1, 1);
} else {
if (borderStyle == "solid"){
borderThickness = getStyle("borderThickness");
if (isNaN(borderThickness)){
borderThickness = 0;
};
_borderMetrics = new EdgeMetrics(borderThickness, borderThickness, borderThickness, borderThickness);
borderSides = getStyle("borderSides");
if (borderSides != "left top right bottom"){
if (borderSides.indexOf("left") == -1){
_borderMetrics.left = 0;
};
if (borderSides.indexOf("top") == -1){
_borderMetrics.top = 0;
};
if (borderSides.indexOf("right") == -1){
_borderMetrics.right = 0;
};
if (borderSides.indexOf("bottom") == -1){
_borderMetrics.bottom = 0;
};
};
} else {
borderThickness = BORDER_WIDTHS[borderStyle];
if (isNaN(borderThickness)){
borderThickness = 0;
};
_borderMetrics = new EdgeMetrics(borderThickness, borderThickness, borderThickness, borderThickness);
};
};
};
return (_borderMetrics);
}
}
}//package mx.skins.halo
Section 116
//HaloFocusRect (mx.skins.halo.HaloFocusRect)
package mx.skins.halo {
import flash.display.*;
import mx.styles.*;
import mx.skins.*;
import mx.utils.*;
public class HaloFocusRect extends ProgrammaticSkin implements IStyleClient {
private var _focusColor:Number;
mx_internal static const VERSION:String = "3.3.0.4852";
public function HaloFocusRect(){
super();
}
public function get inheritingStyles():Object{
return (styleName.inheritingStyles);
}
public function set inheritingStyles(value:Object):void{
}
public function notifyStyleChangeInChildren(styleProp:String, recursive:Boolean):void{
}
public function registerEffects(effects:Array):void{
}
public function regenerateStyleCache(recursive:Boolean):void{
}
public function get styleDeclaration():CSSStyleDeclaration{
return (CSSStyleDeclaration(styleName));
}
public function getClassStyleDeclarations():Array{
return ([]);
}
public function get className():String{
return ("HaloFocusRect");
}
public function clearStyle(styleProp:String):void{
if (styleProp == "focusColor"){
_focusColor = NaN;
};
}
public function setStyle(styleProp:String, newValue):void{
if (styleProp == "focusColor"){
_focusColor = newValue;
};
}
public function set nonInheritingStyles(value:Object):void{
}
public function get nonInheritingStyles():Object{
return (styleName.nonInheritingStyles);
}
override protected function updateDisplayList(w:Number, h:Number):void{
var tl:Number;
var bl:Number;
var tr:Number;
var br:Number;
var nr:Number;
var ellipseSize:Number;
super.updateDisplayList(w, h);
var focusBlendMode:String = getStyle("focusBlendMode");
var focusAlpha:Number = getStyle("focusAlpha");
var focusColor:Number = getStyle("focusColor");
var cornerRadius:Number = getStyle("cornerRadius");
var focusThickness:Number = getStyle("focusThickness");
var focusRoundedCorners:String = getStyle("focusRoundedCorners");
var themeColor:Number = getStyle("themeColor");
var rectColor:Number = focusColor;
if (isNaN(rectColor)){
rectColor = themeColor;
};
var g:Graphics = graphics;
g.clear();
if (focusBlendMode){
blendMode = focusBlendMode;
};
if (((!((focusRoundedCorners == "tl tr bl br"))) && ((cornerRadius > 0)))){
tl = 0;
bl = 0;
tr = 0;
br = 0;
nr = (cornerRadius + focusThickness);
if (focusRoundedCorners.indexOf("tl") >= 0){
tl = nr;
};
if (focusRoundedCorners.indexOf("tr") >= 0){
tr = nr;
};
if (focusRoundedCorners.indexOf("bl") >= 0){
bl = nr;
};
if (focusRoundedCorners.indexOf("br") >= 0){
br = nr;
};
g.beginFill(rectColor, focusAlpha);
GraphicsUtil.drawRoundRectComplex(g, 0, 0, w, h, tl, tr, bl, br);
tl = (tl) ? cornerRadius : 0;
tr = (tr) ? cornerRadius : 0;
bl = (bl) ? cornerRadius : 0;
br = (br) ? cornerRadius : 0;
GraphicsUtil.drawRoundRectComplex(g, focusThickness, focusThickness, (w - (2 * focusThickness)), (h - (2 * focusThickness)), tl, tr, bl, br);
g.endFill();
nr = (cornerRadius + (focusThickness / 2));
tl = (tl) ? nr : 0;
tr = (tr) ? nr : 0;
bl = (bl) ? nr : 0;
br = (br) ? nr : 0;
g.beginFill(rectColor, focusAlpha);
GraphicsUtil.drawRoundRectComplex(g, (focusThickness / 2), (focusThickness / 2), (w - focusThickness), (h - focusThickness), tl, tr, bl, br);
tl = (tl) ? cornerRadius : 0;
tr = (tr) ? cornerRadius : 0;
bl = (bl) ? cornerRadius : 0;
br = (br) ? cornerRadius : 0;
GraphicsUtil.drawRoundRectComplex(g, focusThickness, focusThickness, (w - (2 * focusThickness)), (h - (2 * focusThickness)), tl, tr, bl, br);
g.endFill();
} else {
g.beginFill(rectColor, focusAlpha);
ellipseSize = (((cornerRadius > 0)) ? (cornerRadius + focusThickness) : 0 * 2);
g.drawRoundRect(0, 0, w, h, ellipseSize, ellipseSize);
ellipseSize = (cornerRadius * 2);
g.drawRoundRect(focusThickness, focusThickness, (w - (2 * focusThickness)), (h - (2 * focusThickness)), ellipseSize, ellipseSize);
g.endFill();
g.beginFill(rectColor, focusAlpha);
ellipseSize = (((cornerRadius > 0)) ? (cornerRadius + (focusThickness / 2)) : 0 * 2);
g.drawRoundRect((focusThickness / 2), (focusThickness / 2), (w - focusThickness), (h - focusThickness), ellipseSize, ellipseSize);
ellipseSize = (cornerRadius * 2);
g.drawRoundRect(focusThickness, focusThickness, (w - (2 * focusThickness)), (h - (2 * focusThickness)), ellipseSize, ellipseSize);
g.endFill();
};
}
override public function getStyle(styleProp:String){
return (((styleProp == "focusColor")) ? _focusColor : super.getStyle(styleProp));
}
public function set styleDeclaration(value:CSSStyleDeclaration):void{
}
}
}//package mx.skins.halo
Section 117
//Border (mx.skins.Border)
package mx.skins {
import mx.core.*;
public class Border extends ProgrammaticSkin implements IBorder {
mx_internal static const VERSION:String = "3.3.0.4852";
public function Border(){
super();
}
public function get borderMetrics():EdgeMetrics{
return (EdgeMetrics.EMPTY);
}
}
}//package mx.skins
Section 118
//ProgrammaticSkin (mx.skins.ProgrammaticSkin)
package mx.skins {
import flash.geom.*;
import mx.core.*;
import flash.display.*;
import mx.styles.*;
import mx.managers.*;
import mx.utils.*;
public class ProgrammaticSkin extends FlexShape implements IFlexDisplayObject, IInvalidating, ILayoutManagerClient, ISimpleStyleClient, IProgrammaticSkin {
private var _initialized:Boolean;// = false
private var _height:Number;
private var invalidateDisplayListFlag:Boolean;// = false
private var _styleName:IStyleClient;
private var _nestLevel:int;// = 0
private var _processedDescriptors:Boolean;// = false
private var _updateCompletePendingFlag:Boolean;// = true
private var _width:Number;
mx_internal static const VERSION:String = "3.3.0.4852";
private static var tempMatrix:Matrix = new Matrix();
public function ProgrammaticSkin(){
super();
_width = measuredWidth;
_height = measuredHeight;
}
public function getStyle(styleProp:String){
return ((_styleName) ? _styleName.getStyle(styleProp) : null);
}
protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{
}
public function get nestLevel():int{
return (_nestLevel);
}
public function set nestLevel(value:int):void{
_nestLevel = value;
invalidateDisplayList();
}
override public function get height():Number{
return (_height);
}
public function get updateCompletePendingFlag():Boolean{
return (_updateCompletePendingFlag);
}
protected function verticalGradientMatrix(x:Number, y:Number, width:Number, height:Number):Matrix{
return (rotatedGradientMatrix(x, y, width, height, 90));
}
public function validateSize(recursive:Boolean=false):void{
}
public function invalidateDisplayList():void{
if (((!(invalidateDisplayListFlag)) && ((nestLevel > 0)))){
invalidateDisplayListFlag = true;
UIComponentGlobals.layoutManager.invalidateDisplayList(this);
};
}
public function set updateCompletePendingFlag(value:Boolean):void{
_updateCompletePendingFlag = value;
}
protected function horizontalGradientMatrix(x:Number, y:Number, width:Number, height:Number):Matrix{
return (rotatedGradientMatrix(x, y, width, height, 0));
}
override public function set height(value:Number):void{
_height = value;
invalidateDisplayList();
}
public function set processedDescriptors(value:Boolean):void{
_processedDescriptors = value;
}
public function validateDisplayList():void{
invalidateDisplayListFlag = false;
updateDisplayList(width, height);
}
public function get measuredWidth():Number{
return (0);
}
override public function set width(value:Number):void{
_width = value;
invalidateDisplayList();
}
public function get measuredHeight():Number{
return (0);
}
public function set initialized(value:Boolean):void{
_initialized = value;
}
protected function drawRoundRect(x:Number, y:Number, width:Number, height:Number, cornerRadius:Object=null, color:Object=null, alpha:Object=null, gradientMatrix:Matrix=null, gradientType:String="linear", gradientRatios:Array=null, hole:Object=null):void{
var ellipseSize:Number;
var alphas:Array;
var holeR:Object;
var g:Graphics = graphics;
if ((((width == 0)) || ((height == 0)))){
return;
};
if (color !== null){
if ((color is uint)){
g.beginFill(uint(color), Number(alpha));
} else {
if ((color is Array)){
alphas = ((alpha is Array)) ? (alpha as Array) : [alpha, alpha];
if (!gradientRatios){
gradientRatios = [0, 0xFF];
};
g.beginGradientFill(gradientType, (color as Array), alphas, gradientRatios, gradientMatrix);
};
};
};
if (!cornerRadius){
g.drawRect(x, y, width, height);
} else {
if ((cornerRadius is Number)){
ellipseSize = (Number(cornerRadius) * 2);
g.drawRoundRect(x, y, width, height, ellipseSize, ellipseSize);
} else {
GraphicsUtil.drawRoundRectComplex(g, x, y, width, height, cornerRadius.tl, cornerRadius.tr, cornerRadius.bl, cornerRadius.br);
};
};
if (hole){
holeR = hole.r;
if ((holeR is Number)){
ellipseSize = (Number(holeR) * 2);
g.drawRoundRect(hole.x, hole.y, hole.w, hole.h, ellipseSize, ellipseSize);
} else {
GraphicsUtil.drawRoundRectComplex(g, hole.x, hole.y, hole.w, hole.h, holeR.tl, holeR.tr, holeR.bl, holeR.br);
};
};
if (color !== null){
g.endFill();
};
}
public function get processedDescriptors():Boolean{
return (_processedDescriptors);
}
public function set styleName(value:Object):void{
if (_styleName != value){
_styleName = (value as IStyleClient);
invalidateDisplayList();
};
}
public function setActualSize(newWidth:Number, newHeight:Number):void{
var changed:Boolean;
if (_width != newWidth){
_width = newWidth;
changed = true;
};
if (_height != newHeight){
_height = newHeight;
changed = true;
};
if (changed){
invalidateDisplayList();
};
}
public function styleChanged(styleProp:String):void{
invalidateDisplayList();
}
override public function get width():Number{
return (_width);
}
public function invalidateProperties():void{
}
public function get initialized():Boolean{
return (_initialized);
}
protected function rotatedGradientMatrix(x:Number, y:Number, width:Number, height:Number, rotation:Number):Matrix{
tempMatrix.createGradientBox(width, height, ((rotation * Math.PI) / 180), x, y);
return (tempMatrix);
}
public function move(x:Number, y:Number):void{
this.x = x;
this.y = y;
}
public function get styleName():Object{
return (_styleName);
}
public function validateNow():void{
if (invalidateDisplayListFlag){
validateDisplayList();
};
}
public function invalidateSize():void{
}
public function validateProperties():void{
}
}
}//package mx.skins
Section 119
//RectangularBorder (mx.skins.RectangularBorder)
package mx.skins {
import flash.events.*;
import flash.geom.*;
import mx.core.*;
import flash.display.*;
import flash.utils.*;
import mx.styles.*;
import flash.system.*;
import mx.resources.*;
import flash.net.*;
public class RectangularBorder extends Border implements IRectangularBorder {
private var backgroundImage:DisplayObject;
private var backgroundImageHeight:Number;
private var _backgroundImageBounds:Rectangle;
private var backgroundImageStyle:Object;
private var backgroundImageWidth:Number;
private var resourceManager:IResourceManager;
mx_internal static const VERSION:String = "3.3.0.4852";
public function RectangularBorder(){
resourceManager = ResourceManager.getInstance();
super();
addEventListener(Event.REMOVED, removedHandler);
}
public function layoutBackgroundImage():void{
var sW:Number;
var sH:Number;
var sX:Number;
var sY:Number;
var scale:Number;
var g:Graphics;
var p:DisplayObject = parent;
var bm:EdgeMetrics = ((p is IContainer)) ? IContainer(p).viewMetrics : borderMetrics;
var scrollableBk = !((getStyle("backgroundAttachment") == "fixed"));
if (_backgroundImageBounds){
sW = _backgroundImageBounds.width;
sH = _backgroundImageBounds.height;
} else {
sW = ((width - bm.left) - bm.right);
sH = ((height - bm.top) - bm.bottom);
};
var percentage:Number = getBackgroundSize();
if (isNaN(percentage)){
sX = 1;
sY = 1;
} else {
scale = (percentage * 0.01);
sX = ((scale * sW) / backgroundImageWidth);
sY = ((scale * sH) / backgroundImageHeight);
};
backgroundImage.scaleX = sX;
backgroundImage.scaleY = sY;
var offsetX:Number = Math.round((0.5 * (sW - (backgroundImageWidth * sX))));
var offsetY:Number = Math.round((0.5 * (sH - (backgroundImageHeight * sY))));
backgroundImage.x = bm.left;
backgroundImage.y = bm.top;
var backgroundMask:Shape = Shape(backgroundImage.mask);
backgroundMask.x = bm.left;
backgroundMask.y = bm.top;
if (((scrollableBk) && ((p is IContainer)))){
offsetX = (offsetX - IContainer(p).horizontalScrollPosition);
offsetY = (offsetY - IContainer(p).verticalScrollPosition);
};
backgroundImage.alpha = getStyle("backgroundAlpha");
backgroundImage.x = (backgroundImage.x + offsetX);
backgroundImage.y = (backgroundImage.y + offsetY);
var maskWidth:Number = ((width - bm.left) - bm.right);
var maskHeight:Number = ((height - bm.top) - bm.bottom);
if (((!((backgroundMask.width == maskWidth))) || (!((backgroundMask.height == maskHeight))))){
g = backgroundMask.graphics;
g.clear();
g.beginFill(0xFFFFFF);
g.drawRect(0, 0, maskWidth, maskHeight);
g.endFill();
};
}
public function set backgroundImageBounds(value:Rectangle):void{
_backgroundImageBounds = value;
invalidateDisplayList();
}
private function getBackgroundSize():Number{
var index:int;
var percentage:Number = NaN;
var backgroundSize:Object = getStyle("backgroundSize");
if (((backgroundSize) && ((backgroundSize is String)))){
index = backgroundSize.indexOf("%");
if (index != -1){
percentage = Number(backgroundSize.substr(0, index));
};
};
return (percentage);
}
private function removedHandler(event:Event):void{
var childrenList:IChildList;
if (backgroundImage){
childrenList = ((parent is IRawChildrenContainer)) ? IRawChildrenContainer(parent).rawChildren : IChildList(parent);
childrenList.removeChild(backgroundImage.mask);
childrenList.removeChild(backgroundImage);
backgroundImage = null;
};
}
private function initBackgroundImage(image:DisplayObject):void{
backgroundImage = image;
if ((image is Loader)){
backgroundImageWidth = Loader(image).contentLoaderInfo.width;
backgroundImageHeight = Loader(image).contentLoaderInfo.height;
} else {
backgroundImageWidth = backgroundImage.width;
backgroundImageHeight = backgroundImage.height;
if ((image is ISimpleStyleClient)){
ISimpleStyleClient(image).styleName = styleName;
};
};
var childrenList:IChildList = ((parent is IRawChildrenContainer)) ? IRawChildrenContainer(parent).rawChildren : IChildList(parent);
var backgroundMask:Shape = new FlexShape();
backgroundMask.name = "backgroundMask";
backgroundMask.x = 0;
backgroundMask.y = 0;
childrenList.addChild(backgroundMask);
var myIndex:int = childrenList.getChildIndex(this);
childrenList.addChildAt(backgroundImage, (myIndex + 1));
backgroundImage.mask = backgroundMask;
}
public function get backgroundImageBounds():Rectangle{
return (_backgroundImageBounds);
}
public function get hasBackgroundImage():Boolean{
return (!((backgroundImage == null)));
}
private function completeEventHandler(event:Event):void{
if (!parent){
return;
};
var target:DisplayObject = DisplayObject(LoaderInfo(event.target).loader);
initBackgroundImage(target);
layoutBackgroundImage();
dispatchEvent(event.clone());
}
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{
var cls:Class;
var newStyleObj:DisplayObject;
var loader:Loader;
var loaderContext:LoaderContext;
var message:String;
var unscaledWidth = unscaledWidth;
var unscaledHeight = unscaledHeight;
if (!parent){
return;
};
var newStyle:Object = getStyle("backgroundImage");
if (newStyle != backgroundImageStyle){
removedHandler(null);
backgroundImageStyle = newStyle;
if (((newStyle) && ((newStyle as Class)))){
cls = Class(newStyle);
initBackgroundImage(new (cls));
} else {
if (((newStyle) && ((newStyle is String)))){
cls = Class(getDefinitionByName(String(newStyle)));
//unresolved jump
var _slot1 = e;
if (cls){
newStyleObj = new (cls);
initBackgroundImage(newStyleObj);
} else {
loader = new FlexLoader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeEventHandler);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorEventHandler);
loader.contentLoaderInfo.addEventListener(ErrorEvent.ERROR, errorEventHandler);
loaderContext = new LoaderContext();
loaderContext.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
loader.load(new URLRequest(String(newStyle)), loaderContext);
};
} else {
if (newStyle){
message = resourceManager.getString("skins", "notLoaded", [newStyle]);
throw (new Error(message));
};
};
};
};
if (backgroundImage){
layoutBackgroundImage();
};
}
private function errorEventHandler(event:Event):void{
}
}
}//package mx.skins
Section 120
//CSSStyleDeclaration (mx.styles.CSSStyleDeclaration)
package mx.styles {
import flash.events.*;
import mx.core.*;
import flash.display.*;
import flash.utils.*;
import mx.managers.*;
public class CSSStyleDeclaration extends EventDispatcher {
mx_internal var effects:Array;
protected var overrides:Object;
public var defaultFactory:Function;
public var factory:Function;
mx_internal var selectorRefCount:int;// = 0
private var styleManager:IStyleManager2;
private var clones:Dictionary;
mx_internal static const VERSION:String = "3.3.0.4852";
private static const NOT_A_COLOR:uint = 4294967295;
private static const FILTERMAP_PROP:String = "__reserved__filterMap";
public function CSSStyleDeclaration(selector:String=null){
clones = new Dictionary(true);
super();
if (selector){
styleManager = (Singleton.getInstance("mx.styles::IStyleManager2") as IStyleManager2);
styleManager.setStyleDeclaration(selector, this, false);
};
}
mx_internal function addStyleToProtoChain(chain:Object, target:DisplayObject, filterMap:Object=null):Object{
var p:String;
var emptyObjectFactory:Function;
var filteredChain:Object;
var filterObjectFactory:Function;
var i:String;
var chain = chain;
var target = target;
var filterMap = filterMap;
var nodeAddedToChain:Boolean;
var originalChain:Object = chain;
if (filterMap){
chain = {};
};
if (defaultFactory != null){
defaultFactory.prototype = chain;
chain = new defaultFactory();
nodeAddedToChain = true;
};
if (factory != null){
factory.prototype = chain;
chain = new factory();
nodeAddedToChain = true;
};
if (overrides){
if ((((defaultFactory == null)) && ((factory == null)))){
emptyObjectFactory = function ():void{
};
emptyObjectFactory.prototype = chain;
chain = new (emptyObjectFactory);
nodeAddedToChain = true;
};
for (p in overrides) {
if (overrides[p] === undefined){
delete chain[p];
} else {
chain[p] = overrides[p];
};
};
};
if (filterMap){
if (nodeAddedToChain){
filteredChain = {};
filterObjectFactory = function ():void{
};
filterObjectFactory.prototype = originalChain;
filteredChain = new (filterObjectFactory);
for (i in chain) {
if (filterMap[i] != null){
filteredChain[filterMap[i]] = chain[i];
};
};
chain = filteredChain;
chain[FILTERMAP_PROP] = filterMap;
} else {
chain = originalChain;
};
};
if (nodeAddedToChain){
clones[chain] = 1;
};
return (chain);
}
public function getStyle(styleProp:String){
var o:*;
var v:*;
if (overrides){
if ((((styleProp in overrides)) && ((overrides[styleProp] === undefined)))){
return (undefined);
};
v = overrides[styleProp];
if (v !== undefined){
return (v);
};
};
if (factory != null){
factory.prototype = {};
o = new factory();
v = o[styleProp];
if (v !== undefined){
return (v);
};
};
if (defaultFactory != null){
defaultFactory.prototype = {};
o = new defaultFactory();
v = o[styleProp];
if (v !== undefined){
return (v);
};
};
return (undefined);
}
public function clearStyle(styleProp:String):void{
setStyle(styleProp, undefined);
}
public function setStyle(styleProp:String, newValue):void{
var i:int;
var sm:Object;
var oldValue:Object = getStyle(styleProp);
var regenerate:Boolean;
if ((((((((((selectorRefCount > 0)) && ((factory == null)))) && ((defaultFactory == null)))) && (!(overrides)))) && (!((oldValue === newValue))))){
regenerate = true;
};
if (newValue !== undefined){
setStyle(styleProp, newValue);
} else {
if (newValue == oldValue){
return;
};
setStyle(styleProp, newValue);
};
var sms:Array = SystemManagerGlobals.topLevelSystemManagers;
var n:int = sms.length;
if (regenerate){
i = 0;
while (i < n) {
sm = sms[i];
sm.regenerateStyleCache(true);
i++;
};
};
i = 0;
while (i < n) {
sm = sms[i];
sm.notifyStyleChangeInChildren(styleProp, true);
i++;
};
}
private function clearStyleAttr(styleProp:String):void{
var clone:*;
if (!overrides){
overrides = {};
};
overrides[styleProp] = undefined;
for (clone in clones) {
delete clone[styleProp];
};
}
mx_internal function createProtoChainRoot():Object{
var root:Object = {};
if (defaultFactory != null){
defaultFactory.prototype = root;
root = new defaultFactory();
};
if (factory != null){
factory.prototype = root;
root = new factory();
};
clones[root] = 1;
return (root);
}
mx_internal function clearOverride(styleProp:String):void{
if (((overrides) && (overrides[styleProp]))){
delete overrides[styleProp];
};
}
mx_internal function setStyle(styleProp:String, value):void{
var o:Object;
var clone:*;
var colorNumber:Number;
var cloneFilter:Object;
if (value === undefined){
clearStyleAttr(styleProp);
return;
};
if ((value is String)){
if (!styleManager){
styleManager = (Singleton.getInstance("mx.styles::IStyleManager2") as IStyleManager2);
};
colorNumber = styleManager.getColorName(value);
if (colorNumber != NOT_A_COLOR){
value = colorNumber;
};
};
if (defaultFactory != null){
o = new defaultFactory();
if (o[styleProp] !== value){
if (!overrides){
overrides = {};
};
overrides[styleProp] = value;
} else {
if (overrides){
delete overrides[styleProp];
};
};
};
if (factory != null){
o = new factory();
if (o[styleProp] !== value){
if (!overrides){
overrides = {};
};
overrides[styleProp] = value;
} else {
if (overrides){
delete overrides[styleProp];
};
};
};
if ((((defaultFactory == null)) && ((factory == null)))){
if (!overrides){
overrides = {};
};
overrides[styleProp] = value;
};
for (clone in clones) {
cloneFilter = clone[FILTERMAP_PROP];
if (cloneFilter){
if (cloneFilter[styleProp] != null){
clone[cloneFilter[styleProp]] = value;
};
} else {
clone[styleProp] = value;
};
};
}
}
}//package mx.styles
Section 121
//ISimpleStyleClient (mx.styles.ISimpleStyleClient)
package mx.styles {
public interface ISimpleStyleClient {
function set styleName(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\styles;ISimpleStyleClient.as:Object):void;
function styleChanged(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\styles;ISimpleStyleClient.as:String):void;
function get styleName():Object;
}
}//package mx.styles
Section 122
//IStyleClient (mx.styles.IStyleClient)
package mx.styles {
public interface IStyleClient extends ISimpleStyleClient {
function regenerateStyleCache(mx.styles:IStyleClient/mx.styles:IStyleClient:className/get:Boolean):void;
function get className():String;
function clearStyle(mx.styles:IStyleClient/mx.styles:IStyleClient:className/get:String):void;
function getClassStyleDeclarations():Array;
function get inheritingStyles():Object;
function set nonInheritingStyles(mx.styles:IStyleClient/mx.styles:IStyleClient:className/get:Object):void;
function setStyle(_arg1:String, _arg2):void;
function get styleDeclaration():CSSStyleDeclaration;
function set styleDeclaration(mx.styles:IStyleClient/mx.styles:IStyleClient:className/get:CSSStyleDeclaration):void;
function get nonInheritingStyles():Object;
function set inheritingStyles(mx.styles:IStyleClient/mx.styles:IStyleClient:className/get:Object):void;
function getStyle(*:String);
function notifyStyleChangeInChildren(_arg1:String, _arg2:Boolean):void;
function registerEffects(mx.styles:IStyleClient/mx.styles:IStyleClient:className/get:Array):void;
}
}//package mx.styles
Section 123
//IStyleManager (mx.styles.IStyleManager)
package mx.styles {
import flash.events.*;
public interface IStyleManager {
function isColorName(value:String):Boolean;
function registerParentDisplayListInvalidatingStyle(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:String):void;
function registerInheritingStyle(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:String):void;
function set stylesRoot(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:Object):void;
function get typeSelectorCache():Object;
function styleDeclarationsChanged():void;
function setStyleDeclaration(_arg1:String, _arg2:CSSStyleDeclaration, _arg3:Boolean):void;
function isParentDisplayListInvalidatingStyle(value:String):Boolean;
function isSizeInvalidatingStyle(value:String):Boolean;
function get inheritingStyles():Object;
function isValidStyleValue(value):Boolean;
function isParentSizeInvalidatingStyle(value:String):Boolean;
function getColorName(mx.styles:IStyleManager/mx.styles:IStyleManager:inheritingStyles/set:Object):uint;
function set typeSelectorCache(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:Object):void;
function unloadStyleDeclarations(_arg1:String, _arg2:Boolean=true):void;
function getColorNames(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:Array):void;
function loadStyleDeclarations(_arg1:String, _arg2:Boolean=true, _arg3:Boolean=false):IEventDispatcher;
function isInheritingStyle(value:String):Boolean;
function set inheritingStyles(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:Object):void;
function get stylesRoot():Object;
function initProtoChainRoots():void;
function registerColorName(_arg1:String, _arg2:uint):void;
function registerParentSizeInvalidatingStyle(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:String):void;
function registerSizeInvalidatingStyle(C:\autobuild\3.3.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:String):void;
function clearStyleDeclaration(_arg1:String, _arg2:Boolean):void;
function isInheritingTextFormatStyle(value:String):Boolean;
function getStyleDeclaration(mx.styles:IStyleManager/mx.styles:IStyleManager:inheritingStyles/get:String):CSSStyleDeclaration;
}
}//package mx.styles
Section 124
//IStyleManager2 (mx.styles.IStyleManager2)
package mx.styles {
import flash.events.*;
import flash.system.*;
public interface IStyleManager2 extends IStyleManager {
function get selectors():Array;
function loadStyleDeclarations2(_arg1:String, _arg2:Boolean=true, _arg3:ApplicationDomain=null, _arg4:SecurityDomain=null):IEventDispatcher;
}
}//package mx.styles
Section 125
//IStyleModule (mx.styles.IStyleModule)
package mx.styles {
public interface IStyleModule {
function unload():void;
}
}//package mx.styles
Section 126
//StyleManager (mx.styles.StyleManager)
package mx.styles {
import flash.events.*;
import mx.core.*;
import flash.system.*;
public class StyleManager {
mx_internal static const VERSION:String = "3.3.0.4852";
public static const NOT_A_COLOR:uint = 4294967295;
private static var _impl:IStyleManager2;
private static var implClassDependency:StyleManagerImpl;
public function StyleManager(){
super();
}
public static function isParentSizeInvalidatingStyle(styleName:String):Boolean{
return (impl.isParentSizeInvalidatingStyle(styleName));
}
public static function registerInheritingStyle(styleName:String):void{
impl.registerInheritingStyle(styleName);
}
mx_internal static function set stylesRoot(value:Object):void{
impl.stylesRoot = value;
}
mx_internal static function get inheritingStyles():Object{
return (impl.inheritingStyles);
}
mx_internal static function styleDeclarationsChanged():void{
impl.styleDeclarationsChanged();
}
public static function setStyleDeclaration(selector:String, styleDeclaration:CSSStyleDeclaration, update:Boolean):void{
impl.setStyleDeclaration(selector, styleDeclaration, update);
}
public static function registerParentDisplayListInvalidatingStyle(styleName:String):void{
impl.registerParentDisplayListInvalidatingStyle(styleName);
}
mx_internal static function get typeSelectorCache():Object{
return (impl.typeSelectorCache);
}
mx_internal static function set inheritingStyles(value:Object):void{
impl.inheritingStyles = value;
}
public static function isColorName(colorName:String):Boolean{
return (impl.isColorName(colorName));
}
public static function isParentDisplayListInvalidatingStyle(styleName:String):Boolean{
return (impl.isParentDisplayListInvalidatingStyle(styleName));
}
public static function isSizeInvalidatingStyle(styleName:String):Boolean{
return (impl.isSizeInvalidatingStyle(styleName));
}
public static function getColorName(colorName:Object):uint{
return (impl.getColorName(colorName));
}
mx_internal static function set typeSelectorCache(value:Object):void{
impl.typeSelectorCache = value;
}
public static function unloadStyleDeclarations(url:String, update:Boolean=true):void{
impl.unloadStyleDeclarations(url, update);
}
public static function getColorNames(colors:Array):void{
impl.getColorNames(colors);
}
public static function loadStyleDeclarations(url:String, update:Boolean=true, trustContent:Boolean=false, applicationDomain:ApplicationDomain=null, securityDomain:SecurityDomain=null):IEventDispatcher{
return (impl.loadStyleDeclarations2(url, update, applicationDomain, securityDomain));
}
private static function get impl():IStyleManager2{
if (!_impl){
_impl = IStyleManager2(Singleton.getInstance("mx.styles::IStyleManager2"));
};
return (_impl);
}
public static function isValidStyleValue(value):Boolean{
return (impl.isValidStyleValue(value));
}
mx_internal static function get stylesRoot():Object{
return (impl.stylesRoot);
}
public static function isInheritingStyle(styleName:String):Boolean{
return (impl.isInheritingStyle(styleName));
}
mx_internal static function initProtoChainRoots():void{
impl.initProtoChainRoots();
}
public static function registerParentSizeInvalidatingStyle(styleName:String):void{
impl.registerParentSizeInvalidatingStyle(styleName);
}
public static function get selectors():Array{
return (impl.selectors);
}
public static function registerSizeInvalidatingStyle(styleName:String):void{
impl.registerSizeInvalidatingStyle(styleName);
}
public static function clearStyleDeclaration(selector:String, update:Boolean):void{
impl.clearStyleDeclaration(selector, update);
}
public static function registerColorName(colorName:String, colorValue:uint):void{
impl.registerColorName(colorName, colorValue);
}
public static function isInheritingTextFormatStyle(styleName:String):Boolean{
return (impl.isInheritingTextFormatStyle(styleName));
}
public static function getStyleDeclaration(selector:String):CSSStyleDeclaration{
return (impl.getStyleDeclaration(selector));
}
}
}//package mx.styles
Section 127
//StyleManagerImpl (mx.styles.StyleManagerImpl)
package mx.styles {
import flash.events.*;
import mx.core.*;
import flash.utils.*;
import flash.system.*;
import mx.modules.*;
import mx.events.*;
import mx.resources.*;
import mx.managers.*;
public class StyleManagerImpl implements IStyleManager2 {
private var _stylesRoot:Object;
private var _selectors:Object;
private var styleModules:Object;
private var _inheritingStyles:Object;
private var resourceManager:IResourceManager;
private var _typeSelectorCache:Object;
mx_internal static const VERSION:String = "3.3.0.4852";
private static var parentSizeInvalidatingStyles:Object = {bottom:true, horizontalCenter:true, left:true, right:true, top:true, verticalCenter:true, baseline:true};
private static var colorNames:Object = {transparent:"transparent", black:0, blue:0xFF, green:0x8000, gray:0x808080, silver:0xC0C0C0, lime:0xFF00, olive:0x808000, white:0xFFFFFF, yellow:0xFFFF00, maroon:0x800000, navy:128, red:0xFF0000, purple:0x800080, teal:0x8080, fuchsia:0xFF00FF, aqua:0xFFFF, magenta:0xFF00FF, cyan:0xFFFF, halogreen:8453965, haloblue:40447, haloorange:0xFFB600, halosilver:11455193};
private static var inheritingTextFormatStyles:Object = {align:true, bold:true, color:true, font:true, indent:true, italic:true, size:true};
private static var instance:IStyleManager2;
private static var parentDisplayListInvalidatingStyles:Object = {bottom:true, horizontalCenter:true, left:true, right:true, top:true, verticalCenter:true, baseline:true};
private static var sizeInvalidatingStyles:Object = {borderStyle:true, borderThickness:true, fontAntiAliasType:true, fontFamily:true, fontGridFitType:true, fontSharpness:true, fontSize:true, fontStyle:true, fontThickness:true, fontWeight:true, headerHeight:true, horizontalAlign:true, horizontalGap:true, kerning:true, leading:true, letterSpacing:true, paddingBottom:true, paddingLeft:true, paddingRight:true, paddingTop:true, strokeWidth:true, tabHeight:true, tabWidth:true, verticalAlign:true, verticalGap:true};
public function StyleManagerImpl(){
_selectors = {};
styleModules = {};
resourceManager = ResourceManager.getInstance();
_inheritingStyles = {};
_typeSelectorCache = {};
super();
}
public function setStyleDeclaration(selector:String, styleDeclaration:CSSStyleDeclaration, update:Boolean):void{
styleDeclaration.selectorRefCount++;
_selectors[selector] = styleDeclaration;
typeSelectorCache = {};
if (update){
styleDeclarationsChanged();
};
}
public function registerParentDisplayListInvalidatingStyle(styleName:String):void{
parentDisplayListInvalidatingStyles[styleName] = true;
}
public function getStyleDeclaration(selector:String):CSSStyleDeclaration{
var index:int;
if (selector.charAt(0) != "."){
index = selector.lastIndexOf(".");
if (index != -1){
selector = selector.substr((index + 1));
};
};
return (_selectors[selector]);
}
public function set typeSelectorCache(value:Object):void{
_typeSelectorCache = value;
}
public function isColorName(colorName:String):Boolean{
return (!((colorNames[colorName.toLowerCase()] === undefined)));
}
public function set inheritingStyles(value:Object):void{
_inheritingStyles = value;
}
public function getColorNames(colors:Array):void{
var colorNumber:uint;
if (!colors){
return;
};
var n:int = colors.length;
var i:int;
while (i < n) {
if (((!((colors[i] == null))) && (isNaN(colors[i])))){
colorNumber = getColorName(colors[i]);
if (colorNumber != StyleManager.NOT_A_COLOR){
colors[i] = colorNumber;
};
};
i++;
};
}
public function isInheritingTextFormatStyle(styleName:String):Boolean{
return ((inheritingTextFormatStyles[styleName] == true));
}
public function registerParentSizeInvalidatingStyle(styleName:String):void{
parentSizeInvalidatingStyles[styleName] = true;
}
public function registerColorName(colorName:String, colorValue:uint):void{
colorNames[colorName.toLowerCase()] = colorValue;
}
public function isParentSizeInvalidatingStyle(styleName:String):Boolean{
return ((parentSizeInvalidatingStyles[styleName] == true));
}
public function registerInheritingStyle(styleName:String):void{
inheritingStyles[styleName] = true;
}
public function set stylesRoot(value:Object):void{
_stylesRoot = value;
}
public function get typeSelectorCache():Object{
return (_typeSelectorCache);
}
public function isParentDisplayListInvalidatingStyle(styleName:String):Boolean{
return ((parentDisplayListInvalidatingStyles[styleName] == true));
}
public function isSizeInvalidatingStyle(styleName:String):Boolean{
return ((sizeInvalidatingStyles[styleName] == true));
}
public function styleDeclarationsChanged():void{
var sm:Object;
var sms:Array = SystemManagerGlobals.topLevelSystemManagers;
var n:int = sms.length;
var i:int;
while (i < n) {
sm = sms[i];
sm.regenerateStyleCache(true);
sm.notifyStyleChangeInChildren(null, true);
i++;
};
}
public function isValidStyleValue(value):Boolean{
return (!((value === undefined)));
}
public function loadStyleDeclarations(url:String, update:Boolean=true, trustContent:Boolean=false):IEventDispatcher{
return (loadStyleDeclarations2(url, update));
}
public function get inheritingStyles():Object{
return (_inheritingStyles);
}
public function unloadStyleDeclarations(url:String, update:Boolean=true):void{
var module:IModuleInfo;
var styleModuleInfo:StyleModuleInfo = styleModules[url];
if (styleModuleInfo){
styleModuleInfo.styleModule.unload();
module = styleModuleInfo.module;
module.unload();
module.removeEventListener(ModuleEvent.READY, styleModuleInfo.readyHandler);
module.removeEventListener(ModuleEvent.ERROR, styleModuleInfo.errorHandler);
styleModules[url] = null;
};
if (update){
styleDeclarationsChanged();
};
}
public function getColorName(colorName:Object):uint{
var n:Number;
var c:*;
if ((colorName is String)){
if (colorName.charAt(0) == "#"){
n = Number(("0x" + colorName.slice(1)));
return ((isNaN(n)) ? StyleManager.NOT_A_COLOR : uint(n));
};
if ((((colorName.charAt(1) == "x")) && ((colorName.charAt(0) == "0")))){
n = Number(colorName);
return ((isNaN(n)) ? StyleManager.NOT_A_COLOR : uint(n));
};
c = colorNames[colorName.toLowerCase()];
if (c === undefined){
return (StyleManager.NOT_A_COLOR);
};
return (uint(c));
};
return (uint(colorName));
}
public function isInheritingStyle(styleName:String):Boolean{
return ((inheritingStyles[styleName] == true));
}
public function get stylesRoot():Object{
return (_stylesRoot);
}
public function initProtoChainRoots():void{
if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){
delete _inheritingStyles["textDecoration"];
delete _inheritingStyles["leading"];
};
if (!stylesRoot){
stylesRoot = _selectors["global"].addStyleToProtoChain({}, null);
};
}
public function loadStyleDeclarations2(url:String, update:Boolean=true, applicationDomain:ApplicationDomain=null, securityDomain:SecurityDomain=null):IEventDispatcher{
var module:IModuleInfo;
var styleEventDispatcher:StyleEventDispatcher;
var timer:Timer;
var timerHandler:Function;
var url = url;
var update = update;
var applicationDomain = applicationDomain;
var securityDomain = securityDomain;
module = ModuleManager.getModule(url);
var readyHandler:Function = function (moduleEvent:ModuleEvent):void{
var styleModule:IStyleModule = IStyleModule(moduleEvent.module.factory.create());
styleModules[moduleEvent.module.url].styleModule = styleModule;
if (update){
styleDeclarationsChanged();
};
};
module.addEventListener(ModuleEvent.READY, readyHandler, false, 0, true);
styleEventDispatcher = new StyleEventDispatcher(module);
var errorHandler:Function = function (moduleEvent:ModuleEvent):void{
var styleEvent:StyleEvent;
var errorText:String = resourceManager.getString("styles", "unableToLoad", [moduleEvent.errorText, url]);
if (styleEventDispatcher.willTrigger(StyleEvent.ERROR)){
styleEvent = new StyleEvent(StyleEvent.ERROR, moduleEvent.bubbles, moduleEvent.cancelable);
styleEvent.bytesLoaded = 0;
styleEvent.bytesTotal = 0;
styleEvent.errorText = errorText;
styleEventDispatcher.dispatchEvent(styleEvent);
} else {
throw (new Error(errorText));
};
};
module.addEventListener(ModuleEvent.ERROR, errorHandler, false, 0, true);
styleModules[url] = new StyleModuleInfo(module, readyHandler, errorHandler);
timer = new Timer(0);
timerHandler = function (event:TimerEvent):void{
timer.removeEventListener(TimerEvent.TIMER, timerHandler);
timer.stop();
module.load(applicationDomain, securityDomain);
};
timer.addEventListener(TimerEvent.TIMER, timerHandler, false, 0, true);
timer.start();
return (styleEventDispatcher);
}
public function registerSizeInvalidatingStyle(styleName:String):void{
sizeInvalidatingStyles[styleName] = true;
}
public function clearStyleDeclaration(selector:String, update:Boolean):void{
var styleDeclaration:CSSStyleDeclaration = getStyleDeclaration(selector);
if (((styleDeclaration) && ((styleDeclaration.selectorRefCount > 0)))){
styleDeclaration.selectorRefCount--;
};
delete _selectors[selector];
if (update){
styleDeclarationsChanged();
};
}
public function get selectors():Array{
var i:String;
var theSelectors:Array = [];
for (i in _selectors) {
theSelectors.push(i);
};
return (theSelectors);
}
public static function getInstance():IStyleManager2{
if (!instance){
instance = new (StyleManagerImpl);
};
return (instance);
}
}
}//package mx.styles
import flash.events.*;
import mx.modules.*;
import mx.events.*;
class StyleEventDispatcher extends EventDispatcher {
private function StyleEventDispatcher(moduleInfo:IModuleInfo){
super();
moduleInfo.addEventListener(ModuleEvent.ERROR, moduleInfo_errorHandler, false, 0, true);
moduleInfo.addEventListener(ModuleEvent.PROGRESS, moduleInfo_progressHandler, false, 0, true);
moduleInfo.addEventListener(ModuleEvent.READY, moduleInfo_readyHandler, false, 0, true);
}
private function moduleInfo_progressHandler(event:ModuleEvent):void{
var styleEvent:StyleEvent = new StyleEvent(StyleEvent.PROGRESS, event.bubbles, event.cancelable);
styleEvent.bytesLoaded = event.bytesLoaded;
styleEvent.bytesTotal = event.bytesTotal;
dispatchEvent(styleEvent);
}
private function moduleInfo_readyHandler(event:ModuleEvent):void{
var styleEvent:StyleEvent = new StyleEvent(StyleEvent.COMPLETE);
dispatchEvent(styleEvent);
}
private function moduleInfo_errorHandler(event:ModuleEvent):void{
var styleEvent:StyleEvent = new StyleEvent(StyleEvent.ERROR, event.bubbles, event.cancelable);
styleEvent.bytesLoaded = event.bytesLoaded;
styleEvent.bytesTotal = event.bytesTotal;
styleEvent.errorText = event.errorText;
dispatchEvent(styleEvent);
}
}
class StyleModuleInfo {
public var errorHandler:Function;
public var readyHandler:Function;
public var module:IModuleInfo;
public var styleModule:IStyleModule;
private function StyleModuleInfo(module:IModuleInfo, readyHandler:Function, errorHandler:Function){
super();
this.module = module;
this.readyHandler = readyHandler;
this.errorHandler = errorHandler;
}
}
Section 128
//ColorUtil (mx.utils.ColorUtil)
package mx.utils {
public class ColorUtil {
mx_internal static const VERSION:String = "3.3.0.4852";
public function ColorUtil(){
super();
}
public static function adjustBrightness2(rgb:uint, brite:Number):uint{
var r:Number;
var g:Number;
var b:Number;
if (brite == 0){
return (rgb);
};
if (brite < 0){
brite = ((100 + brite) / 100);
r = (((rgb >> 16) & 0xFF) * brite);
g = (((rgb >> 8) & 0xFF) * brite);
b = ((rgb & 0xFF) * brite);
} else {
brite = (brite / 100);
r = ((rgb >> 16) & 0xFF);
g = ((rgb >> 8) & 0xFF);
b = (rgb & 0xFF);
r = (r + ((0xFF - r) * brite));
g = (g + ((0xFF - g) * brite));
b = (b + ((0xFF - b) * brite));
r = Math.min(r, 0xFF);
g = Math.min(g, 0xFF);
b = Math.min(b, 0xFF);
};
return ((((r << 16) | (g << 8)) | b));
}
public static function rgbMultiply(rgb1:uint, rgb2:uint):uint{
var r1:Number = ((rgb1 >> 16) & 0xFF);
var g1:Number = ((rgb1 >> 8) & 0xFF);
var b1:Number = (rgb1 & 0xFF);
var r2:Number = ((rgb2 >> 16) & 0xFF);
var g2:Number = ((rgb2 >> 8) & 0xFF);
var b2:Number = (rgb2 & 0xFF);
return ((((((r1 * r2) / 0xFF) << 16) | (((g1 * g2) / 0xFF) << 8)) | ((b1 * b2) / 0xFF)));
}
public static function adjustBrightness(rgb:uint, brite:Number):uint{
var r:Number = Math.max(Math.min((((rgb >> 16) & 0xFF) + brite), 0xFF), 0);
var g:Number = Math.max(Math.min((((rgb >> 8) & 0xFF) + brite), 0xFF), 0);
var b:Number = Math.max(Math.min(((rgb & 0xFF) + brite), 0xFF), 0);
return ((((r << 16) | (g << 8)) | b));
}
}
}//package mx.utils
Section 129
//GraphicsUtil (mx.utils.GraphicsUtil)
package mx.utils {
import flash.display.*;
public class GraphicsUtil {
mx_internal static const VERSION:String = "3.3.0.4852";
public function GraphicsUtil(){
super();
}
public static function drawRoundRectComplex(graphics:Graphics, x:Number, y:Number, width:Number, height:Number, topLeftRadius:Number, topRightRadius:Number, bottomLeftRadius:Number, bottomRightRadius:Number):void{
var xw:Number = (x + width);
var yh:Number = (y + height);
var minSize:Number = ((width < height)) ? (width * 2) : (height * 2);
topLeftRadius = ((topLeftRadius < minSize)) ? topLeftRadius : minSize;
topRightRadius = ((topRightRadius < minSize)) ? topRightRadius : minSize;
bottomLeftRadius = ((bottomLeftRadius < minSize)) ? bottomLeftRadius : minSize;
bottomRightRadius = ((bottomRightRadius < minSize)) ? bottomRightRadius : minSize;
var a:Number = (bottomRightRadius * 0.292893218813453);
var s:Number = (bottomRightRadius * 0.585786437626905);
graphics.moveTo(xw, (yh - bottomRightRadius));
graphics.curveTo(xw, (yh - s), (xw - a), (yh - a));
graphics.curveTo((xw - s), yh, (xw - bottomRightRadius), yh);
a = (bottomLeftRadius * 0.292893218813453);
s = (bottomLeftRadius * 0.585786437626905);
graphics.lineTo((x + bottomLeftRadius), yh);
graphics.curveTo((x + s), yh, (x + a), (yh - a));
graphics.curveTo(x, (yh - s), x, (yh - bottomLeftRadius));
a = (topLeftRadius * 0.292893218813453);
s = (topLeftRadius * 0.585786437626905);
graphics.lineTo(x, (y + topLeftRadius));
graphics.curveTo(x, (y + s), (x + a), (y + a));
graphics.curveTo((x + s), y, (x + topLeftRadius), y);
a = (topRightRadius * 0.292893218813453);
s = (topRightRadius * 0.585786437626905);
graphics.lineTo((xw - topRightRadius), y);
graphics.curveTo((xw - s), y, (xw - a), (y + a));
graphics.curveTo(xw, (y + s), xw, (y + topRightRadius));
graphics.lineTo(xw, (yh - bottomRightRadius));
}
}
}//package mx.utils
Section 130
//NameUtil (mx.utils.NameUtil)
package mx.utils {
import mx.core.*;
import flash.display.*;
import flash.utils.*;
public class NameUtil {
mx_internal static const VERSION:String = "3.3.0.4852";
private static var counter:int = 0;
public function NameUtil(){
super();
}
public static function displayObjectToString(displayObject:DisplayObject):String{
var result:String;
var o:DisplayObject;
var s:String;
var indices:Array;
var displayObject = displayObject;
o = displayObject;
while (o != null) {
if (((((o.parent) && (o.stage))) && ((o.parent == o.stage)))){
break;
};
s = o.name;
if ((o is IRepeaterClient)){
indices = IRepeaterClient(o).instanceIndices;
if (indices){
s = (s + (("[" + indices.join("][")) + "]"));
};
};
result = ((result == null)) ? s : ((s + ".") + result);
o = o.parent;
};
//unresolved jump
var _slot1 = e;
return (result);
}
public static function createUniqueName(object:Object):String{
if (!object){
return (null);
};
var name:String = getQualifiedClassName(object);
var index:int = name.indexOf("::");
if (index != -1){
name = name.substr((index + 2));
};
var charCode:int = name.charCodeAt((name.length - 1));
if ((((charCode >= 48)) && ((charCode <= 57)))){
name = (name + "_");
};
return ((name + counter++));
}
}
}//package mx.utils
Section 131
//StringUtil (mx.utils.StringUtil)
package mx.utils {
public class StringUtil {
mx_internal static const VERSION:String = "3.3.0.4852";
public function StringUtil(){
super();
}
public static function trim(str:String):String{
if (str == null){
return ("");
};
var startIndex:int;
while (isWhitespace(str.charAt(startIndex))) {
startIndex++;
};
var endIndex:int = (str.length - 1);
while (isWhitespace(str.charAt(endIndex))) {
endIndex--;
};
if (endIndex >= startIndex){
return (str.slice(startIndex, (endIndex + 1)));
};
return ("");
}
public static function isWhitespace(character:String):Boolean{
switch (character){
case " ":
case "\t":
case "\r":
case "\n":
case "\f":
return (true);
default:
return (false);
};
}
public static function substitute(str:String, ... _args):String{
var args:Array;
if (str == null){
return ("");
};
var len:uint = _args.length;
if ((((len == 1)) && ((_args[0] is Array)))){
args = (_args[0] as Array);
len = args.length;
} else {
args = _args;
};
var i:int;
while (i < len) {
str = str.replace(new RegExp((("\\{" + i) + "\\}"), "g"), args[i]);
i++;
};
return (str);
}
public static function trimArrayElements(value:String, delimiter:String):String{
var items:Array;
var len:int;
var i:int;
if (((!((value == ""))) && (!((value == null))))){
items = value.split(delimiter);
len = items.length;
i = 0;
while (i < len) {
items[i] = StringUtil.trim(items[i]);
i++;
};
if (len > 0){
value = items.join(delimiter);
};
};
return (value);
}
}
}//package mx.utils
Section 132
//Stats (net.hires.debug.Stats)
package net.hires.debug {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import flash.utils.*;
import flash.system.*;
import flash.text.*;
public class Stats extends Sprite {
protected const WIDTH:uint = 70;
protected const HEIGHT:uint = 100;
protected var timer:uint;
protected var mem_max_graph:uint;
protected var theme:Object;
protected var mem:Number;
protected var xml:XML;
protected var graph:Bitmap;
protected var mem_graph:uint;
protected var fps:uint;
protected var ms_prev:uint;
protected var text:TextField;
protected var rectangle:Rectangle;
protected var style:StyleSheet;
protected var ms:uint;
protected var fps_graph:uint;
protected var mem_max:Number;
public function Stats(_theme:Object=null):void{
theme = {bg:51, fps:0xFFFF00, ms:0xFF00, mem:0xFFFF, memmax:0xFF0070};
super();
if (_theme){
if (_theme.bg != null){
theme.bg = _theme.bg;
};
if (_theme.fps != null){
theme.fps = _theme.fps;
};
if (_theme.ms != null){
theme.ms = _theme.ms;
};
if (_theme.mem != null){
theme.mem = _theme.mem;
};
if (_theme.memmax != null){
theme.memmax = _theme.memmax;
};
};
mem_max = 0;
xml = <xml><fps>FPS:</fps><ms>MS:</ms><mem>MEM:</mem><memMax>MAX:</memMax></xml>
;
style = new StyleSheet();
style.setStyle("xml", {fontSize:"9px", fontFamily:"_sans", leading:"-2px"});
style.setStyle("fps", {color:hex2css(theme.fps)});
style.setStyle("ms", {color:hex2css(theme.ms)});
style.setStyle("mem", {color:hex2css(theme.mem)});
style.setStyle("memMax", {color:hex2css(theme.memmax)});
text = new TextField();
text.width = WIDTH;
text.height = 50;
text.styleSheet = style;
text.condenseWhite = true;
text.selectable = false;
text.mouseEnabled = false;
graph = new Bitmap();
graph.y = 50;
rectangle = new Rectangle((WIDTH - 1), 0, 1, (HEIGHT - 50));
addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true);
addEventListener(Event.REMOVED_FROM_STAGE, destroy, false, 0, true);
}
private function destroy(e:Event):void{
graphics.clear();
while (numChildren > 0) {
removeChildAt(0);
};
graph.bitmapData.dispose();
removeEventListener(MouseEvent.CLICK, onClick);
removeEventListener(Event.ENTER_FRAME, update);
}
private function onClick(e:MouseEvent):void{
if (((mouseY / height) > 0.5)){
stage.frameRate--;
} else {
stage.frameRate++;
};
xml.fps = ((("FPS: " + fps) + " / ") + stage.frameRate);
text.htmlText = xml;
}
private function init(e:Event):void{
graphics.beginFill(theme.bg);
graphics.drawRect(0, 0, WIDTH, HEIGHT);
graphics.endFill();
addChild(text);
graph.bitmapData = new BitmapData(WIDTH, (HEIGHT - 50), false, theme.bg);
addChild(graph);
addEventListener(MouseEvent.CLICK, onClick);
addEventListener(Event.ENTER_FRAME, update);
}
private function update(e:Event):void{
timer = getTimer();
if ((timer - 1000) > ms_prev){
ms_prev = timer;
mem = Number((System.totalMemory * 9.54E-7).toFixed(3));
mem_max = ((mem_max > mem)) ? mem_max : mem;
fps_graph = Math.min(graph.height, ((fps / stage.frameRate) * graph.height));
mem_graph = (Math.min(graph.height, Math.sqrt(Math.sqrt((mem * 5000)))) - 2);
mem_max_graph = (Math.min(graph.height, Math.sqrt(Math.sqrt((mem_max * 5000)))) - 2);
graph.bitmapData.scroll(-1, 0);
graph.bitmapData.fillRect(rectangle, theme.bg);
graph.bitmapData.setPixel((graph.width - 1), (graph.height - fps_graph), theme.fps);
graph.bitmapData.setPixel((graph.width - 1), (graph.height - ((timer - ms) >> 1)), theme.ms);
graph.bitmapData.setPixel((graph.width - 1), (graph.height - mem_graph), theme.mem);
graph.bitmapData.setPixel((graph.width - 1), (graph.height - mem_max_graph), theme.memmax);
xml.fps = ((("FPS: " + fps) + " / ") + stage.frameRate);
xml.mem = ("MEM: " + mem);
xml.memMax = ("MAX: " + mem_max);
fps = 0;
};
fps++;
xml.ms = ("MS: " + (timer - ms));
ms = timer;
text.htmlText = xml;
}
private function hex2css(color:int):String{
return (("#" + color.toString(16)));
}
}
}//package net.hires.debug
Section 133
//IDispatcher (org.osflash.signals.IDispatcher)
package org.osflash.signals {
public interface IDispatcher {
function dispatch(... _args):void;
}
}//package org.osflash.signals
Section 134
//ISignal (org.osflash.signals.ISignal)
package org.osflash.signals {
public interface ISignal {
function add(org.osflash.signals:ISignal/org.osflash.signals:ISignal:valueClasses/get:Function):Function;
function addOnce(org.osflash.signals:ISignal/org.osflash.signals:ISignal:valueClasses/get:Function):Function;
function remove(org.osflash.signals:ISignal/org.osflash.signals:ISignal:valueClasses/get:Function):Function;
function get valueClasses():Array;
function get numListeners():uint;
}
}//package org.osflash.signals
Section 135
//Signal (org.osflash.signals.Signal)
package org.osflash.signals {
import flash.utils.*;
import flash.errors.*;
public class Signal implements ISignal, IDispatcher {
protected var listenersNeedCloning:Boolean;// = false
protected var onceListeners:Dictionary;
protected var _valueClasses:Array;
protected var listeners:Array;
public function Signal(... _args){
super();
listeners = [];
onceListeners = new Dictionary();
if ((((_args.length == 1)) && ((_args[0] is Array)))){
var valueClasses:Array = _args[0];
};
setValueClasses(_args);
}
public function add(listener:Function):Function{
registerListener(listener);
return (listener);
}
public function addOnce(listener:Function):Function{
registerListener(listener, true);
return (listener);
}
public function remove(listener:Function):Function{
var index:int = listeners.indexOf(listener);
if (index == -1){
return (listener);
};
if (listenersNeedCloning){
listeners = listeners.slice();
listenersNeedCloning = false;
};
listeners.splice(index, 1);
delete onceListeners[listener];
return (listener);
}
protected function registerListener(listener:Function, once:Boolean=false):void{
var argumentString:String;
if (listener.length < _valueClasses.length){
argumentString = ((listener.length)==1) ? "argument" : "arguments";
throw (new ArgumentError((((((("Listener has " + listener.length) + " ") + argumentString) + " but it needs at least ") + _valueClasses.length) + " to match the given value classes.")));
};
if (!listeners.length){
listeners[0] = listener;
if (once){
onceListeners[listener] = true;
};
return;
};
if (listeners.indexOf(listener) >= 0){
if (((onceListeners[listener]) && (!(once)))){
throw (new IllegalOperationError("You cannot addOnce() then add() the same listener without removing the relationship first."));
};
if (((!(onceListeners[listener])) && (once))){
throw (new IllegalOperationError("You cannot add() then addOnce() the same listener without removing the relationship first."));
};
return;
};
if (listenersNeedCloning){
listeners = listeners.slice();
listenersNeedCloning = false;
};
listeners[listeners.length] = listener;
if (once){
onceListeners[listener] = true;
};
}
protected function setValueClasses(valueClasses:Array):void{
_valueClasses = ((valueClasses) || ([]));
var i:int = _valueClasses.length;
while (i--) {
if (!(_valueClasses[i] is Class)){
throw (new ArgumentError((((("Invalid valueClasses argument: item at index " + i) + " should be a Class but was:<") + _valueClasses[i]) + ">.")));
};
};
}
public function get numListeners():uint{
return (listeners.length);
}
public function dispatch(... _args):void{
var valueObject:Object;
var valueClass:Class;
var listener:Function;
var numValueClasses:int = _valueClasses.length;
if (_args.length < numValueClasses){
throw (new ArgumentError((((("Incorrect number of arguments. Expected at least " + numValueClasses) + " but received ") + _args.length) + ".")));
};
var i:int;
while (i < numValueClasses) {
valueObject = _args[i];
if ((((valueObject === null)) || ((valueObject is _valueClasses[i])))){
} else {
throw (new ArgumentError((((("Value object <" + valueObject) + "> is not an instance of <") + valueClass) + ">.")));
};
i++;
};
if (!listeners.length){
return;
};
listenersNeedCloning = true;
switch (_args.length){
case 0:
for each (listener in listeners) {
if (onceListeners[listener]){
remove(listener);
};
listener();
};
break;
case 1:
for each (listener in listeners) {
if (onceListeners[listener]){
remove(listener);
};
listener(_args[0]);
};
break;
default:
for each (listener in listeners) {
if (onceListeners[listener]){
remove(listener);
};
listener.apply(null, _args);
};
};
listenersNeedCloning = false;
}
public function get valueClasses():Array{
return (_valueClasses);
}
public function removeAll():void{
var i:uint = listeners.length;
while (i--) {
remove((listeners[i] as Function));
};
}
}
}//package org.osflash.signals
Section 136
//_activeButtonStyleStyle (_activeButtonStyleStyle)
package {
import mx.core.*;
import mx.styles.*;
public class _activeButtonStyleStyle {
public static function init(_activeButtonStyleStyle:IFlexModuleFactory):void{
var fbs = _activeButtonStyleStyle;
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".activeButtonStyle");
if (!style){
style = new CSSStyleDeclaration();
StyleManager.setStyleDeclaration(".activeButtonStyle", style, false);
};
if (style.defaultFactory == null){
style.defaultFactory = function ():void{
};
};
}
}
}//package
Section 137
//_activeTabStyleStyle (_activeTabStyleStyle)
package {
import mx.core.*;
import mx.styles.*;
public class _activeTabStyleStyle {
public static function init(:IFlexModuleFactory):void{
var fbs = ;
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".activeTabStyle");
if (!style){
style = new CSSStyleDeclaration();
StyleManager.setStyleDeclaration(".activeTabStyle", style, false);
};
if (style.defaultFactory == null){
style.defaultFactory = function ():void{
this.fontWeight = "bold";
};
};
}
}
}//package
Section 138
//_alertButtonStyleStyle (_alertButtonStyleStyle)
package {
import mx.core.*;
import mx.styles.*;
public class _alertButtonStyleStyle {
public static function init(:IFlexModuleFactory):void{
var fbs = ;
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".alertButtonStyle");
if (!style){
style = new CSSStyleDeclaration();
StyleManager.setStyleDeclaration(".alertButtonStyle", style, false);
};
if (style.defaultFactory == null){
style.defaultFactory = function ():void{
this.color = 734012;
};
};
}
}
}//package
Section 139
//_comboDropdownStyle (_comboDropdownStyle)
package {
import mx.core.*;
import mx.styles.*;
public class _comboDropdownStyle {
public static function init(leading:IFlexModuleFactory):void{
var fbs = leading;
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".comboDropdown");
if (!style){
style = new CSSStyleDeclaration();
StyleManager.setStyleDeclaration(".comboDropdown", style, false);
};
if (style.defaultFactory == null){
style.defaultFactory = function ():void{
this.shadowDirection = "center";
this.fontWeight = "normal";
this.dropShadowEnabled = true;
this.leading = 0;
this.backgroundColor = 0xFFFFFF;
this.shadowDistance = 1;
this.cornerRadius = 0;
this.borderThickness = 0;
this.paddingLeft = 5;
this.paddingRight = 5;
};
};
}
}
}//package
Section 140
//_dataGridStylesStyle (_dataGridStylesStyle)
package {
import mx.core.*;
import mx.styles.*;
public class _dataGridStylesStyle {
public static function init(:IFlexModuleFactory):void{
var fbs = ;
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".dataGridStyles");
if (!style){
style = new CSSStyleDeclaration();
StyleManager.setStyleDeclaration(".dataGridStyles", style, false);
};
if (style.defaultFactory == null){
style.defaultFactory = function ():void{
this.fontWeight = "bold";
};
};
}
}
}//package
Section 141
//_dateFieldPopupStyle (_dateFieldPopupStyle)
package {
import mx.core.*;
import mx.styles.*;
public class _dateFieldPopupStyle {
public static function init(_dateFieldPopupStyle.as$3:IFlexModuleFactory):void{
var fbs = _dateFieldPopupStyle.as$3;
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".dateFieldPopup");
if (!style){
style = new CSSStyleDeclaration();
StyleManager.setStyleDeclaration(".dateFieldPopup", style, false);
};
if (style.defaultFactory == null){
style.defaultFactory = function ():void{
this.dropShadowEnabled = true;
this.backgroundColor = 0xFFFFFF;
this.borderThickness = 0;
};
};
}
}
}//package
Section 142
//_errorTipStyle (_errorTipStyle)
package {
import mx.core.*;
import mx.styles.*;
public class _errorTipStyle {
public static function init(borderColor:IFlexModuleFactory):void{
var fbs = borderColor;
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".errorTip");
if (!style){
style = new CSSStyleDeclaration();
StyleManager.setStyleDeclaration(".errorTip", style, false);
};
if (style.defaultFactory == null){
style.defaultFactory = function ():void{
this.fontWeight = "bold";
this.borderStyle = "errorTipRight";
this.paddingTop = 4;
this.borderColor = 13510953;
this.color = 0xFFFFFF;
this.fontSize = 9;
this.shadowColor = 0;
this.paddingLeft = 4;
this.paddingBottom = 4;
this.paddingRight = 4;
};
};
}
}
}//package
Section 143
//_globalStyle (_globalStyle)
package {
import mx.core.*;
import mx.styles.*;
import mx.skins.halo.*;
public class _globalStyle {
public static function init(horizontalGridLines:IFlexModuleFactory):void{
var fbs = horizontalGridLines;
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration("global");
if (!style){
style = new CSSStyleDeclaration();
StyleManager.setStyleDeclaration("global", style, false);
};
if (style.defaultFactory == null){
style.defaultFactory = function ():void{
this.fillColor = 0xFFFFFF;
this.kerning = false;
this.iconColor = 0x111111;
this.textRollOverColor = 2831164;
this.horizontalAlign = "left";
this.shadowCapColor = 14015965;
this.backgroundAlpha = 1;
this.filled = true;
this.textDecoration = "none";
this.roundedBottomCorners = true;
this.fontThickness = 0;
this.focusBlendMode = "normal";
this.fillColors = [0xFFFFFF, 0xCCCCCC, 0xFFFFFF, 0xEEEEEE];
this.horizontalGap = 8;
this.borderCapColor = 9542041;
this.buttonColor = 7305079;
this.indentation = 17;
this.selectionDisabledColor = 0xDDDDDD;
this.closeDuration = 250;
this.embedFonts = false;
this.paddingTop = 0;
this.letterSpacing = 0;
this.focusAlpha = 0.4;
this.bevel = true;
this.fontSize = 10;
this.shadowColor = 0xEEEEEE;
this.borderAlpha = 1;
this.paddingLeft = 0;
this.fontWeight = "normal";
this.indicatorGap = 14;
this.focusSkin = HaloFocusRect;
this.dropShadowEnabled = false;
this.leading = 2;
this.borderSkin = HaloBorder;
this.fontSharpness = 0;
this.modalTransparencyDuration = 100;
this.borderThickness = 1;
this.backgroundSize = "auto";
this.borderStyle = "inset";
this.borderColor = 12040892;
this.fontAntiAliasType = "advanced";
this.errorColor = 0xFF0000;
this.shadowDistance = 2;
this.horizontalGridLineColor = 0xF7F7F7;
this.stroked = false;
this.modalTransparencyColor = 0xDDDDDD;
this.cornerRadius = 0;
this.verticalAlign = "top";
this.textIndent = 0;
this.fillAlphas = [0.6, 0.4, 0.75, 0.65];
this.verticalGridLineColor = 14015965;
this.themeColor = 40447;
this.version = "3.0.0";
this.shadowDirection = "center";
this.modalTransparency = 0.5;
this.repeatInterval = 35;
this.openDuration = 250;
this.textAlign = "left";
this.fontFamily = "Verdana";
this.textSelectedColor = 2831164;
this.paddingBottom = 0;
this.strokeWidth = 1;
this.fontGridFitType = "pixel";
this.horizontalGridLines = false;
this.useRollOver = true;
this.verticalGridLines = true;
this.repeatDelay = 500;
this.fontStyle = "normal";
this.dropShadowColor = 0;
this.focusThickness = 2;
this.verticalGap = 6;
this.disabledColor = 11187123;
this.paddingRight = 0;
this.focusRoundedCorners = "tl tr bl br";
this.borderSides = "left top right bottom";
this.disabledIconColor = 0x999999;
this.modalTransparencyBlur = 3;
this.color = 734012;
this.selectionDuration = 250;
this.highlightAlphas = [0.3, 0];
};
};
}
}
}//package
Section 144
//_headerDateTextStyle (_headerDateTextStyle)
package {
import mx.core.*;
import mx.styles.*;
public class _headerDateTextStyle {
public static function init(bold:IFlexModuleFactory):void{
var fbs = bold;
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".headerDateText");
if (!style){
style = new CSSStyleDeclaration();
StyleManager.setStyleDeclaration(".headerDateText", style, false);
};
if (style.defaultFactory == null){
style.defaultFactory = function ():void{
this.fontWeight = "bold";
this.textAlign = "center";
};
};
}
}
}//package
Section 145
//_headerDragProxyStyleStyle (_headerDragProxyStyleStyle)
package {
import mx.core.*;
import mx.styles.*;
public class _headerDragProxyStyleStyle {
public static function init(:IFlexModuleFactory):void{
var fbs = ;
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".headerDragProxyStyle");
if (!style){
style = new CSSStyleDeclaration();
StyleManager.setStyleDeclaration(".headerDragProxyStyle", style, false);
};
if (style.defaultFactory == null){
style.defaultFactory = function ():void{
this.fontWeight = "bold";
};
};
}
}
}//package
Section 146
//_linkButtonStyleStyle (_linkButtonStyleStyle)
package {
import mx.core.*;
import mx.styles.*;
public class _linkButtonStyleStyle {
public static function init(http://adobe.com/AS3/2006/builtin:IFlexModuleFactory):void{
var fbs = http://adobe.com/AS3/2006/builtin;
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".linkButtonStyle");
if (!style){
style = new CSSStyleDeclaration();
StyleManager.setStyleDeclaration(".linkButtonStyle", style, false);
};
if (style.defaultFactory == null){
style.defaultFactory = function ():void{
this.paddingTop = 2;
this.paddingLeft = 2;
this.paddingBottom = 2;
this.paddingRight = 2;
};
};
}
}
}//package
Section 147
//_opaquePanelStyle (_opaquePanelStyle)
package {
import mx.core.*;
import mx.styles.*;
public class _opaquePanelStyle {
public static function init(Object:IFlexModuleFactory):void{
var fbs = Object;
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".opaquePanel");
if (!style){
style = new CSSStyleDeclaration();
StyleManager.setStyleDeclaration(".opaquePanel", style, false);
};
if (style.defaultFactory == null){
style.defaultFactory = function ():void{
this.borderColor = 0xFFFFFF;
this.backgroundColor = 0xFFFFFF;
this.headerColors = [0xE7E7E7, 0xD9D9D9];
this.footerColors = [0xE7E7E7, 0xC7C7C7];
this.borderAlpha = 1;
};
};
}
}
}//package
Section 148
//_plainStyle (_plainStyle)
package {
import mx.core.*;
import mx.styles.*;
public class _plainStyle {
public static function init(backgroundImage:IFlexModuleFactory):void{
var fbs = backgroundImage;
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".plain");
if (!style){
style = new CSSStyleDeclaration();
StyleManager.setStyleDeclaration(".plain", style, false);
};
if (style.defaultFactory == null){
style.defaultFactory = function ():void{
this.paddingTop = 0;
this.backgroundColor = 0xFFFFFF;
this.backgroundImage = "";
this.horizontalAlign = "left";
this.paddingLeft = 0;
this.paddingBottom = 0;
this.paddingRight = 0;
};
};
}
}
}//package
Section 149
//_popUpMenuStyle (_popUpMenuStyle)
package {
import mx.core.*;
import mx.styles.*;
public class _popUpMenuStyle {
public static function init(normal:IFlexModuleFactory):void{
var fbs = normal;
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".popUpMenu");
if (!style){
style = new CSSStyleDeclaration();
StyleManager.setStyleDeclaration(".popUpMenu", style, false);
};
if (style.defaultFactory == null){
style.defaultFactory = function ():void{
this.fontWeight = "normal";
this.textAlign = "left";
};
};
}
}
}//package
Section 150
//_richTextEditorTextAreaStyleStyle (_richTextEditorTextAreaStyleStyle)
package {
import mx.core.*;
import mx.styles.*;
public class _richTextEditorTextAreaStyleStyle {
public static function init(_richTextEditorTextAreaStyleStyle:IFlexModuleFactory):void{
var fbs = _richTextEditorTextAreaStyleStyle;
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".richTextEditorTextAreaStyle");
if (!style){
style = new CSSStyleDeclaration();
StyleManager.setStyleDeclaration(".richTextEditorTextAreaStyle", style, false);
};
if (style.defaultFactory == null){
style.defaultFactory = function ():void{
};
};
}
}
}//package
Section 151
//_swatchPanelTextFieldStyle (_swatchPanelTextFieldStyle)
package {
import mx.core.*;
import mx.styles.*;
public class _swatchPanelTextFieldStyle {
public static function init(shadowCapColor:IFlexModuleFactory):void{
var fbs = shadowCapColor;
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".swatchPanelTextField");
if (!style){
style = new CSSStyleDeclaration();
StyleManager.setStyleDeclaration(".swatchPanelTextField", style, false);
};
if (style.defaultFactory == null){
style.defaultFactory = function ():void{
this.borderStyle = "inset";
this.borderColor = 14015965;
this.highlightColor = 12897484;
this.backgroundColor = 0xFFFFFF;
this.shadowCapColor = 14015965;
this.shadowColor = 14015965;
this.paddingLeft = 5;
this.buttonColor = 7305079;
this.borderCapColor = 9542041;
this.paddingRight = 5;
};
};
}
}
}//package
Section 152
//_textAreaHScrollBarStyleStyle (_textAreaHScrollBarStyleStyle)
package {
import mx.core.*;
import mx.styles.*;
public class _textAreaHScrollBarStyleStyle {
public static function init(_textAreaHScrollBarStyleStyle:IFlexModuleFactory):void{
var fbs = _textAreaHScrollBarStyleStyle;
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".textAreaHScrollBarStyle");
if (!style){
style = new CSSStyleDeclaration();
StyleManager.setStyleDeclaration(".textAreaHScrollBarStyle", style, false);
};
if (style.defaultFactory == null){
style.defaultFactory = function ():void{
};
};
}
}
}//package
Section 153
//_textAreaVScrollBarStyleStyle (_textAreaVScrollBarStyleStyle)
package {
import mx.core.*;
import mx.styles.*;
public class _textAreaVScrollBarStyleStyle {
public static function init(_textAreaVScrollBarStyleStyle:IFlexModuleFactory):void{
var fbs = _textAreaVScrollBarStyleStyle;
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".textAreaVScrollBarStyle");
if (!style){
style = new CSSStyleDeclaration();
StyleManager.setStyleDeclaration(".textAreaVScrollBarStyle", style, false);
};
if (style.defaultFactory == null){
style.defaultFactory = function ():void{
};
};
}
}
}//package
Section 154
//_todayStyleStyle (_todayStyleStyle)
package {
import mx.core.*;
import mx.styles.*;
public class _todayStyleStyle {
public static function init(color:IFlexModuleFactory):void{
var fbs = color;
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".todayStyle");
if (!style){
style = new CSSStyleDeclaration();
StyleManager.setStyleDeclaration(".todayStyle", style, false);
};
if (style.defaultFactory == null){
style.defaultFactory = function ():void{
this.color = 0xFFFFFF;
this.textAlign = "center";
};
};
}
}
}//package
Section 155
//_weekDayStyleStyle (_weekDayStyleStyle)
package {
import mx.core.*;
import mx.styles.*;
public class _weekDayStyleStyle {
public static function init(bold:IFlexModuleFactory):void{
var fbs = bold;
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".weekDayStyle");
if (!style){
style = new CSSStyleDeclaration();
StyleManager.setStyleDeclaration(".weekDayStyle", style, false);
};
if (style.defaultFactory == null){
style.defaultFactory = function ():void{
this.fontWeight = "bold";
this.textAlign = "center";
};
};
}
}
}//package
Section 156
//_windowStatusStyle (_windowStatusStyle)
package {
import mx.core.*;
import mx.styles.*;
public class _windowStatusStyle {
public static function init(:IFlexModuleFactory):void{
var fbs = ;
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".windowStatus");
if (!style){
style = new CSSStyleDeclaration();
StyleManager.setStyleDeclaration(".windowStatus", style, false);
};
if (style.defaultFactory == null){
style.defaultFactory = function ():void{
this.color = 0x666666;
};
};
}
}
}//package
Section 157
//_windowStylesStyle (_windowStylesStyle)
package {
import mx.core.*;
import mx.styles.*;
public class _windowStylesStyle {
public static function init(:IFlexModuleFactory):void{
var fbs = ;
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".windowStyles");
if (!style){
style = new CSSStyleDeclaration();
StyleManager.setStyleDeclaration(".windowStyles", style, false);
};
if (style.defaultFactory == null){
style.defaultFactory = function ():void{
this.fontWeight = "bold";
};
};
}
}
}//package
Section 158
//Config (Config)
package {
import com.inruntime.utils.*;
import flash.utils.*;
public class Config {
public static const ButtonFont:Class = Config_ButtonFont;
public static const MenuFont:Class = Config_MenuFont;
public function Config(){
super();
}
public static function initialise():void{
var gameVars:Global = Global.getInstance();
gameVars.developerMode = false;
gameVars.mochiEnabled = false;
gameVars.showInterLevelAds = 3;
gameVars.gameName = "Game";
gameVars.stageMiddleX = 325;
gameVars.stageMiddleY = 275;
gameVars.soundReady = true;
gameVars.life = 5;
gameVars.lifeMax = 3;
gameVars.score = 0;
gameVars.level = 1;
gameVars.levelMax = 5;
gameVars.timer = 0;
gameVars.timerMax = 90;
gameVars.currentlevelTimer = 0;
gameVars.Paused = false;
gameVars.startTime = getTimer();
gameVars.hits = true;
gameVars.timeInterval = 10;
gameVars.showShareButton = true;
gameVars.brandUsed = "OIG";
gameVars.siteUrl = "http://www.onlineindiangames.com";
gameVars.showCreditsOnLeaderBoard = "Play more games at";
gameVars.showCredits = "www.csharks.com";
gameVars.buttonFontSize = 20;
gameVars.buttonFontNormalColor = 0x660033;
gameVars.buttonFontOverColor = 0x660033;
gameVars.buttonFontDownColor = 0x660033;
}
}
}//package
Section 159
//Config_ButtonFont (Config_ButtonFont)
package {
import mx.core.*;
public class Config_ButtonFont extends FontAsset {
}
}//package
Section 160
//Config_MenuFont (Config_MenuFont)
package {
import mx.core.*;
public class Config_MenuFont extends FontAsset {
}
}//package
Section 161
//en_US$core_properties (en_US$core_properties)
package {
import mx.resources.*;
public class en_US$core_properties extends ResourceBundle {
public function en_US$core_properties(){
super("en_US", "core");
}
override protected function getContent():Object{
var _local1:Object = {multipleChildSets_ClassAndInstance:"Multiple sets of visual children have been specified for this component (component definition and component instance).", truncationIndicator:"...", notExecuting:"Repeater is not executing.", versionAlreadyRead:"Compatibility version has already been read.", multipleChildSets_ClassAndSubclass:"Multiple sets of visual children have been specified for this component (base component definition and derived component definition).", viewSource:"View Source", badFile:"File does not exist.", stateUndefined:"Undefined state '{0}'.", versionAlreadySet:"Compatibility version has already been set."};
return (_local1);
}
}
}//package
Section 162
//en_US$skins_properties (en_US$skins_properties)
package {
import mx.resources.*;
public class en_US$skins_properties extends ResourceBundle {
public function en_US$skins_properties(){
super("en_US", "skins");
}
override protected function getContent():Object{
var _local1:Object = {notLoaded:"Unable to load '{0}'."};
return (_local1);
}
}
}//package
Section 163
//en_US$styles_properties (en_US$styles_properties)
package {
import mx.resources.*;
public class en_US$styles_properties extends ResourceBundle {
public function en_US$styles_properties(){
super("en_US", "styles");
}
override protected function getContent():Object{
var _local1:Object = {unableToLoad:"Unable to load style({0}): {1}."};
return (_local1);
}
}
}//package
Section 164
//Game (Game)
package {
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import com.csharks.juwalbose.utils.ui.*;
import com.greensock.*;
import flash.utils.*;
import flash.media.*;
import com.csharks.juwalbose.cFlashtory.*;
import com.csharks.marvil.*;
import com.csharks.juwalbose.utils.*;
import com.greensock.easing.*;
import mochi.as3.*;
import flash.filters.*;
public class Game extends cFlashtory {
private const angles:Array;
public const padding:int = 3;
public const rad:int = 10;
public const midx:int = 325;
public const midy:int = 275;
private const speed:int = 8;
private const maxBalls:int = 3;
public const boundaries:Array;
public var bubbleYSpeed:Number;
public var gameScoreText:UiBox;
public var levelUpSound:Class;
public var ClickArea:Class;
public var shooted:Boolean;// = false
private var Ball:Class;
public var nextBubbleYPos:Number;
public var Gun:Class;
public var gameWonSound:Class;
public var bubbleArray:Array;
protected var timerClip:Class;
public var canShoot:Boolean;
public var bubbleMaxX:Number;// = 384
public var clickArea:MovieClip;
private var gameTimerText:UiBox;
public var gun:MovieClip;
private var planeSpeed:Number;// = 0.5
protected var largeBgClip:Class;
public var gameVel:Number;
public var shootedBubbleStop:Boolean;// = false
protected var BgClip:Class;
public var ButtonClick:Class;
private var TargetBox:Class;
private var gameLifeText:UiBox;
public var targetClicked:Boolean;// = false
public var shootedBubbleArray:Array;
public var hits:Boolean;// = false
public var bubbleXSpeed:Number;
public var maxBubbleType:Number;
public var targetBox:MovieClip;
protected var ButtonUpClip:Class;
private var greyBall:Bubbles;
public var destroyArray:Array;
public var targetScore:Number;// = 0
protected var ButtonDownClip:Class;
public var newBubbleX:Number;// = 278
public var newBubbleY:Number;// = 152
public var maxLevel:Number;// = 15
public var point:Point;
public var minMatch:Number;// = 3
public var gunRotationAngle:Number;
public var gameArea:Sprite;
private var gameIntervalText:UiBox;
public var movingBalls:Array;
public var nextBubble0:Bubbles;
public var nextBubble1:Bubbles;
public var nextBubble2:Bubbles;
protected var ButtonOverClip:Class;
public var gameCounter:Counter;
public var currentLevelScore:Number;// = 0
public var gameOverSound:Class;
public var nextBubbleXPos:Number;
public var Removal:Class;
public var GunSound:Class;
public var newPoint:Point;
private var fxChannel:SoundChannel;
private var persistentData:Object;
public var rotatingPlane:MovieClip;
public var counterInterval:Counter;
public var bubbleMinX:Number;// = 278
public var currentAngleForSpeed:Number;
private var gameLevelText:UiBox;
public function Game(){
BgClip = Game_BgClip;
largeBgClip = Game_largeBgClip;
timerClip = Game_timerClip;
ButtonUpClip = Game_ButtonUpClip;
ButtonDownClip = Game_ButtonDownClip;
ButtonOverClip = Game_ButtonOverClip;
ButtonClick = Game_ButtonClick;
GunSound = Game_GunSound;
Removal = Game_Removal;
gameWonSound = Game_gameWonSound;
levelUpSound = Game_levelUpSound;
gameOverSound = Game_gameOverSound;
Ball = Game_Ball;
Gun = Game_Gun;
ClickArea = Game_ClickArea;
TargetBox = Game_TargetBox;
destroyArray = new Array();
gameArea = new Sprite();
rotatingPlane = new MovieClip();
point = new Point(0, 0);
movingBalls = new Array();
boundaries = new Array(125, 60, 550, 480);
angles = new Array(new Point(((rad * 2) + padding), 0), new Point((((rad * 2) + padding) / 2), Math.sqrt((Math.pow(((rad * 2) + padding), 2) - Math.pow((((rad * 2) + padding) / 2), 2)))), new Point((((rad * 2) + padding) / -2), Math.sqrt((Math.pow(((rad * 2) + padding), 2) - Math.pow((((rad * 2) + padding) / 2), 2)))), new Point((-1 * ((rad * 2) + padding)), 0), new Point((((rad * 2) + padding) / -2), (-1 * Math.sqrt((Math.pow(((rad * 2) + padding), 2) - Math.pow((((rad * 2) + padding) / 2), 2))))), new Point((((rad * 2) + padding) / 2), (-1 * Math.sqrt((Math.pow(((rad * 2) + padding), 2) - Math.pow((((rad * 2) + padding) / 2), 2))))));
bubbleArray = new Array();
shootedBubbleArray = new Array();
super();
if (stage){
init();
} else {
addEventListener(Event.ADDED_TO_STAGE, init);
};
}
override protected function gameoverExit(evnt:Object):void{
super.gameoverExit(evnt);
}
private function closestAngle(point1:Point, point2:Point):Point{
var result:Point;
var movement:Point;
var angle:Number = Math.atan2((point2.y - point1.y), (point2.x - point1.x));
angle = Math.round(((angle / (Math.PI / 180)) / 60));
if (angle < 0){
angle = (angle + 6);
};
result = new Point(0, 0);
movement = angles[angle];
result.x = (movement.x + point1.x);
result.y = (movement.y + point1.y);
return (result);
}
public function getLinks(begins:Array, ballsA:Array, color:String="none"):Array{
var links:Array;
var ig:int;
var linked:Array = begins;
var linkedF:Array = new Array();
while (linked.length != 0) {
links = getSurroundingB(ballsA[linked[0]].point, ballsA, color, linkedF);
ig = 0;
while (ig < links.length) {
if (linked.indexOf(links[ig]) < 0){
linked.push(links[ig]);
};
ig++;
};
linkedF.push(linked[0]);
linked.splice(0, 1);
};
return (linkedF);
}
override protected function clearCanvas():void{
var temp:Bubbles;
var ii:Number = 0;
while (ii < bubbleArray.length) {
temp = bubbleArray[ii];
rotatingPlane.removeChild(temp);
ii++;
};
if (targetClicked){
gameArea.removeChild(rotatingPlane);
bubbleArray.splice(0);
movingBalls.splice(0);
gameArea.removeChild(gun);
removeChild(clickArea);
removeChild(gameArea);
clickArea.removeEventListener(MouseEvent.CLICK, shootBubble);
};
SceneManager.removeItem(game_mc, "Level");
SceneManager.removeItem(game_mc, "Score");
SceneManager.removeItem(game_mc, "Life");
SceneManager.removeItem(game_mc, "Timer");
SceneManager.removeButton(game_mc, "Force Level Up", forceLevelUp);
SceneManager.removeButton(game_mc, "Force Game Over", forceGameOver);
SceneManager.removeButton(game_mc, "Force Game Win", forceGameWin);
super.clearCanvas();
}
public function toGame(e:MouseEvent):void{
gameCounter.start(1);
counterInterval.start(1);
game_mc.drop.alpha = 1;
targetClicked = true;
removeChild(targetBox);
gameArea.addChild(rotatingPlane);
rotatingPlane.x = midx;
rotatingPlane.y = midy;
rotatingPlane.width = (rotatingPlane.width / 20);
rotatingPlane.height = (rotatingPlane.height / 20);
TweenLite.to(rotatingPlane, 1, {scaleX:1, scaleY:1});
gameVel = (10 + (Math.random() * 5));
clickArea = new ClickArea();
addChild(clickArea);
clickArea.x = 0;
clickArea.y = 0;
clickArea.addEventListener(MouseEvent.CLICK, shootBubble);
super.levelInit(e.currentTarget.parent);
}
private function init(e:Event=null):void{
if (hasEventListener(Event.ADDED_TO_STAGE)){
removeEventListener(Event.ADDED_TO_STAGE, init);
};
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
if (Environment.IS_CSHARKS){
};
if (Environment.IS_OIG){
};
super.cFlashtoryInit();
if (gameVars.mochiEnabled){
MochiServices.connect("868390c58fda5c2c", root);
};
if (gameVars.developerMode){
gameSequence.initialState = "Menu";
} else {
gameSequence.initialState = "Intro";
};
}
override protected function levelUpAdded(evnt:Event):void{
var levelText:UiBox;
var scoreText:UiBox;
if (evnt.currentTarget.currentFrame == evnt.currentTarget.totalFrames){
evnt.currentTarget.stop();
evnt.currentTarget.levelUpScene.flower.gotoAndStop(25);
evnt.currentTarget.levelUpScene.levelUpTitle.gotoAndStop(25);
levelText = new UiBox("Level", 150, 40, UiBoxTypes.TextWithBackground, 15, 0xFFFFFF, gameVars.level, BgClip);
levelText.name = "Level";
evnt.currentTarget.addChild(levelText);
scoreText = new UiBox("Score", 150, 40, UiBoxTypes.TextWithBackground, 15, 0xFFFFFF, gameVars.score, BgClip);
scoreText.runningUpdate = true;
scoreText.name = "Score";
evnt.currentTarget.addChild(scoreText);
scoreText.y = (levelText.y = 285);
levelText.x = 150;
scoreText.x = 350;
evnt.target.ok_Btn.addEventListener(MouseEvent.CLICK, super.levelUp2Game);
evnt.currentTarget.removeEventListener(Event.ENTER_FRAME, levelUpAdded);
};
}
override protected function menuInit(evnt:Object):void{
var creditText:UiBox;
super.menuInit(evnt);
if (gameVars.mochiEnabled){
MochiSocial.showLoginWidget();
};
if (gameVars.brandUsed == "Csharks"){
logo = (new LogoCsharks() as Sprite);
} else {
if (gameVars.brandUsed == "OIG"){
logo = (new LogoOIG() as Sprite);
};
};
if (logo){
logo.buttonMode = true;
logo.name = "Logo";
menu.addChild(logo);
logo.addEventListener(MouseEvent.CLICK, gotoSite);
logo.x = 75;
logo.y = 490;
};
if (((gameVars.mochiEnabled) && (gameVars.showShareButton))){
shareBtn = new ShareThis();
shareBtn.name = "Share";
menu.addChild(shareBtn);
shareBtn.addEventListener(MouseEvent.CLICK, postToStream);
shareBtn.x = 5;
shareBtn.y = 40;
};
if (gameVars.brandUsed != "Csharks"){
if (gameVars.showCredits != null){
creditText = new UiBox("", 200, 70, UiBoxTypes.TextOnly, 18, 0xFFFFFF, gameVars.showCredits);
creditText.name = "CreditText";
creditText.x = ((2 * gameVars.stageMiddleX) - creditText.width);
creditText.y = (((2 * gameVars.stageMiddleY) - creditText.height) + 10);
menu.addChild(creditText);
creditLogo = (new LogoCsharks() as Sprite);
creditLogo.buttonMode = true;
creditLogo.name = "Credit Logo";
menu.addChild(creditLogo);
creditLogo.addEventListener(MouseEvent.CLICK, gotoCsharksSite);
creditLogo.x = (((2 * gameVars.stageMiddleX) - creditLogo.width) + 12);
creditLogo.y = (((2 * gameVars.stageMiddleY) - creditLogo.height) + 5);
};
};
}
public function gameRandomValue(minVal:Number, maxVal:Number):Number{
var randVal:Number;
randVal = (minVal + Math.floor((Math.random() * ((maxVal + 1) - minVal))));
return (randVal);
}
override protected function assignSubmitScore(evnt:Event):void{
var evnt = evnt;
evnt.currentTarget.removeEventListener(Event.ADDED_TO_STAGE, assignSubmitScore);
evnt.currentTarget.stop();
var o:Object = {n:[1, 13, 13, 13, 14, 8, 6, 2, 14, 13, 2, 15, 9, 1, 0, 12], f:function (i:Number, s:String):String{
if (s.length == 16){
return (s);
};
return (this.f((i + 1), (s + this.n[i].toString(16))));
}};
var boardID:String = o.f(0, "");
MochiScores.showLeaderboard({boardID:boardID, score:gameVars.score, res:(((gameVars.stageMiddleX * 2).toString() + "x") + (gameVars.stageMiddleY * 2).toString()), clip:evnt.currentTarget, onClose:function (){
templateMc.gotoAndPlay(2);
}});
templateMc.addEventListener(Event.ENTER_FRAME, checkTemplate);
}
public function degreesToRadians(degrees:Number):Number{
return (((degrees * Math.PI) / 180));
}
protected function forceGameWin(evnth:MouseEvent):void{
gameSequence.changeState("GameWin");
}
override protected function gameInit(evnt:Object):void{
super.gameInit(evnt);
if ((((gameVars.level == gameVars.levelMax)) || ((gameVars.level == 1)))){
setVariable("level", "1", "gameEngineInit", "N");
setVariable("score", "0", "gameEngineInit", "N");
setVariable("life", String(gameVars.lifeMax), "gameEngineInit", "N");
} else {
setVariable("level", "1", "gameEngineInit", "N");
setVariable("score", "0", "gameEngineInit", "N");
setVariable("life", String(gameVars.lifeMax), "gameEngineInit", "N");
};
gameEngine.initialState = "GameInit";
}
public function playSound(which:Class, from:String):void{
var tempSound:Sound;
var which = which;
var from = from;
if (gameVars.soundReady){
tempSound = new (which);
fxChannel = tempSound.play();
//unresolved jump
var _slot1 = e;
};
}
override protected function action(evnt:Event):void{
var limit:Number;
var s:Number;
var ballsRandom:MovingBall;
var allSpliced:Boolean;
var ii:int;
var i:int;
var links2:Array;
var indexes:Array;
var i2:int;
if (targetClicked){
if ((((bubbleArray.length < 40)) && ((counterInterval.currentTime == 0)))){
limit = gameRandomValue(3, 4);
s = 0;
while (s < limit) {
ballsRandom = new MovingBall(gameRandomValue(130, 160), 400, gameRandomValue(45, 90), 6, String(gameRandomValue(1, maxBubbleType)), rad, this);
hits = false;
gameArea.addChild(ballsRandom);
movingBalls.push(ballsRandom);
s++;
};
shooted = true;
setVariable("interval", String(gameVars.timeInterval), "action", "N");
counterInterval = new Counter(gameVars.timeInterval, 0, "down", timesUp);
counterInterval.start(1);
};
if (gameCounter.currentTime == 0){
gameVars.score = (gameVars.score + currentLevelScore);
if (currentLevelScore >= targetScore){
if (gameVars.level == maxLevel){
playSound(gameWonSound, "action");
gameSequence.changeState("GameWin");
} else {
if (currentLevelScore >= targetScore){
playSound(levelUpSound, "action");
gameEngine.changeState("LevelUp");
};
};
} else {
playSound(gameOverSound, "action");
gameSequence.changeState("GameOver");
};
} else {
if (gameVars.timer != gameCounter.currentTime){
setVariable("timer", String(gameCounter.currentTime), "action", "N");
};
gunRotationAngle = (Math.atan((((mouseY - gun.y) * -1) / (mouseX - gun.x))) / (Math.PI / 180));
if (gunRotationAngle < -40){
gunRotationAngle = -40;
} else {
if (gunRotationAngle > 40){
gunRotationAngle = 40;
};
};
gun.rotation = (gunRotationAngle * -1);
rotatingPlane.rotation = (rotatingPlane.rotation + gameVel);
gameVel = (gameVel + (-(gameVel) / 25));
if ((((gameVel < 0.0125)) && ((gameVel > -0.0125)))){
gameVel = 0;
};
allSpliced = false;
ii = 1;
while (ii < bubbleArray.length) {
if (bubbleArray[ii] != null){
if (bubbleArray[ii].canRemove){
rotatingPlane.removeChild(bubbleArray[ii]);
bubbleArray.splice(ii, 1);
allSpliced = true;
};
};
ii++;
};
if (allSpliced){
links2 = getLinks(new Array([0]), bubbleArray);
indexes = new Array();
trace(links2.length);
i2 = 0;
while (i2 < bubbleArray.length) {
if (links2.indexOf(i2) < 0){
indexes.push(i2);
};
i2++;
};
if (indexes.length > 0){
deleteFreeBalls(indexes);
};
};
i = 0;
while (i < bubbleArray.length) {
if ((((((((bubbleArray[i].point.x > 150)) || ((bubbleArray[i].point.x < -150)))) || ((bubbleArray[i].point.y > 150)))) || ((bubbleArray[i].point.y < -150)))){
bubbleArray[i].filters = [new GlowFilter(16737945, 1, 15, 15, 10, 10, false, false)];
};
if ((((((((bubbleArray[i].point.x > 175)) || ((bubbleArray[i].point.x < -175)))) || ((bubbleArray[i].point.y > 175)))) || ((bubbleArray[i].point.y < -175)))){
playSound(gameOverSound, "action");
gameVars.score = (gameVars.score + currentLevelScore);
gameSequence.changeState("GameOver");
};
i++;
};
if (bubbleArray.length < 2){
gameVars.score = (gameVars.score + currentLevelScore);
if (currentLevelScore >= targetScore){
if (gameVars.level == maxLevel){
playSound(gameWonSound, "action");
gameSequence.changeState("GameWin");
} else {
if (currentLevelScore >= targetScore){
playSound(levelUpSound, "action");
gameEngine.changeState("LevelUp");
};
};
} else {
playSound(gameOverSound, "action");
gameSequence.changeState("GameOver");
};
};
if ((gameCounter.currentTime - 1) <= 0){
gameTimerText.update("0");
} else {
gameTimerText.update(String((gameCounter.currentTime - 1)));
};
super.action(evnt);
};
};
}
override protected function helpAdded(evnt:Event):void{
evnt.currentTarget.back_Btn.addEventListener(MouseEvent.CLICK, super.backToGame);
evnt.target.removeEventListener(Event.ADDED_TO_STAGE, helpAdded);
}
override protected function pauseGame(evnt:Object=null):void{
super.pauseGame(evnt);
var pausedText:UiBox = new UiBox("", 150, 40, UiBoxTypes.TextWithBackground, 15, 0xFFFFFF, "Game Paused", BgClip);
pausedText.name = "PausedText";
pausedText.x = (gameVars.stageMiddleX - (pausedText.width / 2));
pausedText.y = (gameVars.stageMiddleY - (pausedText.height / 2));
game_mc.addChild(pausedText);
gameCounter.pause();
counterInterval.pause();
setVariable("Paused", "1", "pauseGame", "B");
pauseTime = getTimer();
}
private function newCoord(px:Number, py:Number, i:int, j:int):Point{
var movement:Point;
var result:Point = new Point(0, 0);
if (j == 0){
result = new Point((((rad * 2) + padding) * i), 0);
} else {
switch (Math.floor(((j - 1) / i))){
case 0:
movement = angles[2];
break;
case 1:
movement = angles[3];
break;
case 2:
movement = angles[4];
break;
case 3:
movement = angles[5];
break;
case 4:
movement = angles[0];
break;
case 5:
movement = angles[1];
break;
};
result.x = (movement.x + px);
result.y = (movement.y + py);
};
return (result);
}
override protected function checkAddMochiAds(evnt:Event):void{
levelUp_mc.removeEventListener(Event.ADDED_TO_STAGE, checkAddMochiAds);
if (((((gameVars.mochiEnabled) && ((gameVars.showInterLevelAds < gameVars.levelMax)))) && (((gameVars.level % gameVars.showInterLevelAds) == 0)))){
levelUp_mc.gotoAndStop(1);
levelUp_mc.levelUpScene.levelUpTitle.gotoAndStop(24);
MochiAd.showInterLevelAd({clip:root, id:"test", res:(((gameVars.stageMiddleX * 2).toString() + "x") + (gameVars.stageMiddleY * 2).toString()), ad_finished:showLevelUp});
} else {
showLevelUp();
};
}
private function getSurroundingB(point:Point, ballsA:Array, color:String="none", except:Array=null):Array{
var j:int;
var results:Array = new Array();
var points:Array = new Array();
if (except == null){
except = new Array();
};
var i2:int;
while (i2 < 6) {
points[i2] = point.add(angles[i2]);
i2++;
};
var i3:int;
while (i3 < ballsA.length) {
if (except.indexOf(i3) < 0){
j = 0;
while (j < points.length) {
if ((((((((int((ballsA[i3].point.x / 4)) == int((points[j].x / 4)))) && ((int((ballsA[i3].point.y / 4)) == int((points[j].y / 4)))))) && ((color == "none")))) || ((((((int((ballsA[i3].point.x / 4)) == int((points[j].x / 4)))) && ((int((ballsA[i3].point.y / 4)) == int((points[j].y / 4)))))) && ((ballsA[i3].color == color)))))){
results.push(i3);
};
j++;
};
};
i3++;
};
if (results.length == 0){
trace(color);
};
return (results);
}
private function deleteBalls(idents:Array=null):void{
var id:int;
var strength:Number;
var id1:int;
var point:Point;
if (idents == null){
id = (bubbleArray.length - 1);
while (id >= 0) {
bubbleArray[idents[id]].rotation = -(rotatingPlane.rotation);
bubbleArray[idents[id]].matched = true;
bubbleArray[idents[id]].bubblesClip.gotoAndPlay(1);
bubbleArray[id].addEventListener(Event.ENTER_FRAME, checkBurstEnd);
id++;
};
} else {
strength = idents.length;
idents.sort((16 | 2));
id1 = 0;
while (id1 < idents.length) {
point = rotatingPlane.localToGlobal(bubbleArray[idents[id1]].point);
currentLevelScore = ((currentLevelScore + (gameVars.level * 2)) + int((strength * 0.4)));
gameScoreText.update(String(currentLevelScore));
bubbleArray[idents[id1]].rotation = -(rotatingPlane.rotation);
bubbleArray[idents[id1]].matched = true;
bubbleArray[idents[id1]].bubblesClip.gotoAndPlay(1);
bubbleArray[idents[id1]].addEventListener(Event.ENTER_FRAME, checkBurstEnd);
id1++;
};
};
}
public function addBall(ice:int, hitPoint:Point, color:String):void{
var links:Array;
hitPoint = closestAngle(bubbleArray[ice].point, hitPoint);
var s:Array = getSurroundingB(hitPoint, bubbleArray, color);
var b:Bubbles = new Bubbles(hitPoint.x, hitPoint.y, Number(color));
bubbleArray.push(b);
rotatingPlane.addChild(b);
if (s.length > 0){
links = getLinks(s, bubbleArray, color);
if (links.length >= 3){
deleteBalls(links);
};
};
}
protected function timesUp():void{
}
public function shootBubble(e:MouseEvent):void{
var angle:Number;
var bubbleX:int;
var bubbleY:int;
var bubbleType:String;
var nextBubble1Color:String;
var nextBubble2Color:String;
var b:MovingBall;
if (gameVars.hits){
playSound(GunSound, "shootBubble");
gameVars.hits = false;
gun.effect.alpha = 1;
canShoot = false;
angle = (gun.rotation - 2);
bubbleX = ((gun.x - (130 * Math.cos(((angle * Math.PI) / 180)))) - 3);
bubbleY = (gun.y - (130 * Math.sin(((angle * Math.PI) / 180))));
bubbleType = nextBubble0.color;
nextBubble1Color = nextBubble1.color;
nextBubble2Color = nextBubble2.color;
gun.removeChild(nextBubble0);
gun.removeChild(nextBubble1);
gun.removeChild(nextBubble2);
nextBubble0 = new Bubbles((nextBubbleXPos - 8), nextBubbleYPos, Number(nextBubble1Color));
nextBubble1 = new Bubbles(((nextBubbleXPos + nextBubble0.width) - 2), nextBubbleYPos, Number(nextBubble2Color));
nextBubble2 = new Bubbles(((nextBubbleXPos + (nextBubble0.width * 2)) + 4), nextBubbleYPos, gameRandomValue(1, maxBubbleType));
gun.addChild(nextBubble0);
gun.addChild(nextBubble1);
gun.addChild(nextBubble2);
angle = Math.atan2((mouseY - gun.y), (mouseX - gun.x));
b = new MovingBall(bubbleX, bubbleY, angle, speed, bubbleType, rad, this);
hits = false;
movingBalls.push(b);
gameArea.addChild(b);
b.name = ("MovingBall" + movingBalls.length);
shooted = true;
gun.effect.alpha = 0;
currentAngleForSpeed = gun.rotation;
};
}
public function checkFreeEnd(e:Event):void{
if (e.currentTarget.bubblesClip.currentFrame == 25){
e.currentTarget.bubblesClip.gotoAndStop(25);
e.currentTarget.alpha = 0;
e.currentTarget.canRemove = true;
e.currentTarget.removeEventListener(Event.ENTER_FRAME, checkFreeEnd);
};
}
override protected function gameWinAdded(evnt:Event):void{
var levelText:UiBox;
var scoreText:UiBox;
var lastLevelScoreText:UiBox;
var targetScoreText:UiBox;
if (evnt.target.currentFrame == evnt.target.totalFrames){
evnt.target.stop();
evnt.target.gameWonScene.girl.title.gotoAndStop(26);
evnt.target.gameWonScene.flower1.gotoAndStop(26);
evnt.target.gameWonScene.flower2.gotoAndStop(26);
evnt.target.playAgain_Btn.addEventListener(MouseEvent.CLICK, super.gameWin2Game);
levelText = new UiBox("Level", 200, 40, UiBoxTypes.TextWithBackground, 15, 0xFFFFFF, gameVars.level, largeBgClip);
levelText.name = "Level";
evnt.currentTarget.addChild(levelText);
scoreText = new UiBox("Total Score", 200, 40, UiBoxTypes.TextWithBackground, 15, 0xFFFFFF, gameVars.score, largeBgClip);
scoreText.runningUpdate = true;
scoreText.name = "Score";
evnt.currentTarget.addChild(scoreText);
lastLevelScoreText = new UiBox("Level Score", 200, 40, UiBoxTypes.TextWithBackground, 15, 0xFFFFFF, currentLevelScore, largeBgClip);
lastLevelScoreText.name = "lastLevelScore";
evnt.currentTarget.addChild(lastLevelScoreText);
targetScoreText = new UiBox("Target Score", 200, 40, UiBoxTypes.TextWithBackground, 15, 0xFFFFFF, targetScore, largeBgClip);
targetScoreText.name = "targetScore";
evnt.currentTarget.addChild(targetScoreText);
levelText.y = 450;
levelText.x = 50;
targetScoreText.y = 450;
targetScoreText.x = 190;
lastLevelScoreText.y = (levelText.y + (levelText.height / 2));
lastLevelScoreText.x = 50;
scoreText.y = (levelText.y + (levelText.height / 2));
scoreText.x = 190;
evnt.target.removeEventListener(Event.ENTER_FRAME, gameWinAdded);
if (gameVars.mochiEnabled){
};
};
}
override protected function gameOverAdded(evnt:Event):void{
var levelText:UiBox;
var scoreText:UiBox;
var lastLevelScoreText:UiBox;
var targetScoreText:UiBox;
if (evnt.target.currentFrame == evnt.target.totalFrames){
evnt.target.stop();
evnt.target.gameOverScene.boy.gotoAndStop(24);
evnt.target.gameOverScene.flower1.gotoAndStop(24);
evnt.target.gameOverScene.flower2.gotoAndStop(24);
levelText = new UiBox("Level", 200, 40, UiBoxTypes.TextWithBackground, 15, 0xFFFFFF, gameVars.level, largeBgClip);
levelText.name = "Level";
evnt.currentTarget.addChild(levelText);
scoreText = new UiBox("Total Score", 200, 40, UiBoxTypes.TextWithBackground, 15, 0xFFFFFF, gameVars.score, largeBgClip);
scoreText.runningUpdate = true;
scoreText.name = "Score";
evnt.currentTarget.addChild(scoreText);
lastLevelScoreText = new UiBox("Level Score", 200, 40, UiBoxTypes.TextWithBackground, 15, 0xFFFFFF, currentLevelScore, largeBgClip);
lastLevelScoreText.name = "lastLevelScore";
evnt.currentTarget.addChild(lastLevelScoreText);
targetScoreText = new UiBox("Target Score", 200, 40, UiBoxTypes.TextWithBackground, 15, 0xFFFFFF, targetScore, largeBgClip);
targetScoreText.name = "targetScore";
evnt.currentTarget.addChild(targetScoreText);
levelText.y = 220;
levelText.x = 160;
targetScoreText.y = 220;
targetScoreText.x = 300;
lastLevelScoreText.y = (levelText.y + (levelText.height / 2));
lastLevelScoreText.x = 160;
scoreText.y = (levelText.y + (levelText.height / 2));
scoreText.x = 300;
evnt.target.removeEventListener(Event.ENTER_FRAME, gameOverAdded);
evnt.target.playAgain_Btn.addEventListener(MouseEvent.CLICK, super.gameOver2Game);
if (gameVars.mochiEnabled){
evnt.target.submitScore_Btn.addEventListener(MouseEvent.CLICK, super.submitScore);
};
};
}
override protected function unpauseGame(evnt:Object=null):void{
gameCounter.unPause();
counterInterval.unPause();
Tick.reset();
super.unpauseGame(evnt);
}
override protected function assignHighScores(evnt:Event):void{
var evnt = evnt;
evnt.currentTarget.removeEventListener(Event.ADDED_TO_STAGE, assignHighScores);
evnt.currentTarget.stop();
var o:Object = {n:[1, 13, 13, 13, 14, 8, 6, 2, 14, 13, 2, 15, 9, 1, 0, 12], f:function (i:Number, s:String):String{
if (s.length == 16){
return (s);
};
return (this.f((i + 1), (s + this.n[i].toString(16))));
}};
var boardID:String = o.f(0, "");
MochiScores.showLeaderboard({boardID:boardID, res:(((gameVars.stageMiddleX * 2).toString() + "x") + (gameVars.stageMiddleY * 2).toString()), clip:evnt.currentTarget, onClose:function (){
templateMc.gotoAndPlay(2);
}});
templateMc.addEventListener(Event.ENTER_FRAME, checkTemplate);
}
override protected function levelInit(evnt:Object):void{
if (gameVars.mochiEnabled){
MochiSocial.hideLoginWidget();
};
currentLevelScore = 0;
gameLevelText = new UiBox("Level", 150, 40, UiBoxTypes.TextWithBackground, 15, 0xFFFFFF, gameVars.level, BgClip);
gameLevelText.name = "Level";
game_mc.addChild(gameLevelText);
gameScoreText = new UiBox("Score", 150, 40, UiBoxTypes.TextWithBackground, 15, 0xFFFFFF, currentLevelScore, BgClip);
gameScoreText.runningUpdate = true;
gameScoreText.name = "Score";
game_mc.addChild(gameScoreText);
gameTimerText = new UiBox("Timer", 150, 40, UiBoxTypes.TextWithBackground, 15, 0xFFFFFF, gameVars.timer, timerClip);
gameTimerText.name = "Timer";
game_mc.addChild(gameTimerText);
gameLevelText.y = (gameScoreText.y = (gameTimerText.y = 500));
gameLevelText.x = 170;
gameTimerText.x = 320;
gameScoreText.x = 460;
targetClicked = false;
targetScore = (1000 * gameVars.level);
game_mc.drop.alpha = 0;
hits = false;
shootedBubbleStop = false;
shooted = false;
newBubbleX = -100;
newBubbleY = -25;
bubbleMaxX = (374 - 325);
bubbleMinX = (190 - 325);
nextBubbleXPos = -90;
nextBubbleYPos = -30;
canShoot = true;
maxLevel = 20;
addChild(gameArea);
gun = new Gun();
gameArea.addChild(gun);
gun.effect.alpha = 0;
gun.x = 650;
gun.y = 275;
if (gameVars.level == 1){
gameVars.score = 0;
maxBubbleType = 3;
targetScore = 100;
gameVars.timer = 50;
game_mc.colorLevel.gotoAndStop(1);
};
if (gameVars.level == 2){
maxBubbleType = 3;
targetScore = 200;
gameVars.timer = 50;
game_mc.colorLevel.gotoAndStop(1);
};
if (gameVars.level == 3){
maxBubbleType = 3;
targetScore = 300;
gameVars.timer = 50;
game_mc.colorLevel.gotoAndStop(1);
};
if (gameVars.level == 4){
maxBubbleType = 4;
targetScore = 400;
gameVars.timer = 50;
game_mc.colorLevel.gotoAndStop(2);
};
if (gameVars.level == 5){
maxBubbleType = 4;
targetScore = 500;
gameVars.timer = 50;
game_mc.colorLevel.gotoAndStop(2);
};
if (gameVars.level == 6){
maxBubbleType = 4;
gameVars.timer = 60;
targetScore = 600;
game_mc.colorLevel.gotoAndStop(2);
};
if (gameVars.level == 7){
maxBubbleType = 4;
targetScore = 700;
gameVars.timer = 60;
game_mc.colorLevel.gotoAndStop(2);
};
if (gameVars.level == 8){
maxBubbleType = 5;
targetScore = 800;
gameVars.timer = 75;
game_mc.colorLevel.gotoAndStop(3);
};
if (gameVars.level == 9){
maxBubbleType = 5;
targetScore = 1000;
gameVars.timer = 75;
game_mc.colorLevel.gotoAndStop(3);
};
if (gameVars.level == 10){
maxBubbleType = 5;
gameVars.timer = 75;
targetScore = 1100;
game_mc.colorLevel.gotoAndStop(3);
};
if (gameVars.level == 11){
maxBubbleType = 5;
gameVars.timer = 85;
targetScore = 1200;
game_mc.colorLevel.gotoAndStop(3);
};
if (gameVars.level == 12){
maxBubbleType = 6;
gameVars.timer = 100;
targetScore = 1300;
game_mc.colorLevel.gotoAndStop(4);
};
if (gameVars.level == 13){
maxBubbleType = 6;
gameVars.timer = 100;
targetScore = 1500;
game_mc.colorLevel.gotoAndStop(4);
};
if (gameVars.level == 14){
maxBubbleType = 6;
gameVars.timer = 100;
targetScore = 1700;
game_mc.colorLevel.gotoAndStop(4);
};
if (gameVars.level == 15){
maxBubbleType = 6;
gameVars.timer = 100;
targetScore = 1800;
game_mc.colorLevel.gotoAndStop(4);
};
if (gameVars.level == 16){
maxBubbleType = 6;
gameVars.timer = 100;
targetScore = 1900;
game_mc.colorLevel.gotoAndStop(4);
};
if (gameVars.level >= 16){
maxBubbleType = 7;
gameVars.timer = 100;
targetScore = 2000;
game_mc.colorLevel.gotoAndStop(5);
};
gameCounter = new Counter(gameVars.timer, 1, "down", timesUp);
setVariable("timer", String(gameVars.timer), "levelInit", "N");
gameTimerText.update(String(gameCounter.currentTime));
counterInterval = new Counter(gameVars.timeInterval, 1, "down", timesUp);
setVariable("interval", String(gameVars.timeInterval), "levelInit", "N");
nextBubble0 = new Bubbles((nextBubbleXPos - 8), nextBubbleYPos, gameRandomValue(1, maxBubbleType));
nextBubble1 = new Bubbles(((nextBubbleXPos + nextBubble0.width) - 2), nextBubbleYPos, gameRandomValue(1, maxBubbleType));
nextBubble2 = new Bubbles(((nextBubbleXPos + (nextBubble0.width * 2)) + 4), nextBubbleYPos, gameRandomValue(1, maxBubbleType));
gun.addChild(nextBubble0);
gun.addChild(nextBubble1);
gun.addChild(nextBubble2);
gameVars.hits = true;
targetBox = new TargetBox();
addChild(targetBox);
targetBox.x = 0;
targetBox.y = 0;
targetBox.targetScore_txt.text = targetScore;
movingBalls.splice(0);
targetBox.ok_Btn.addEventListener(MouseEvent.CLICK, toGame);
createBubbles();
}
public function createBubbles():void{
var j:int;
var coords:Point = new Point(0, 0);
var b:Bubbles = new Bubbles(coords.x, coords.y, 8);
bubbleArray.push(b);
rotatingPlane.addChild(b);
var i = 1;
while (i < 5) {
j = 0;
while (j < (i * 6)) {
coords = newCoord(coords.x, coords.y, i, j);
b = new Bubbles(coords.x, coords.y, gameRandomValue(1, maxBubbleType));
bubbleArray.push(b);
rotatingPlane.addChild(b);
j++;
};
i++;
};
}
public function checkBurstEnd(e:Event):void{
if (e.currentTarget.bubblesClip.currentFrame == 5){
e.currentTarget.bubblesClip.gotoAndStop(5);
e.currentTarget.canRemove = true;
e.currentTarget.alpha = 0;
e.currentTarget.removeEventListener(Event.ENTER_FRAME, checkBurstEnd);
};
}
override protected function assignHelp(evnt:Event):void{
evnt.currentTarget.back_Btn.addEventListener(MouseEvent.CLICK, super.backBtnFn);
}
protected function forceLevelUp(evnth:MouseEvent):void{
gameEngine.changeState("LevelUp");
}
private function deleteFreeBalls(idents:Array=null):void{
var id:int;
var strength:Number;
var id1:int;
var point:Point;
if (idents == null){
id = (bubbleArray.length - 1);
while (id >= 0) {
bubbleArray[idents[id]].bubblesClip.gotoAndPlay(10);
bubbleArray[idents[id]].rotation = -(rotatingPlane.rotation);
bubbleArray[idents[id]].matched = true;
bubbleArray[id].addEventListener(Event.ENTER_FRAME, checkFreeEnd);
id++;
};
} else {
strength = idents.length;
idents.sort((16 | 2));
id1 = 0;
while (id1 < idents.length) {
point = rotatingPlane.localToGlobal(bubbleArray[idents[id1]].point);
currentLevelScore = ((currentLevelScore + (gameVars.level * 2)) + int((strength * 0.4)));
gameScoreText.update(String(currentLevelScore));
bubbleArray[idents[id1]].rotation = -(rotatingPlane.rotation);
bubbleArray[idents[id1]].matched = true;
bubbleArray[idents[id1]].bubblesClip.gotoAndPlay(10);
bubbleArray[idents[id1]].addEventListener(Event.ENTER_FRAME, checkFreeEnd);
id1++;
};
};
}
override protected function assignMenu(event:Event):void{
if (event.currentTarget.currentFrame == event.currentTarget.totalFrames){
event.currentTarget.stop();
event.currentTarget.menuScene.flower1.gotoAndStop(29);
event.currentTarget.menuScene.flower2.gotoAndStop(29);
event.currentTarget.menuScene.flower3.gotoAndStop(29);
event.currentTarget.menuScene.flower4.gotoAndStop(29);
event.currentTarget.menuScene.flower5.gotoAndStop(29);
event.currentTarget.menuScene.girl.bubbleTitle.gotoAndStop(24);
event.currentTarget.menuScene.girl.shootTitle.gotoAndStop(28);
event.currentTarget.sound_Mc.gotoAndStop(1);
event.currentTarget.sound_Mc.buttonMode = true;
event.currentTarget.play_Btn.addEventListener(MouseEvent.CLICK, gameStart);
event.currentTarget.help_Btn.addEventListener(MouseEvent.CLICK, gotoHelpPage);
event.currentTarget.sound_Mc.addEventListener(MouseEvent.CLICK, toggleGlobalSound);
event.currentTarget.more_Btn.addEventListener(MouseEvent.CLICK, gotoSite);
if (gameVars.mochiEnabled){
event.currentTarget.leaderboard_Btn.addEventListener(MouseEvent.CLICK, showHighScores);
};
event.currentTarget.sound_Mc.addEventListener(MouseEvent.ROLL_OVER, soundRollOver);
event.currentTarget.sound_Mc.addEventListener(MouseEvent.ROLL_OUT, soundRollOut);
event.target.removeEventListener(Event.ENTER_FRAME, assignMenu);
};
}
override protected function gamewinExit(evnt:Object):void{
super.gamewinExit(evnt);
}
protected function forceGameOver(evnth:MouseEvent):void{
gameSequence.changeState("GameOver");
}
override protected function levelUpExit(evnt:Object):void{
super.levelUpExit(evnt);
}
}
}//package
Section 165
//Game_Ball (Game_Ball)
package {
import mx.core.*;
import flash.display.*;
public class Game_Ball extends SpriteAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package
Section 166
//Game_BgClip (Game_BgClip)
package {
import mx.core.*;
import flash.display.*;
public class Game_BgClip extends SpriteAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package
Section 167
//Game_ButtonClick (Game_ButtonClick)
package {
import mx.core.*;
import flash.display.*;
public class Game_ButtonClick extends SoundAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package
Section 168
//Game_ButtonDownClip (Game_ButtonDownClip)
package {
import mx.core.*;
import flash.display.*;
public class Game_ButtonDownClip extends SpriteAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package
Section 169
//Game_ButtonOverClip (Game_ButtonOverClip)
package {
import mx.core.*;
import flash.display.*;
public class Game_ButtonOverClip extends SpriteAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var play_Btn:DisplayObject;
public var flower1:DisplayObject;
public var flower2:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var flower3:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package
Section 170
//Game_ButtonUpClip (Game_ButtonUpClip)
package {
import mx.core.*;
import flash.display.*;
public class Game_ButtonUpClip extends SpriteAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package
Section 171
//Game_ClickArea (Game_ClickArea)
package {
import mx.core.*;
import flash.display.*;
public class Game_ClickArea extends MovieClipAsset {
public var shootTitle:DisplayObject;
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower2:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var flower3:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package
Section 172
//Game_gameOverSound (Game_gameOverSound)
package {
import mx.core.*;
import flash.display.*;
public class Game_gameOverSound extends SoundAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package
Section 173
//Game_gameWonSound (Game_gameWonSound)
package {
import mx.core.*;
import flash.display.*;
public class Game_gameWonSound extends SoundAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package
Section 174
//Game_Gun (Game_Gun)
package {
import mx.core.*;
import flash.display.*;
public class Game_Gun extends MovieClipAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package
Section 175
//Game_GunSound (Game_GunSound)
package {
import mx.core.*;
import flash.display.*;
public class Game_GunSound extends SoundAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package
Section 176
//Game_largeBgClip (Game_largeBgClip)
package {
import mx.core.*;
import flash.display.*;
public class Game_largeBgClip extends SpriteAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package
Section 177
//Game_levelUpSound (Game_levelUpSound)
package {
import mx.core.*;
import flash.display.*;
public class Game_levelUpSound extends SoundAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package
Section 178
//Game_Removal (Game_Removal)
package {
import mx.core.*;
import flash.display.*;
public class Game_Removal extends SoundAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var play_Btn:DisplayObject;
public var flower1:DisplayObject;
public var flower2:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var flower3:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package
Section 179
//Game_TargetBox (Game_TargetBox)
package {
import mx.core.*;
import flash.display.*;
public class Game_TargetBox extends MovieClipAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var targetScore_txt:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package
Section 180
//Game_timerClip (Game_timerClip)
package {
import mx.core.*;
import flash.display.*;
public class Game_timerClip extends SpriteAsset {
public var menuScene:DisplayObject;
public var playAgain_Btn:DisplayObject;
public var levelUpScene:DisplayObject;
public var effect:DisplayObject;
public var girl:DisplayObject;
public var gameWonScene:DisplayObject;
public var bubbleTitle:DisplayObject;
public var gunClip:DisplayObject;
public var play_Btn:DisplayObject;
public var clickArea:DisplayObject;
public var flower1:DisplayObject;
public var flower3:DisplayObject;
public var flower4:DisplayObject;
public var flower5:DisplayObject;
public var flower2:DisplayObject;
public var help_Btn:DisplayObject;
public var gameOverScene:DisplayObject;
public var clip:DisplayObject;
public var more_Btn:DisplayObject;
public var boy:DisplayObject;
public var title:DisplayObject;
public var levelUpTitle:DisplayObject;
public var flower:DisplayObject;
public var menu_Btn:DisplayObject;
public var colorLevel:DisplayObject;
public var back_Btn:DisplayObject;
public var submitScore_Btn:DisplayObject;
public var ok_Btn:DisplayObject;
public var sound_Mc:DisplayObject;
public var drop:DisplayObject;
public var shootTitle:DisplayObject;
public var leaderboard_Btn:DisplayObject;
}
}//package
Section 181
//IntroCgs_mc (IntroCgs_mc)
package {
import flash.display.*;
public dynamic class IntroCgs_mc extends MovieClip {
}
}//package
Section 182
//IntroOIG_mc (IntroOIG_mc)
package {
import flash.display.*;
public dynamic class IntroOIG_mc extends MovieClip {
}
}//package
Section 183
//LogoCsharks (LogoCsharks)
package {
import flash.display.*;
public dynamic class LogoCsharks extends Sprite {
}
}//package
Section 184
//LogoOIG (LogoOIG)
package {
import flash.display.*;
public dynamic class LogoOIG extends Sprite {
}
}//package
Section 185
//ShareThis (ShareThis)
package {
import flash.display.*;
public dynamic class ShareThis extends SimpleButton {
}
}//package