Section 1
//ArcherSoldier (com.globalgamejam.Hats.ArcherSoldier)
package com.globalgamejam.Hats {
import flash.geom.*;
import org.flixel.*;
public class ArcherSoldier extends SmallSoldier {
protected const cooldown:Number = 3;
public var _arrow:FlxSprite;
private var _gibs:FlxEmitter;
private var Shot1:Class;
private var ImgSoldier:Class;
public static var ImgArrow:Class = ArcherSoldier_ImgArrow;
public function ArcherSoldier(xPos:int, yPos:int, ThePlayer:Player, TheWorld:FlxTilemap, Arrow:FlxSprite){
ImgSoldier = ArcherSoldier_ImgSoldier;
Shot1 = ArcherSoldier_Shot1;
super(xPos, yPos, ThePlayer, TheWorld);
loadGraphic(ImgSoldier, true, true, 16, 16);
_arrow = Arrow;
_timer = cooldown;
_leaves_remains = false;
_facing = LEFT;
width = 16;
height = 16;
offset.x = 1;
offset.y = 1;
addAnimation("idle", [0]);
addAnimation("shoot", [1, 2], 2);
}
override public function kill():void{
if (dead){
return;
};
exists = false;
dead = true;
}
public function shoot():void{
play("shoot");
FlxG.play(Shot1);
var _gibs:FlxEmitter = new FlxEmitter(0, 0, -0.6);
_gibs.setXVelocity(-30, 30);
_gibs.setYVelocity(-30, 30);
_gibs.gravity = -100;
_gibs.setRotation(-180, -180);
_gibs.createSprites(Player.ImgSmoke, 1);
FlxG.state.add(_gibs);
_gibs.x = (this.x + (width / 2));
_gibs.y = (this.y + (height / 4));
_gibs.restart();
_arrow.velocity.x = ((facing == RIGHT)) ? 100 : -100;
_arrow.exists = true;
_arrow.dead = false;
_arrow.x = this.x;
_arrow.y = this.y;
_arrow.facing = this.facing;
}
override public function update():void{
var _gibs:FlxEmitter;
var p:Point;
if (_blinded_timer > 0){
_blinded_timer = (_blinded_timer - (FlxG.elapsed / 2));
_gibs = new FlxEmitter(0, 0, -0.6);
_gibs.setXVelocity(-30, 30);
_gibs.setYVelocity(-30, 30);
_gibs.gravity = -100;
_gibs.setRotation(-180, -180);
_gibs.createSprites(Player.ImgSmoke, 1);
FlxG.state.add(_gibs);
_gibs.x = (this.x + (width / 2));
_gibs.y = (this.y + (height / 4));
_gibs.restart();
} else {
if (_timer <= 0){
play("idle");
if (_player.x > this.x){
facing = RIGHT;
} else {
facing = LEFT;
};
if ((((_player.y > (this.y - 32))) && ((_player.y < (this.y + 32))))){
p = new Point();
if (!_world.ray(this.x, this.y, _player.x, _player.y, p)){
shoot();
_timer = cooldown;
};
};
} else {
_timer = (_timer - FlxG.elapsed);
};
};
}
}
}//package com.globalgamejam.Hats
Section 2
//ArcherSoldier_ImgArrow (com.globalgamejam.Hats.ArcherSoldier_ImgArrow)
package com.globalgamejam.Hats {
import mx.core.*;
public class ArcherSoldier_ImgArrow extends BitmapAsset {
}
}//package com.globalgamejam.Hats
Section 3
//ArcherSoldier_ImgSoldier (com.globalgamejam.Hats.ArcherSoldier_ImgSoldier)
package com.globalgamejam.Hats {
import mx.core.*;
public class ArcherSoldier_ImgSoldier extends BitmapAsset {
}
}//package com.globalgamejam.Hats
Section 4
//ArcherSoldier_Shot1 (com.globalgamejam.Hats.ArcherSoldier_Shot1)
package com.globalgamejam.Hats {
import mx.core.*;
public class ArcherSoldier_Shot1 extends SoundAsset {
}
}//package com.globalgamejam.Hats
Section 5
//Boulder (com.globalgamejam.Hats.Boulder)
package com.globalgamejam.Hats {
import org.flixel.*;
public class Boulder extends FlxSprite {
protected const bounce:Number = 0.8;
private var SndBoulder:Class;
private var ImgBoulder:Class;
public function Boulder(x_pos:Number, y_pos:Number){
ImgBoulder = Boulder_ImgBoulder;
SndBoulder = Boulder_SndBoulder;
super();
x = x_pos;
y = y_pos;
loadGraphic(ImgBoulder, true);
velocity.y = 0;
velocity.x = 100;
acceleration.y = 420;
}
override public function hitFloor(Contact:FlxCore=null):Boolean{
if (velocity.y > 20){
FlxG.play(SndBoulder);
};
FlxG.quake((0.00015 * velocity.y), 0.6);
velocity.y = (velocity.y * -(bounce));
return (true);
}
override public function update():void{
if (((dead) && (finished))){
exists = false;
return;
};
angle = ((x * 2) % 360);
super.update();
}
override public function hitWall(Contact:FlxCore=null):Boolean{
velocity.x = 0;
return (true);
}
}
}//package com.globalgamejam.Hats
Section 6
//Boulder_ImgBoulder (com.globalgamejam.Hats.Boulder_ImgBoulder)
package com.globalgamejam.Hats {
import mx.core.*;
public class Boulder_ImgBoulder extends BitmapAsset {
}
}//package com.globalgamejam.Hats
Section 7
//Boulder_SndBoulder (com.globalgamejam.Hats.Boulder_SndBoulder)
package com.globalgamejam.Hats {
import mx.core.*;
public class Boulder_SndBoulder extends SoundAsset {
}
}//package com.globalgamejam.Hats
Section 8
//Bullet (com.globalgamejam.Hats.Bullet)
package com.globalgamejam.Hats {
import org.flixel.*;
public class Bullet extends FlxSprite {
private var SndHit:Class;
private var ImgBullet:Class;
private var SndShoot:Class;
public function Bullet(){
ImgBullet = Bullet_ImgBullet;
SndHit = Bullet_SndHit;
SndShoot = Bullet_SndShoot;
super();
loadGraphic(ImgBullet, true);
width = 6;
height = 6;
offset.x = 1;
offset.y = 1;
exists = false;
addAnimation("up", [0]);
addAnimation("down", [1]);
addAnimation("left", [2]);
addAnimation("right", [3]);
addAnimation("poof", [4, 5, 6, 7], 50, false);
}
override public function hitWall(Contact:FlxCore=null):Boolean{
hurt(0);
return (true);
}
override public function update():void{
if (((dead) && (finished))){
exists = false;
} else {
super.update();
};
}
override public function hurt(Damage:Number):void{
if (dead){
return;
};
velocity.x = 0;
velocity.y = 0;
if (onScreen()){
FlxG.play(SndHit);
};
dead = true;
play("poof");
}
override public function hitCeiling(Contact:FlxCore=null):Boolean{
hurt(0);
return (true);
}
override public function hitFloor(Contact:FlxCore=null):Boolean{
hurt(0);
return (true);
}
override public function render():void{
super.render();
}
public function shoot(X:int, Y:int, VelocityX:int, VelocityY:int):void{
FlxG.play(SndShoot);
super.reset(X, Y);
velocity.x = VelocityX;
velocity.y = VelocityY;
if (velocity.y < 0){
play("up");
} else {
if (velocity.y > 0){
play("down");
} else {
if (velocity.x < 0){
play("left");
} else {
if (velocity.x > 0){
play("right");
};
};
};
};
}
}
}//package com.globalgamejam.Hats
Section 9
//Bullet_ImgBullet (com.globalgamejam.Hats.Bullet_ImgBullet)
package com.globalgamejam.Hats {
import mx.core.*;
public class Bullet_ImgBullet extends BitmapAsset {
}
}//package com.globalgamejam.Hats
Section 10
//Bullet_SndHit (com.globalgamejam.Hats.Bullet_SndHit)
package com.globalgamejam.Hats {
import mx.core.*;
public class Bullet_SndHit extends SoundAsset {
}
}//package com.globalgamejam.Hats
Section 11
//Bullet_SndShoot (com.globalgamejam.Hats.Bullet_SndShoot)
package com.globalgamejam.Hats {
import mx.core.*;
public class Bullet_SndShoot extends SoundAsset {
}
}//package com.globalgamejam.Hats
Section 12
//DeadLargeSoldier (com.globalgamejam.Hats.DeadLargeSoldier)
package com.globalgamejam.Hats {
import org.flixel.*;
public class DeadLargeSoldier extends FlxSprite {
private var ImgBlock:Class;
private var player_ref:Player;
public static const _fall_rate:Number = 1.5;
public function DeadLargeSoldier(x_pos:Number, y_pos:Number, _player:Player){
ImgBlock = DeadLargeSoldier_ImgBlock;
super(x_pos, (y_pos + 24));
player_ref = _player;
loadGraphic(ImgBlock, true, true, 48, 15);
height = 2;
FlxG.state.add(this);
fixed = true;
}
override public function collide(Core:FlxCore):Boolean{
if (super.collide(Core)){
y = (y + (_fall_rate * FlxG.elapsed));
return (true);
};
return (false);
}
}
}//package com.globalgamejam.Hats
Section 13
//DeadLargeSoldier_ImgBlock (com.globalgamejam.Hats.DeadLargeSoldier_ImgBlock)
package com.globalgamejam.Hats {
import mx.core.*;
public class DeadLargeSoldier_ImgBlock extends BitmapAsset {
}
}//package com.globalgamejam.Hats
Section 14
//Hat (com.globalgamejam.Hats.Hat)
package com.globalgamejam.Hats {
import org.flixel.*;
public class Hat extends FlxSprite {
protected var _player:Player;
protected var timer:Number;
public var whatami:String;
public static const SPRING_HAT:String = "SPRING_HAT";
public static const BUNNY_HAT:String = "BUNNY_HAT";
public static const SMOKE_HAT:String = "SMOKE_HAT";
public static const NULL_HAT:String = "NULL_HAT";
public static const SOUND_HAT:String = "SOUND_HAT";
public static const CAMO_HAT:String = "CAMO_HAT";
public static var ImgCamo:Class = Hat_ImgCamo;
public static var ImgBunny:Class = Hat_ImgBunny;
public static var ImgSmoke:Class = Hat_ImgSmoke;
public static var ImgSpring:Class = Hat_ImgSpring;
public static var ImgNoise:Class = Hat_ImgNoise;
public function Hat(WhichHat:String, PlayerRef:Player=null, for_gui:Boolean=false){
super();
_player = PlayerRef;
timer = 0;
if (WhichHat == CAMO_HAT){
loadGraphic(ImgCamo, true, true, 28, 23);
addAnimation("idle", [0]);
addAnimation("move", [1, 0], 6);
} else {
if (WhichHat == BUNNY_HAT){
loadGraphic(ImgBunny, true, true, 28, 23);
addAnimation("idle", [0]);
addAnimation("move", [1, 0], 12);
} else {
if (WhichHat == SPRING_HAT){
loadGraphic(ImgSpring, true, true, 28, 23);
addAnimation("idle", [0]);
addAnimation("move", [1, 0], 6);
} else {
if (WhichHat == SMOKE_HAT){
loadGraphic(ImgSmoke, true, true, 28, 23);
addAnimation("idle", [0]);
addAnimation("move", [1, 0], 6);
} else {
if (WhichHat == SOUND_HAT){
loadGraphic(ImgNoise, true, true, 28, 23);
addAnimation("idle", [0]);
addAnimation("move", [1, 0], 6);
} else {
createGraphic(23, 23);
};
};
};
};
};
whatami = WhichHat;
if (!for_gui){
FlxG.state.add(this);
};
}
public function animate():void{
play("move");
}
public function stop():void{
play("idle");
}
override public function update():void{
var _gibs:FlxEmitter;
if (whatami == SMOKE_HAT){
timer = (timer + FlxG.elapsed);
if (timer >= 0.1){
timer = 0;
_gibs = new FlxEmitter(0, 0, -1.5);
_gibs.setXVelocity(-10, 10);
_gibs.setYVelocity(-50, -10);
_gibs.gravity = -100;
_gibs.setRotation(-180, -180);
_gibs.alpha = 0.5;
_gibs.createSprites(Player.ImgSmoke, 1);
FlxG.state.add(_gibs);
_gibs.x = (this.x + (width / 2));
_gibs.y = (this.y + (height / 2));
_gibs.restart();
};
};
if (_player != null){
this.x = ((_player.x - 8) + ((facing == RIGHT)) ? 1 : 0);
this.y = (((_player.y - (_player.height / 2)) + (this.height / 2)) - 11);
this.facing = _player.facing;
};
super.update();
}
public function run():void{
if (whatami == CAMO_HAT){
_player.go_invisible();
} else {
if (whatami == BUNNY_HAT){
_player.please_jump();
} else {
if (whatami == SPRING_HAT){
_player.please_jump_high();
} else {
if (whatami == SOUND_HAT){
_player.please_shoot_sound();
} else {
if (whatami == SMOKE_HAT){
_player.please_shoot_smoke();
};
};
};
};
};
}
public function isa(hat_type:Object):Boolean{
return ((this.whatami == hat_type));
}
}
}//package com.globalgamejam.Hats
Section 15
//Hat_ImgBunny (com.globalgamejam.Hats.Hat_ImgBunny)
package com.globalgamejam.Hats {
import mx.core.*;
public class Hat_ImgBunny extends BitmapAsset {
}
}//package com.globalgamejam.Hats
Section 16
//Hat_ImgCamo (com.globalgamejam.Hats.Hat_ImgCamo)
package com.globalgamejam.Hats {
import mx.core.*;
public class Hat_ImgCamo extends BitmapAsset {
}
}//package com.globalgamejam.Hats
Section 17
//Hat_ImgNoise (com.globalgamejam.Hats.Hat_ImgNoise)
package com.globalgamejam.Hats {
import mx.core.*;
public class Hat_ImgNoise extends BitmapAsset {
}
}//package com.globalgamejam.Hats
Section 18
//Hat_ImgSmoke (com.globalgamejam.Hats.Hat_ImgSmoke)
package com.globalgamejam.Hats {
import mx.core.*;
public class Hat_ImgSmoke extends BitmapAsset {
}
}//package com.globalgamejam.Hats
Section 19
//Hat_ImgSpring (com.globalgamejam.Hats.Hat_ImgSpring)
package com.globalgamejam.Hats {
import mx.core.*;
public class Hat_ImgSpring extends BitmapAsset {
}
}//package com.globalgamejam.Hats
Section 20
//HatBar (com.globalgamejam.Hats.HatBar)
package com.globalgamejam.Hats {
import org.flixel.*;
public class HatBar extends FlxSprite {
protected var _player:Player;
public var hats:Array;
public function HatBar(ThePlayer:Player){
super();
x = 0;
y = 12;
_player = ThePlayer;
createGraphic(320, 8, 1148680055);
scrollFactor.x = 0;
scrollFactor.y = 0;
hats = new Array();
}
public function show_hats(new_hats:Array):void{
var _hat:String;
var found_one:Boolean;
var __hat:Hat;
var gui_hat:Hat;
for each (_hat in new_hats) {
found_one = false;
for each (__hat in hats) {
if (__hat.isa(_hat)){
found_one = true;
break;
};
};
if (found_one == false){
gui_hat = new Hat(_hat);
gui_hat.scrollFactor.x = 0;
gui_hat.scrollFactor.y = 0;
gui_hat.y = 0;
gui_hat.x = ((hats.length * 24) + 8);
hats.push(gui_hat);
};
};
}
public function chose_hat(num:Number):void{
var _hat:Hat;
if ((((num < 0)) || ((num >= hats.length)))){
return;
};
for each (_hat in hats) {
_hat.scale.x = (_hat.scale.y = 0.6);
};
hats[num].scale.x = (hats[num].scale.y = 1);
}
public function add_view():void{
var _hat:Hat;
FlxG.state.add(this);
for each (_hat in hats) {
FlxG.state.add(_hat);
};
}
}
}//package com.globalgamejam.Hats
Section 21
//LargeSoldier (com.globalgamejam.Hats.LargeSoldier)
package com.globalgamejam.Hats {
import org.flixel.*;
public class LargeSoldier extends SmallSoldier {
private var Hurt1:Class;
private var Hurt2:Class;
private var _gibs:FlxEmitter;
private var Hurt3:Class;
private var ImgGibs:Class;
private var ImgSoldier:Class;
public function LargeSoldier(xPos:int, yPos:int, ThePlayer:Player, TheWorld:FlxTilemap){
ImgSoldier = LargeSoldier_ImgSoldier;
ImgGibs = LargeSoldier_ImgGibs;
Hurt1 = LargeSoldier_Hurt1;
Hurt2 = LargeSoldier_Hurt2;
Hurt3 = LargeSoldier_Hurt3;
super(xPos, yPos, ThePlayer, TheWorld);
loadGraphic(ImgSoldier, true, true, 32, 48);
_leaves_remains = true;
_facing = RIGHT;
width = 24;
height = 40;
offset.x = 5;
offset.y = 8;
acceleration.y = 420;
slow_speed = 16;
fast_speed = 64;
_run_speed = slow_speed;
drag.x = 120;
drag.y = 80;
maxVelocity.x = slow_speed;
_feeler = new FlxSprite();
addAnimation("idle", [0]);
addAnimation("walking", [1, 2, 3, 0], 8, true);
addAnimation("angry", [4, 5, 6, 7], 18, true);
reset(x, y);
}
override public function kill():void{
if (dead){
return;
};
make_snd();
_gibs = new FlxEmitter(0, 0, -2.5);
_gibs.setXVelocity(-150, 150);
_gibs.setYVelocity(-300, 0);
_gibs.setRotation(-320, -320);
_gibs.createSprites(ImgGibs, 80);
FlxG.state.add(_gibs);
_gibs.x = (this.x + (width / 2));
_gibs.y = (this.y + (height / 2));
_gibs.restart();
exists = false;
dead = true;
}
override public function blind():void{
super.blind();
make_snd();
}
private function make_snd():void{
var rand:Number = FlxG.random();
if (rand < 0.33){
FlxG.play(Hurt1);
} else {
if (rand < 0.66){
FlxG.play(Hurt2);
} else {
FlxG.play(Hurt3);
};
};
}
}
}//package com.globalgamejam.Hats
Section 22
//LargeSoldier_Hurt1 (com.globalgamejam.Hats.LargeSoldier_Hurt1)
package com.globalgamejam.Hats {
import mx.core.*;
public class LargeSoldier_Hurt1 extends SoundAsset {
}
}//package com.globalgamejam.Hats
Section 23
//LargeSoldier_Hurt2 (com.globalgamejam.Hats.LargeSoldier_Hurt2)
package com.globalgamejam.Hats {
import mx.core.*;
public class LargeSoldier_Hurt2 extends SoundAsset {
}
}//package com.globalgamejam.Hats
Section 24
//LargeSoldier_Hurt3 (com.globalgamejam.Hats.LargeSoldier_Hurt3)
package com.globalgamejam.Hats {
import mx.core.*;
public class LargeSoldier_Hurt3 extends SoundAsset {
}
}//package com.globalgamejam.Hats
Section 25
//LargeSoldier_ImgGibs (com.globalgamejam.Hats.LargeSoldier_ImgGibs)
package com.globalgamejam.Hats {
import mx.core.*;
public class LargeSoldier_ImgGibs extends BitmapAsset {
}
}//package com.globalgamejam.Hats
Section 26
//LargeSoldier_ImgSoldier (com.globalgamejam.Hats.LargeSoldier_ImgSoldier)
package com.globalgamejam.Hats {
import mx.core.*;
public class LargeSoldier_ImgSoldier extends BitmapAsset {
}
}//package com.globalgamejam.Hats
Section 27
//MenuState (com.globalgamejam.Hats.MenuState)
package com.globalgamejam.Hats {
import org.flixel.*;
public class MenuState extends FlxState {
private var _b:FlxButton;
private var _e:FlxEmitter;
private var SndHit2:Class;
private var SndHit:Class;
private var _ok2:Boolean;
private var ImgCursor:Class;
private var _ok:Boolean;
private var _t1:FlxText;
private var _t2:FlxText;
public static var ImgHats:Class = MenuState_ImgHats;
public function MenuState():void{
var i:uint;
var s:FlxSprite;
ImgCursor = MenuState_ImgCursor;
SndHit = MenuState_SndHit;
SndHit2 = MenuState_SndHit2;
super();
_e = new FlxEmitter(((FlxG.width / 2) - 50), ((FlxG.height / 2) - 10), -10);
_e.setSize(100, 30);
_e.setYVelocity(-2000, -100);
_e.setRotation(-360, 360);
_e.createSprites(ImgHats, 100);
add(_e);
_t1 = new FlxText(FlxG.width, (FlxG.height / 3), 80, "ha");
_t1.size = 32;
_t1.color = 0xFFFFFF;
_t1.antialiasing = true;
add(_t1);
_t2 = new FlxText(-60, (FlxG.height / 3), 80, "ts");
_t2.size = _t1.size;
_t2.color = _t1.color;
_t2.antialiasing = _t1.antialiasing;
add(_t2);
_ok = false;
_ok2 = false;
FlxG.showCursor(ImgCursor);
var save:FlxSave = new FlxSave();
if (save.bind("Mode")){
if (save.data.plays == null){
save.data.plays = 0;
} else {
save.data.plays++;
};
FlxG.log(("Number of plays: " + save.data.plays));
};
}
private function onFade():void{
FlxG.switchState(PlayStateTiles);
}
private function onFlixel():void{
FlxG.openURL("http://flixel.org");
}
override public function update():void{
var t1m:uint;
var t1:FlxText;
var t2:FlxText;
var b:FlxButton;
t1m = ((FlxG.width / 2) - 40);
if (_t1.x > t1m){
_t1.x = (_t1.x - (FlxG.elapsed * FlxG.width));
if (_t1.x < t1m){
_t1.x = t1m;
};
};
var t2m:uint = ((FlxG.width / 2) + 10);
if (_t2.x < t2m){
_t2.x = (_t2.x + (FlxG.elapsed * FlxG.width));
if (_t2.x > t2m){
_t2.x = t2m;
};
};
if (((!(_ok)) && ((((_t1.x == t1m)) || ((_t2.x == t2m)))))){
_ok = true;
FlxG.play(SndHit);
FlxG.flash(4294967295, 0.5);
FlxG.quake(0.035, 0.5);
_t1.color = 0xBBBBBB;
_t2.color = 0xBBBBBB;
_e.restart();
_t1.angle = 0;
_t2.angle = 0;
t1 = new FlxText(0, ((FlxG.height / 3) + 39), 320, "by Adam, ChrisA, ChrisB, Tom, and Sarah");
t1.alignment = "center";
t1.color = 9187242;
add(t1);
this.add(new FlxSprite(104, ((FlxG.height / 3) + 53)).createGraphic(126, 19, 2013265919));
b = new FlxButton((t1m - 10), ((FlxG.height / 3) + 54), onFlixel);
b.loadGraphic(new FlxSprite().createGraphic(114, 15, 2013265919), new FlxSprite().createGraphic(114, 15, 4278190080));
t1 = new FlxText(2, 1, 130, "special thanks to flixel");
t1.color = 2013265919;
t2 = new FlxText(t1.x, t1.y, t1.width, t1.text);
t2.color = 2013265919;
b.loadText(t1, t2);
add(b);
this.add(new FlxSprite((t1m + 1), ((FlxG.height / 3) + 137)).createGraphic(86, 19, 2013265919));
_b = new FlxButton((t1m + 2), ((FlxG.height / 3) + 138), onButton);
_b.loadGraphic(new FlxSprite().createGraphic(84, 15, 4294967295), new FlxSprite().createGraphic(84, 15, 4278190080));
t1 = new FlxText(25, 1, 100, "Play");
t1.color = 1996488704;
t2 = new FlxText(t1.x, t1.y, t1.width, t1.text);
t2.color = 2013265919;
_b.loadText(t1, t2);
add(_b);
};
if (((((((_ok) && (!(_ok2)))) && (FlxG.keys.X))) && (FlxG.keys.C))){
_ok2 = true;
FlxG.play(SndHit2);
FlxG.flash(4292406178, 0.5);
FlxG.fade(4279442459, 1, onFade);
};
super.update();
}
private function onButton():void{
FlxG.play(SndHit2);
FlxG.fade(4279442459, 1, onFade);
}
}
}//package com.globalgamejam.Hats
Section 28
//MenuState_ImgCursor (com.globalgamejam.Hats.MenuState_ImgCursor)
package com.globalgamejam.Hats {
import mx.core.*;
public class MenuState_ImgCursor extends BitmapAsset {
}
}//package com.globalgamejam.Hats
Section 29
//MenuState_ImgHats (com.globalgamejam.Hats.MenuState_ImgHats)
package com.globalgamejam.Hats {
import mx.core.*;
public class MenuState_ImgHats extends BitmapAsset {
}
}//package com.globalgamejam.Hats
Section 30
//MenuState_SndHit (com.globalgamejam.Hats.MenuState_SndHit)
package com.globalgamejam.Hats {
import mx.core.*;
public class MenuState_SndHit extends SoundAsset {
}
}//package com.globalgamejam.Hats
Section 31
//MenuState_SndHit2 (com.globalgamejam.Hats.MenuState_SndHit2)
package com.globalgamejam.Hats {
import mx.core.*;
public class MenuState_SndHit2 extends SoundAsset {
}
}//package com.globalgamejam.Hats
Section 32
//Player (com.globalgamejam.Hats.Player)
package com.globalgamejam.Hats {
import org.flixel.*;
public class Player extends FlxSprite {
private const runSpeed:uint = 80;
private var _down:Boolean;
public var _on_floor:Boolean;
private var _smoke_bomb:SmokeBomb;
public var _gibs:FlxEmitter;
private var SndJump:Class;
private var Cloak:Class;
public var _invisible:Boolean;
public var _hat_bar:HatBar;
private var _bulletVel:int;
private var _up:Boolean;
public var _hats_avail:Array;
private var SndLand:Class;
private var SndExplode:Class;
public var _cur_hat:String;
public var _hat:Hat;
public var _shoot_timer:Number;
private var SmokeShot:Class;
private var SndShot:Class;
private var _sound_bomb:SoundBomb;
private var _curBullet:uint;
private var ImgGibs:Class;
private var _bullets:Array;
private var SndSwitchHat:Class;
private var _jumpPower:int;
public static var ImgSmoke:Class = Player_ImgSmoke;
public static var ImgSpaceman:Class = Player_ImgSpaceman;
public function Player(X:int, Y:int, Smoke:SmokeBomb, Sound:SoundBomb, Hats:Array=null){
ImgGibs = Player_ImgGibs;
SndJump = Player_SndJump;
SndLand = Player_SndLand;
SndExplode = Player_SndExplode;
SndShot = Player_SndShot;
SmokeShot = Player_SmokeShot;
Cloak = Player_Cloak;
SndSwitchHat = Player_SndSwitchHat;
super(X, Y);
loadGraphic(ImgSpaceman, true, true, 16, 32);
_sound_bomb = Sound;
_smoke_bomb = Smoke;
if (Hats != null){
_hats_avail = Hats;
} else {
_hats_avail = new Array(Hat.CAMO_HAT, Hat.SPRING_HAT, Hat.BUNNY_HAT, Hat.SMOKE_HAT, Hat.SOUND_HAT);
};
_cur_hat = _hats_avail[0];
_hat = new Hat(_cur_hat, this);
_hat_bar = new HatBar(this);
_hat_bar.show_hats(_hats_avail);
_invisible = false;
_shoot_timer = 0;
width = 13;
height = 31;
offset.x = 2;
offset.y = 1;
drag.x = (runSpeed * 16);
acceleration.y = 420;
_jumpPower = 185;
maxVelocity.x = runSpeed;
maxVelocity.y = 300;
_on_floor = false;
addAnimation("idle", [0]);
addAnimation("run", [1, 2, 3, 0], 12);
addAnimation("jump", [4]);
addAnimation("victory", [5]);
_set_hat(0);
}
public function please_jump_high():void{
if ((((velocity.y == 0)) && (_on_floor))){
FlxG.play(SndJump);
velocity.y = (velocity.y - 300);
_on_floor = false;
};
}
public function _set_hat(num:Number=-1):void{
if (num <= -1){
num = ((_hats_avail.indexOf(_cur_hat) + 1) % _hats_avail.length);
};
if (num > _hats_avail.length){
return;
};
_cur_hat = _hats_avail[num];
_hat.kill();
_hat.destroy();
_hat = new Hat(_cur_hat, this);
_hat_bar.chose_hat(num);
}
public function change_hat(num:Number=-1):void{
_set_hat(num);
FlxG.play(SndSwitchHat);
}
private function placeHat():void{
}
public function please_shoot_sound():void{
if (_shoot_timer <= 0){
_sound_bomb.shoot(x, y, ((facing == RIGHT)) ? 200 : -200);
_shoot_timer = 1;
FlxG.play(SndShot);
};
}
public function go_visible():void{
_invisible = false;
this.alpha = 1;
_gibs = new FlxEmitter(0, 0, -1.5);
_gibs.setXVelocity(-20, 20);
_gibs.setYVelocity(30, 5);
_gibs.gravity = -100;
_gibs.setRotation(-180, -180);
_gibs.createSprites(ImgSmoke, 9);
FlxG.state.add(_gibs);
_gibs.x = (this.x + (width / 2));
_gibs.y = (this.y + (height / 2));
_gibs.restart();
}
public function add_gui():void{
_hat_bar.add_view();
}
public function go_invisible():void{
if (velocity.y != 0){
return;
};
if (_invisible == true){
return;
};
FlxG.play(Cloak);
velocity.x = 0;
acceleration.x = 0;
_invisible = true;
this.alpha = 0.2;
_gibs = new FlxEmitter(0, 0, -1.5);
_gibs.setXVelocity(-20, 20);
_gibs.setYVelocity(30, 5);
_gibs.gravity = -100;
_gibs.setRotation(-180, -180);
_gibs.createSprites(ImgSmoke, 9);
FlxG.state.add(_gibs);
_gibs.x = (this.x + (width / 2));
_gibs.y = (this.y + (height / 2));
_gibs.restart();
}
override public function hitFloor(Contact:FlxCore=null):Boolean{
if (velocity.y > 150){
FlxG.play(SndLand);
};
_on_floor = true;
return (super.hitFloor());
}
override public function update():void{
if (dead){
return;
};
if (_shoot_timer > 0){
_shoot_timer = (_shoot_timer - FlxG.elapsed);
};
acceleration.x = 0;
if (((((FlxG.keys.justPressed("LEFT")) || (FlxG.keys.justPressed("RIGHT")))) && (_invisible))){
go_visible();
};
if (((FlxG.keys.LEFT) && (!(_invisible)))){
facing = LEFT;
acceleration.x = (acceleration.x - drag.x);
} else {
if (((FlxG.keys.RIGHT) && (!(_invisible)))){
facing = RIGHT;
acceleration.x = (acceleration.x + drag.x);
};
};
if ((((((_cur_hat == Hat.CAMO_HAT)) && ((velocity.x == 0)))) && ((velocity.y == 0)))){
} else {
if (this.alpha != 1){
go_visible();
};
};
if (((FlxG.keys.justPressed("X")) || (FlxG.keys.justPressed("UP")))){
if (_cur_hat == Hat.SPRING_HAT){
please_jump_high();
} else {
please_jump();
};
};
if (((((FlxG.keys.pressed("C")) || (FlxG.keys.pressed("DOWN")))) && (!((velocity.y == 0))))){
if (_cur_hat == Hat.BUNNY_HAT){
velocity.x = ((runSpeed * 3) * ((facing == RIGHT)) ? 1 : -1);
};
};
if (((FlxG.keys.justPressed("ONE")) || (FlxG.keys.justPressed("A")))){
change_hat(0);
};
if (((FlxG.keys.justPressed("TWO")) || (FlxG.keys.justPressed("S")))){
change_hat(1);
};
if (((FlxG.keys.justPressed("THREE")) || (FlxG.keys.justPressed("D")))){
change_hat(2);
};
if (((FlxG.keys.justPressed("FOUR")) || (FlxG.keys.justPressed("F")))){
change_hat(3);
};
if (((FlxG.keys.justPressed("FIVE")) || (FlxG.keys.justPressed("G")))){
change_hat(4);
};
if (velocity.y != 0){
play("jump");
} else {
if (velocity.x == 0){
play("idle");
_hat.stop();
} else {
play("run");
_hat.animate();
};
};
if (_cur_hat == Hat.BUNNY_HAT){
maxVelocity.x = (runSpeed * 3);
} else {
maxVelocity.x = runSpeed;
};
if (((FlxG.keys.pressed("C")) || (FlxG.keys.pressed("DOWN")))){
_hat.run();
};
super.update();
}
override public function kill():void{
if (dead){
return;
};
super.kill();
FlxG.play(SndExplode);
_hat.kill();
_hat.destroy();
_gibs = new FlxEmitter(0, 0, -1.5);
_gibs.setXVelocity(-150, 150);
_gibs.setYVelocity(-200, 0);
_gibs.setRotation(-720, -720);
_gibs.createSprites(ImgGibs, 50);
FlxG.state.add(_gibs);
_gibs.x = (this.x + (width / 2));
_gibs.y = (this.y + (height / 2));
_gibs.restart();
flicker(-1);
exists = true;
visible = false;
FlxG.quake(0.005, 0.35);
FlxG.flash(4286019583, 0.35);
}
public function please_shoot_smoke():void{
if (_shoot_timer <= 0){
_smoke_bomb.shoot(x, y, ((facing == RIGHT)) ? 400 : -400);
_shoot_timer = 1;
FlxG.play(SmokeShot);
};
}
public function please_jump():void{
if ((((velocity.y == 0)) && (_on_floor))){
FlxG.play(SndJump);
velocity.y = (velocity.y - _jumpPower);
_on_floor = false;
};
}
}
}//package com.globalgamejam.Hats
Section 33
//Player_Cloak (com.globalgamejam.Hats.Player_Cloak)
package com.globalgamejam.Hats {
import mx.core.*;
public class Player_Cloak extends SoundAsset {
}
}//package com.globalgamejam.Hats
Section 34
//Player_ImgGibs (com.globalgamejam.Hats.Player_ImgGibs)
package com.globalgamejam.Hats {
import mx.core.*;
public class Player_ImgGibs extends BitmapAsset {
}
}//package com.globalgamejam.Hats
Section 35
//Player_ImgSmoke (com.globalgamejam.Hats.Player_ImgSmoke)
package com.globalgamejam.Hats {
import mx.core.*;
public class Player_ImgSmoke extends BitmapAsset {
}
}//package com.globalgamejam.Hats
Section 36
//Player_ImgSpaceman (com.globalgamejam.Hats.Player_ImgSpaceman)
package com.globalgamejam.Hats {
import mx.core.*;
public class Player_ImgSpaceman extends BitmapAsset {
}
}//package com.globalgamejam.Hats
Section 37
//Player_SmokeShot (com.globalgamejam.Hats.Player_SmokeShot)
package com.globalgamejam.Hats {
import mx.core.*;
public class Player_SmokeShot extends SoundAsset {
}
}//package com.globalgamejam.Hats
Section 38
//Player_SndExplode (com.globalgamejam.Hats.Player_SndExplode)
package com.globalgamejam.Hats {
import mx.core.*;
public class Player_SndExplode extends SoundAsset {
}
}//package com.globalgamejam.Hats
Section 39
//Player_SndJump (com.globalgamejam.Hats.Player_SndJump)
package com.globalgamejam.Hats {
import mx.core.*;
public class Player_SndJump extends SoundAsset {
}
}//package com.globalgamejam.Hats
Section 40
//Player_SndLand (com.globalgamejam.Hats.Player_SndLand)
package com.globalgamejam.Hats {
import mx.core.*;
public class Player_SndLand extends SoundAsset {
}
}//package com.globalgamejam.Hats
Section 41
//Player_SndShot (com.globalgamejam.Hats.Player_SndShot)
package com.globalgamejam.Hats {
import mx.core.*;
public class Player_SndShot extends SoundAsset {
}
}//package com.globalgamejam.Hats
Section 42
//Player_SndSwitchHat (com.globalgamejam.Hats.Player_SndSwitchHat)
package com.globalgamejam.Hats {
import mx.core.*;
public class Player_SndSwitchHat extends SoundAsset {
}
}//package com.globalgamejam.Hats
Section 43
//PlayStateTiles (com.globalgamejam.Hats.PlayStateTiles)
package com.globalgamejam.Hats {
import org.flixel.*;
public class PlayStateTiles extends FlxState {
private var _player:Player;
private var _dead_blocks:Array;
private var SndVictory:Class;
private var TxtMap10:Class;
private var SndMode:Class;
private var TxtMap12:Class;
private var _smoke_bomb:SmokeBomb;
private var TxtMap11:Class;
private var TxtMap13:Class;
private var _sm_arrows:Array;
private var ImgTiles:Class;
private var _finish_door:FlxSprite;
private var _boulder:Boulder;
private var _tilemap:FlxTilemap;
private var _sm_soldiers:Array;
private var TxtMap2:Class;
private var TxtMap3:Class;
private var TxtMap4:Class;
private var TxtMap5:Class;
private var TxtMap6:Class;
private var TxtMap7:Class;
private var TxtMap8:Class;
private var TxtMap9:Class;
private var _restart:Number;
private var _spikes:Array;
private var _cur_level:Number;
private var _backmap:FlxTilemap;
private var TxtMap:Class;
private var _sound_bomb:SoundBomb;
private var _bullets:Array;
private var themeSong:Class;
public function PlayStateTiles():void{
SndMode = PlayStateTiles_SndMode;
TxtMap = PlayStateTiles_TxtMap;
TxtMap2 = PlayStateTiles_TxtMap2;
TxtMap3 = PlayStateTiles_TxtMap3;
TxtMap4 = PlayStateTiles_TxtMap4;
TxtMap5 = PlayStateTiles_TxtMap5;
TxtMap6 = PlayStateTiles_TxtMap6;
TxtMap7 = PlayStateTiles_TxtMap7;
TxtMap8 = PlayStateTiles_TxtMap8;
TxtMap9 = PlayStateTiles_TxtMap9;
TxtMap10 = PlayStateTiles_TxtMap10;
TxtMap11 = PlayStateTiles_TxtMap11;
TxtMap12 = PlayStateTiles_TxtMap12;
TxtMap13 = PlayStateTiles_TxtMap13;
themeSong = PlayStateTiles_themeSong;
SndVictory = PlayStateTiles_SndVictory;
ImgTiles = PlayStateTiles_ImgTiles;
super();
_restart = 0;
_spikes = new Array();
_bullets = new Array();
_sm_soldiers = new Array();
_sm_arrows = new Array();
_dead_blocks = new Array();
_player = new Player(0, 0, _smoke_bomb, _sound_bomb);
var i:uint;
while (i < 8) {
_bullets.push(new Bullet());
i++;
};
_finish_door = new FlxSprite(0, 0);
_finish_door.alpha = 0;
_finish_door.width = 1;
_finish_door.height = 1;
_cur_level = 0;
_boulder = new Boulder(0, 0);
_boulder.kill();
_sound_bomb = new SoundBomb();
_smoke_bomb = new SmokeBomb();
FlxG.follow(_player, 2.5);
FlxG.followAdjust(0.5, 0);
changeLevel(_cur_level);
var s:FlxSound = FlxG.play(themeSong, 1, true);
s.play();
}
private function changeLevel(Level:int):void{
var MapData:String;
var tile:uint;
var x_pos:int;
var y_pos:int;
var spike:FlxSprite;
var _local14:FlxSprite;
var _t1:FlxText;
killObjects();
_tilemap = new FlxTilemap();
_backmap = new FlxTilemap();
_tilemap.collideIndex = 9;
if (Level == 0){
MapData = new TxtMap();
} else {
if (Level == 1){
MapData = new TxtMap2();
} else {
if (Level == 2){
MapData = new TxtMap3();
} else {
if (Level == 3){
MapData = new TxtMap4();
_boulder = new Boulder(64, 128);
this.add(_boulder);
} else {
if (Level == 4){
MapData = new TxtMap5();
} else {
if (Level == 5){
MapData = new TxtMap6();
} else {
if (Level == 6){
MapData = new TxtMap7();
} else {
if (Level == 7){
MapData = new TxtMap8();
} else {
if (Level == 8){
MapData = new TxtMap9();
} else {
if (Level == 9){
MapData = new TxtMap10();
} else {
if (Level == 10){
MapData = new TxtMap11();
} else {
if (Level == 11){
MapData = new TxtMap12();
} else {
if (Level == 12){
MapData = new TxtMap13();
} else {
FlxG.switchState(VictoryState);
return;
};
};
};
};
};
};
};
};
};
};
};
};
};
_tilemap.loadMap(MapData, ImgTiles, 16);
_backmap.loadMap(MapData, ImgTiles, 16);
var player_spawn_x = -1;
var player_spawn_y = -1;
var i:uint;
while (i < _tilemap.totalTiles) {
tile = _tilemap.getTileByIndex(i);
x_pos = ((i % _tilemap.widthInTiles) * 16);
y_pos = (Math.floor((i / _tilemap.widthInTiles)) * 16);
if ((((tile >= 16)) && ((tile <= 18)))){
spike = new FlxSprite(x_pos, (y_pos + 8));
spike.createGraphic(16, 16);
_tilemap.setTileByIndex(i, 0);
_spikes.push(spike);
} else {
if ((((tile > 18)) && ((tile <= 25)))){
switch (tile){
case 19:
_sm_soldiers.push(new SmallSoldier(x_pos, (y_pos - 16), _player, _tilemap));
break;
case 20:
_sm_soldiers.push(new LargeSoldier(x_pos, (y_pos - 32), _player, _tilemap));
break;
case 21:
_local14 = new FlxSprite(0, 0);
_local14.loadGraphic(ArcherSoldier.ImgArrow, false, true);
_local14.kill();
_sm_arrows.push(_local14);
_sm_soldiers.push(new ArcherSoldier(x_pos, y_pos, _player, _tilemap, _local14));
break;
case 22:
break;
case 23:
player_spawn_x = x_pos;
player_spawn_y = (y_pos - 16);
break;
case 24:
break;
case 25:
_finish_door.x = (x_pos + 8);
_finish_door.y = (y_pos + 8);
break;
default:
trace("Shouldn't be here");
break;
};
_tilemap.setTileByIndex(i, 0);
_backmap.setTileByIndex(i, 0);
};
};
if (tile > 23){
_backmap.setTileByIndex(i, tile);
_tilemap.setTileByIndex(i, 0);
};
i++;
};
if ((((player_spawn_y <= -1)) && ((player_spawn_y <= -1)))){
_player.x = (_tilemap.width / 2);
_player.y = (_tilemap.height / 2);
} else {
_player.x = player_spawn_x;
_player.y = player_spawn_y;
};
FlxG.flash(4279442459);
var fx:uint = ((_tilemap.width / 2) - (FlxG.width / 2));
var fy:uint = ((_tilemap.height / 2) - (FlxG.height / 2));
FlxG.followBounds(fx, fy, fx, fy);
_tilemap.follow();
FlxG.follow(_player, 2.5);
if (Level == 1){
_t1 = new FlxText((FlxG.width / 2), (FlxG.height / 3), 80, "Z, X, C");
_t1.size = 32;
_t1.color = 0xFFFFFF;
_t1.antialiasing = true;
this.add(_t1);
};
addObjects();
}
private function addObjects():void{
var soldier:SmallSoldier;
var arrow:FlxSprite;
this.add(_backmap);
var i:uint;
while (i < 8) {
this.add(_bullets[i]);
i++;
};
for each (soldier in _sm_soldiers) {
this.add(soldier);
};
this.add(_player);
this.add(_player._hat);
this.add(_tilemap);
this.add(_smoke_bomb);
this.add(_sound_bomb);
this.add(_finish_door);
for each (arrow in _sm_arrows) {
this.add(arrow);
};
_player.add_gui();
}
private function killObjects():void{
do {
} while (_spikes.pop() != null);
do {
} while (_sm_soldiers.pop() != null);
do {
} while (_sm_arrows.pop() != null);
do {
} while (_dead_blocks.pop() != null);
this._layer.destroy();
_player = new Player(0, 0, _smoke_bomb, _sound_bomb);
}
override public function update():void{
var dead_block:DeadLargeSoldier;
var soldier:SmallSoldier;
var spike:FlxSprite;
var arrow:FlxSprite;
var spike2:FlxSprite;
var _gibs:FlxEmitter;
var soldier2:SmallSoldier;
if (_player.dead){
_restart = (_restart + FlxG.elapsed);
if (_restart > 2){
changeProperLevel();
_restart = 0;
};
};
super.update();
_tilemap.collideArray(_bullets);
_tilemap.collide(_player);
_tilemap.collideArray(_sm_soldiers);
_tilemap.collide(_smoke_bomb);
_tilemap.collide(_sound_bomb);
if (!_boulder.dead){
_tilemap.collide(_boulder);
if (_boulder.overlaps(_player)){
_player.kill();
};
};
for each (dead_block in _dead_blocks) {
dead_block.collide(_player);
};
for each (soldier in _sm_soldiers) {
if (((((soldier.overlaps(_smoke_bomb)) && (!(_smoke_bomb.dead)))) && (!(soldier.dead)))){
soldier.blind();
_smoke_bomb.explode();
};
if (((soldier._leaves_remains) && (soldier.dead))){
soldier._leaves_remains = false;
_dead_blocks.push(new DeadLargeSoldier(soldier.x, soldier.y, _player));
};
};
if (!_player._invisible){
for each (soldier in _sm_soldiers) {
if (((soldier.overlaps(_player)) && (!(soldier.dead)))){
_player.kill();
};
if (((((soldier.overlaps(_smoke_bomb)) && (!(_smoke_bomb.dead)))) && (!(soldier.dead)))){
soldier.blind();
_smoke_bomb.explode();
};
};
};
for each (spike in _spikes) {
if (spike.overlaps(_player)){
_player.kill();
};
};
for each (arrow in _sm_arrows) {
if (_tilemap.collide(arrow)){
arrow.kill();
_gibs = new FlxEmitter(0, 0, -0.6);
_gibs.setXVelocity(-30, 30);
_gibs.setYVelocity(-30, 30);
_gibs.gravity = -100;
_gibs.setRotation(-180, -180);
_gibs.createSprites(Player.ImgSmoke, 2);
FlxG.state.add(_gibs);
_gibs.x = (arrow.x + (width / 2));
_gibs.y = (arrow.y + (height / 4));
_gibs.restart();
arrow.x = 0;
arrow.y = 0;
};
if (((arrow.overlaps(_player)) && (!(_player._invisible)))){
_player.kill();
};
};
for each (spike2 in _spikes) {
for each (soldier2 in _sm_soldiers) {
if (soldier2.overlaps(spike2)){
soldier2.kill();
};
};
};
if (_sound_bomb.sound_alarm){
_sound_bomb.sound_alarm = false;
for each (soldier in _sm_soldiers) {
soldier.alarm(_sound_bomb.x, _sound_bomb.y);
};
};
if (((_finish_door.collide(_player)) && (!(_player.dead)))){
for each (soldier in _sm_soldiers) {
soldier.kill();
};
for each (arrow in _sm_arrows) {
arrow.kill();
};
_boulder.kill();
_cur_level++;
FlxG.play(SndVictory);
FlxG.fade(4278190080, 2, changeProperLevel, true);
_player.play("victory");
_player.active = false;
};
}
private function changeProperLevel():void{
FlxG.fade(0, 1, null, true);
changeLevel(_cur_level);
}
}
}//package com.globalgamejam.Hats
Section 44
//PlayStateTiles_ImgTiles (com.globalgamejam.Hats.PlayStateTiles_ImgTiles)
package com.globalgamejam.Hats {
import mx.core.*;
public class PlayStateTiles_ImgTiles extends BitmapAsset {
}
}//package com.globalgamejam.Hats
Section 45
//PlayStateTiles_SndMode (com.globalgamejam.Hats.PlayStateTiles_SndMode)
package com.globalgamejam.Hats {
import mx.core.*;
public class PlayStateTiles_SndMode extends SoundAsset {
}
}//package com.globalgamejam.Hats
Section 46
//PlayStateTiles_SndVictory (com.globalgamejam.Hats.PlayStateTiles_SndVictory)
package com.globalgamejam.Hats {
import mx.core.*;
public class PlayStateTiles_SndVictory extends SoundAsset {
}
}//package com.globalgamejam.Hats
Section 47
//PlayStateTiles_themeSong (com.globalgamejam.Hats.PlayStateTiles_themeSong)
package com.globalgamejam.Hats {
import mx.core.*;
public class PlayStateTiles_themeSong extends SoundAsset {
}
}//package com.globalgamejam.Hats
Section 48
//PlayStateTiles_TxtMap (com.globalgamejam.Hats.PlayStateTiles_TxtMap)
package com.globalgamejam.Hats {
import mx.core.*;
public class PlayStateTiles_TxtMap extends ByteArrayAsset {
}
}//package com.globalgamejam.Hats
Section 49
//PlayStateTiles_TxtMap10 (com.globalgamejam.Hats.PlayStateTiles_TxtMap10)
package com.globalgamejam.Hats {
import mx.core.*;
public class PlayStateTiles_TxtMap10 extends ByteArrayAsset {
}
}//package com.globalgamejam.Hats
Section 50
//PlayStateTiles_TxtMap11 (com.globalgamejam.Hats.PlayStateTiles_TxtMap11)
package com.globalgamejam.Hats {
import mx.core.*;
public class PlayStateTiles_TxtMap11 extends ByteArrayAsset {
}
}//package com.globalgamejam.Hats
Section 51
//PlayStateTiles_TxtMap12 (com.globalgamejam.Hats.PlayStateTiles_TxtMap12)
package com.globalgamejam.Hats {
import mx.core.*;
public class PlayStateTiles_TxtMap12 extends ByteArrayAsset {
}
}//package com.globalgamejam.Hats
Section 52
//PlayStateTiles_TxtMap13 (com.globalgamejam.Hats.PlayStateTiles_TxtMap13)
package com.globalgamejam.Hats {
import mx.core.*;
public class PlayStateTiles_TxtMap13 extends ByteArrayAsset {
}
}//package com.globalgamejam.Hats
Section 53
//PlayStateTiles_TxtMap2 (com.globalgamejam.Hats.PlayStateTiles_TxtMap2)
package com.globalgamejam.Hats {
import mx.core.*;
public class PlayStateTiles_TxtMap2 extends ByteArrayAsset {
}
}//package com.globalgamejam.Hats
Section 54
//PlayStateTiles_TxtMap3 (com.globalgamejam.Hats.PlayStateTiles_TxtMap3)
package com.globalgamejam.Hats {
import mx.core.*;
public class PlayStateTiles_TxtMap3 extends ByteArrayAsset {
}
}//package com.globalgamejam.Hats
Section 55
//PlayStateTiles_TxtMap4 (com.globalgamejam.Hats.PlayStateTiles_TxtMap4)
package com.globalgamejam.Hats {
import mx.core.*;
public class PlayStateTiles_TxtMap4 extends ByteArrayAsset {
}
}//package com.globalgamejam.Hats
Section 56
//PlayStateTiles_TxtMap5 (com.globalgamejam.Hats.PlayStateTiles_TxtMap5)
package com.globalgamejam.Hats {
import mx.core.*;
public class PlayStateTiles_TxtMap5 extends ByteArrayAsset {
}
}//package com.globalgamejam.Hats
Section 57
//PlayStateTiles_TxtMap6 (com.globalgamejam.Hats.PlayStateTiles_TxtMap6)
package com.globalgamejam.Hats {
import mx.core.*;
public class PlayStateTiles_TxtMap6 extends ByteArrayAsset {
}
}//package com.globalgamejam.Hats
Section 58
//PlayStateTiles_TxtMap7 (com.globalgamejam.Hats.PlayStateTiles_TxtMap7)
package com.globalgamejam.Hats {
import mx.core.*;
public class PlayStateTiles_TxtMap7 extends ByteArrayAsset {
}
}//package com.globalgamejam.Hats
Section 59
//PlayStateTiles_TxtMap8 (com.globalgamejam.Hats.PlayStateTiles_TxtMap8)
package com.globalgamejam.Hats {
import mx.core.*;
public class PlayStateTiles_TxtMap8 extends ByteArrayAsset {
}
}//package com.globalgamejam.Hats
Section 60
//PlayStateTiles_TxtMap9 (com.globalgamejam.Hats.PlayStateTiles_TxtMap9)
package com.globalgamejam.Hats {
import mx.core.*;
public class PlayStateTiles_TxtMap9 extends ByteArrayAsset {
}
}//package com.globalgamejam.Hats
Section 61
//SmallSoldier (com.globalgamejam.Hats.SmallSoldier)
package com.globalgamejam.Hats {
import org.flixel.*;
public class SmallSoldier extends FlxSprite {
protected var _player:Player;
public var _leaves_remains:Boolean;
protected var _timer:Number;
protected var slow_speed:Number;
private var SndHit:Class;
protected var _world:FlxTilemap;
private var _gibs:FlxEmitter;
protected var _stand_timer:Number;
private var ImgSoldier:Class;
protected var _run_speed:Number;
protected var _max_player_dist:Number;
protected var _angry_timer:Number;
public var _feeler:FlxSprite;
protected var fast_speed:Number;
private var ImgGibs:Class;
protected var _blinded_timer:Number;
public static const _alarm_dist:Number = 0x0100;
public static const _blinded_time:Number = 3;
private static var _cb:uint = 0;
public function SmallSoldier(xPos:int, yPos:int, ThePlayer:Player, TheWorld:FlxTilemap){
ImgSoldier = SmallSoldier_ImgSoldier;
ImgGibs = SmallSoldier_ImgGibs;
SndHit = SmallSoldier_SndHit;
super(xPos, yPos);
loadGraphic(ImgSoldier, true, true, 16, 32);
_player = ThePlayer;
_world = TheWorld;
_leaves_remains = false;
if (FlxG.random() < 0.5){
_facing = RIGHT;
} else {
_facing = LEFT;
};
_stand_timer = 0;
_blinded_timer = 0;
_angry_timer = 0;
width = 16;
height = 28;
offset.x = 1;
offset.y = 3;
_max_player_dist = 128;
acceleration.y = 420;
slow_speed = 32;
fast_speed = 96;
_run_speed = slow_speed;
drag.x = 120;
drag.y = 80;
maxVelocity.x = _run_speed;
_feeler = new FlxSprite();
addAnimation("idle", [0]);
addAnimation("walking", [1, 2, 3, 0], 12, true);
addAnimation("angry", [4, 5, 6, 7], 18, true);
reset(x, y);
}
override public function hitWall(Contact:FlxCore=null):Boolean{
if (_angry_timer > 0){
return (true);
};
if (_facing == RIGHT){
_facing = LEFT;
} else {
_facing = RIGHT;
};
return (super.hitWall());
}
override public function hurt(Damage:Number):void{
}
public function alarm(alarm_x:Number, alarm_y:Number):void{
if (Math.sqrt((Math.pow((x - alarm_x), 2) + Math.pow((y - alarm_y), 2))) <= _alarm_dist){
facing = ((alarm_x)>x) ? RIGHT : LEFT;
_angry_timer = (4 + FlxG.random());
};
}
public function blind():void{
_blinded_timer = _blinded_time;
}
override public function reset(X:Number, Y:Number):void{
super.reset(X, Y);
velocity.x = 0;
velocity.y = 0;
health = 2;
_timer = 0;
play("idle");
}
public function playerOnSide():Boolean{
return ((((((_player.x > this.x)) && ((_facing == RIGHT)))) || ((((_player.x < this.x)) && ((_facing == LEFT))))));
}
override public function update():void{
var _gibs:FlxEmitter;
if (dead){
if (finished){
exists = false;
} else {
super.update();
};
return;
};
if (_blinded_timer > 0){
_blinded_timer = (_blinded_timer - FlxG.elapsed);
_gibs = new FlxEmitter(0, 0, -0.6);
_gibs.setXVelocity(-30, 30);
_gibs.setYVelocity(-30, 30);
_gibs.gravity = -100;
_gibs.setRotation(-180, -180);
_gibs.createSprites(Player.ImgSmoke, 1);
FlxG.state.add(_gibs);
_gibs.x = (this.x + (width / 2));
_gibs.y = (this.y + (height / 4));
_gibs.restart();
};
if (velocity.y == 0){
acceleration.x = 0;
if (_facing == RIGHT){
acceleration.x = (acceleration.x + _run_speed);
_feeler.x = (this.x + this.width);
} else {
if (_facing == LEFT){
acceleration.x = (acceleration.x - _run_speed);
_feeler.x = (this.x - (this.width / 2));
};
};
_feeler.y = (this.y + this.height);
if (((((((((!(_player._invisible)) && ((playerDist() < _max_player_dist)))) && (playerOnSide()))) && ((_blinded_timer <= 0)))) || ((_angry_timer > 0)))){
if (_angry_timer > 0){
_angry_timer = (_angry_timer - FlxG.elapsed);
};
(acceleration.x * 10);
maxVelocity.x = fast_speed;
play("angry");
} else {
maxVelocity.x = slow_speed;
play("walking");
};
if (((!(_world.collide(_feeler))) && ((_blinded_timer <= 0)))){
acceleration.x = 0;
velocity.x = 0;
if (_angry_timer <= 0){
play("idle");
_timer = (_timer + FlxG.elapsed);
} else {
play("angry");
};
} else {
_timer = 0;
};
if (_timer > 2.5){
_timer = 0;
if (_facing == RIGHT){
_facing = LEFT;
} else {
_facing = RIGHT;
};
};
};
super.update();
}
override public function kill():void{
if (dead){
return;
};
_gibs = new FlxEmitter(0, 0, -1.5);
_gibs.setXVelocity(-150, 150);
_gibs.setYVelocity(-200, 0);
_gibs.setRotation(-720, -720);
_gibs.createSprites(ImgGibs, 20);
FlxG.state.add(_gibs);
_gibs.x = (this.x + (width / 2));
_gibs.y = (this.y + (height / 2));
_gibs.restart();
super.kill();
}
public function playerDist():uint{
return (Math.sqrt((Math.pow((x - _player.x), 2) + Math.pow((y - _player.y), 2))));
}
private function shoot():void{
}
override public function hitFloor(Contact:FlxCore=null):Boolean{
return (super.hitFloor());
}
}
}//package com.globalgamejam.Hats
Section 62
//SmallSoldier_ImgGibs (com.globalgamejam.Hats.SmallSoldier_ImgGibs)
package com.globalgamejam.Hats {
import mx.core.*;
public class SmallSoldier_ImgGibs extends BitmapAsset {
}
}//package com.globalgamejam.Hats
Section 63
//SmallSoldier_ImgSoldier (com.globalgamejam.Hats.SmallSoldier_ImgSoldier)
package com.globalgamejam.Hats {
import mx.core.*;
public class SmallSoldier_ImgSoldier extends BitmapAsset {
}
}//package com.globalgamejam.Hats
Section 64
//SmallSoldier_SndHit (com.globalgamejam.Hats.SmallSoldier_SndHit)
package com.globalgamejam.Hats {
import mx.core.*;
public class SmallSoldier_SndHit extends SoundAsset {
}
}//package com.globalgamejam.Hats
Section 65
//SmokeBomb (com.globalgamejam.Hats.SmokeBomb)
package com.globalgamejam.Hats {
import org.flixel.*;
public class SmokeBomb extends FlxSprite {
protected const max_timer:Number = 4;
private var SmokeLand:Class;
protected var timer:Number;
public function SmokeBomb(){
SmokeLand = SmokeBomb_SmokeLand;
super();
acceleration.y = 420;
kill();
timer = 0;
}
override public function update():void{
var _gibs:FlxEmitter;
if (dead){
return;
};
if (timer < max_timer){
timer = (timer + FlxG.elapsed);
} else {
kill();
};
_gibs = new FlxEmitter(0, 0, -0.2);
_gibs.setXVelocity(-90, 90);
_gibs.setYVelocity(-90, 90);
_gibs.gravity = -100;
_gibs.setRotation(-180, -180);
_gibs.createSprites(Player.ImgSmoke, 1);
FlxG.state.add(_gibs);
_gibs.x = (this.x + (width / 2));
_gibs.y = (this.y + (height / 2));
_gibs.restart();
super.update();
}
public function explode():void{
if (dead){
return;
};
FlxG.play(SmokeLand);
var _gibs:FlxEmitter = new FlxEmitter(0, 0, -1.5);
_gibs.setXVelocity(-90, 90);
_gibs.setYVelocity(-90, 90);
_gibs.gravity = -100;
_gibs.setRotation(-180, -180);
_gibs.createSprites(Player.ImgSmoke, 50);
FlxG.state.add(_gibs);
_gibs.x = (this.x + (width / 2));
_gibs.y = (this.y + (height / 2));
_gibs.restart();
this.kill();
}
public function revive():void{
exists = true;
dead = false;
timer = 0;
}
public function shoot(X:Number, Y:Number, x_vel:Number):void{
this.x = X;
this.y = Y;
revive();
velocity.x = x_vel;
velocity.y = -50;
visible = false;
}
}
}//package com.globalgamejam.Hats
Section 66
//SmokeBomb_SmokeLand (com.globalgamejam.Hats.SmokeBomb_SmokeLand)
package com.globalgamejam.Hats {
import mx.core.*;
public class SmokeBomb_SmokeLand extends SoundAsset {
}
}//package com.globalgamejam.Hats
Section 67
//SoundBomb (com.globalgamejam.Hats.SoundBomb)
package com.globalgamejam.Hats {
import org.flixel.*;
public class SoundBomb extends FlxSprite {
protected const max_timer:Number = 1.5;
public var sound_alarm:Boolean;
protected var timer:Number;
public static var ImgSound:Class = SoundBomb_ImgSound;
public function SoundBomb(){
super();
acceleration.y = 0;
kill();
timer = 0;
sound_alarm = false;
}
public function explode():void{
if (dead){
return;
};
sound_alarm = true;
var _gibs:FlxEmitter = new FlxEmitter(0, 0, -3);
_gibs.setXVelocity(-30, 30);
_gibs.setYVelocity(-30, 30);
_gibs.gravity = -30;
_gibs.setRotation(-180, -180);
_gibs.alpha = 0.5;
_gibs.createSprites(ImgSound, 50);
FlxG.state.add(_gibs);
_gibs.x = (this.x + (width / 2));
_gibs.y = (this.y + (height / 2));
_gibs.restart();
this.kill();
}
override public function update():void{
if (dead){
return;
};
if (timer < max_timer){
timer = (timer + FlxG.elapsed);
} else {
explode();
};
var _gibs:FlxEmitter = new FlxEmitter(0, 0, -0.2);
_gibs.setXVelocity(-90, 90);
_gibs.setYVelocity(-90, 90);
_gibs.gravity = -100;
_gibs.setRotation(-180, -180);
_gibs.createSprites(ImgSound, 1);
FlxG.state.add(_gibs);
_gibs.x = (this.x + (width / 2));
_gibs.y = (this.y + (height / 2));
_gibs.restart();
super.update();
}
public function revive():void{
exists = true;
dead = false;
sound_alarm = false;
timer = 0;
}
override public function hitFloor(Core:FlxCore=null):Boolean{
explode();
return (true);
}
override public function hitWall(Core:FlxCore=null):Boolean{
explode();
return (true);
}
override public function collide(Core:FlxCore):Boolean{
explode();
return (true);
}
public function shoot(X:Number, Y:Number, x_vel:Number):void{
this.x = X;
this.y = Y;
revive();
velocity.x = x_vel;
velocity.y = 0;
visible = false;
}
}
}//package com.globalgamejam.Hats
Section 68
//SoundBomb_ImgSound (com.globalgamejam.Hats.SoundBomb_ImgSound)
package com.globalgamejam.Hats {
import mx.core.*;
public class SoundBomb_ImgSound extends BitmapAsset {
}
}//package com.globalgamejam.Hats
Section 69
//VictoryState (com.globalgamejam.Hats.VictoryState)
package com.globalgamejam.Hats {
import org.flixel.*;
public class VictoryState extends FlxState {
private var _timer:Number;
private var SndMenu:Class;
private var _fading:Boolean;
public function VictoryState(){
SndMenu = VictoryState_SndMenu;
super();
_timer = 0;
_fading = false;
FlxG.flash(4294967295);
var gibs:FlxEmitter = new FlxEmitter(0, -50, 0.03);
gibs.setSize(FlxG.width, 0);
gibs.setXVelocity();
gibs.setYVelocity(0, 100);
gibs.setRotation(-360, -360);
gibs.gravity = 80;
gibs.createSprites(MenuState.ImgHats, 120);
add(gibs);
var guy:FlxSprite = new FlxSprite(160, 180);
guy.loadGraphic(Player.ImgSpaceman, true, true, 16, 32);
guy.addAnimation("yay", [5, 5, 0], 2, true);
guy.play("yay");
add(guy);
add(new FlxText(0, ((FlxG.height / 2) - 35), FlxG.width, "VICTORY").setFormat(null, 16, 0xFFFFFF, "center"));
}
override public function update():void{
super.update();
if (!_fading){
_timer = (_timer + FlxG.elapsed);
if (((FlxG.keys.justPressed("X")) || (FlxG.keys.justPressed("C")))){
_fading = true;
FlxG.play(SndMenu);
FlxG.fade(4294967295, 2, onPlay);
};
};
}
private function onPlay():void{
FlxG.switchState(PlayStateTiles);
}
}
}//package com.globalgamejam.Hats
Section 70
//VictoryState_SndMenu (com.globalgamejam.Hats.VictoryState_SndMenu)
package com.globalgamejam.Hats {
import mx.core.*;
public class VictoryState_SndMenu extends SoundAsset {
}
}//package com.globalgamejam.Hats
Section 71
//BitmapAsset (mx.core.BitmapAsset)
package mx.core {
import flash.display.*;
public class BitmapAsset extends FlexBitmap implements IFlexAsset, IFlexDisplayObject {
mx_internal static const VERSION:String = "3.4.1.10084";
public function BitmapAsset(bitmapData:BitmapData=null, pixelSnapping:String="auto", smoothing:Boolean=false){
super(bitmapData, pixelSnapping, smoothing);
}
public function get measuredWidth():Number{
if (bitmapData){
return (bitmapData.width);
};
return (0);
}
public function get measuredHeight():Number{
if (bitmapData){
return (bitmapData.height);
};
return (0);
}
public function setActualSize(newWidth:Number, newHeight:Number):void{
width = newWidth;
height = newHeight;
}
public function move(x:Number, y:Number):void{
this.x = x;
this.y = y;
}
}
}//package mx.core
Section 72
//ByteArrayAsset (mx.core.ByteArrayAsset)
package mx.core {
import flash.utils.*;
public class ByteArrayAsset extends ByteArray implements IFlexAsset {
mx_internal static const VERSION:String = "3.4.1.10084";
public function ByteArrayAsset(){
super();
}
}
}//package mx.core
Section 73
//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.4.1.10084";
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 74
//FlexBitmap (mx.core.FlexBitmap)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexBitmap extends Bitmap {
mx_internal static const VERSION:String = "3.4.1.10084";
public function FlexBitmap(bitmapData:BitmapData=null, pixelSnapping:String="auto", smoothing:Boolean=false){
var bitmapData = bitmapData;
var pixelSnapping = pixelSnapping;
var smoothing = smoothing;
super(bitmapData, pixelSnapping, smoothing);
name = NameUtil.createUniqueName(this);
//unresolved jump
var _slot1 = e;
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 75
//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.4.1.10084";
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 76
//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.4.1.10084";
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 77
//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.4.1.10084";
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 78
//FontAsset (mx.core.FontAsset)
package mx.core {
import flash.text.*;
public class FontAsset extends Font implements IFlexAsset {
mx_internal static const VERSION:String = "3.4.1.10084";
public function FontAsset(){
super();
}
}
}//package mx.core
Section 79
//IBorder (mx.core.IBorder)
package mx.core {
public interface IBorder {
function get borderMetrics():EdgeMetrics;
}
}//package mx.core
Section 80
//IButton (mx.core.IButton)
package mx.core {
public interface IButton extends IUIComponent {
function get emphasized():Boolean;
function set emphasized(C:\autobuild\3.4.0\frameworks\projects\framework\src;mx\core;IButton.as:Boolean):void;
function callLater(_arg1:Function, _arg2:Array=null):void;
}
}//package mx.core
Section 81
//IChildList (mx.core.IChildList)
package mx.core {
import flash.display.*;
import flash.geom.*;
public interface IChildList {
function get numChildren():int;
function removeChild(C:\autobuild\3.4.0\frameworks\projects\framework\src;mx\core;IChildList.as:DisplayObject):DisplayObject;
function getChildByName(C:\autobuild\3.4.0\frameworks\projects\framework\src;mx\core;IChildList.as:String):DisplayObject;
function removeChildAt(C:\autobuild\3.4.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.4.0\frameworks\projects\framework\src;mx\core;IChildList.as:int):DisplayObject;
function addChild(C:\autobuild\3.4.0\frameworks\projects\framework\src;mx\core;IChildList.as:DisplayObject):DisplayObject;
function contains(flash.display:DisplayObject):Boolean;
}
}//package mx.core
Section 82
//IContainer (mx.core.IContainer)
package mx.core {
import flash.display.*;
import flash.geom.*;
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.4.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.4.0\frameworks\projects\framework\src;mx\core;ISpriteInterface.as:Point):Boolean;
}
}//package mx.core
Section 83
//IFlexAsset (mx.core.IFlexAsset)
package mx.core {
public interface IFlexAsset {
}
}//package mx.core
Section 84
//IFlexDisplayObject (mx.core.IFlexDisplayObject)
package mx.core {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.accessibility.*;
public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher {
function get visible():Boolean;
function get rotation():Number;
function localToGlobal(void:Point):Point;
function get name():String;
function set width(flash.display:Number):void;
function get measuredHeight():Number;
function get blendMode():String;
function get scale9Grid():Rectangle;
function set name(flash.display:String):void;
function set scaleX(flash.display:Number):void;
function set scaleY(flash.display:Number):void;
function get measuredWidth():Number;
function get accessibilityProperties():AccessibilityProperties;
function set scrollRect(flash.display:Rectangle):void;
function get cacheAsBitmap():Boolean;
function globalToLocal(void:Point):Point;
function get height():Number;
function set blendMode(flash.display:String):void;
function get parent():DisplayObjectContainer;
function getBounds(String:DisplayObject):Rectangle;
function get opaqueBackground():Object;
function set scale9Grid(flash.display:Rectangle):void;
function setActualSize(_arg1:Number, _arg2:Number):void;
function set alpha(flash.display:Number):void;
function set accessibilityProperties(flash.display:AccessibilityProperties):void;
function get width():Number;
function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean;
function set cacheAsBitmap(flash.display:Boolean):void;
function get scaleX():Number;
function get scaleY():Number;
function get scrollRect():Rectangle;
function get mouseX():Number;
function get mouseY():Number;
function set height(flash.display:Number):void;
function set mask(flash.display:DisplayObject):void;
function getRect(String:DisplayObject):Rectangle;
function get alpha():Number;
function set transform(flash.display:Transform):void;
function move(_arg1:Number, _arg2:Number):void;
function get loaderInfo():LoaderInfo;
function get root():DisplayObject;
function hitTestObject(mx.core:IFlexDisplayObject/mx.core:IFlexDisplayObject:stage/get:DisplayObject):Boolean;
function set opaqueBackground(flash.display:Object):void;
function set visible(flash.display:Boolean):void;
function get mask():DisplayObject;
function set x(flash.display:Number):void;
function set y(flash.display:Number):void;
function get transform():Transform;
function set filters(flash.display:Array):void;
function get x():Number;
function get y():Number;
function get filters():Array;
function set rotation(flash.display:Number):void;
function get stage():Stage;
}
}//package mx.core
Section 85
//IFlexModuleFactory (mx.core.IFlexModuleFactory)
package mx.core {
import flash.utils.*;
public interface IFlexModuleFactory {
function get preloadedRSLs():Dictionary;
function allowInsecureDomain(... _args):void;
function create(... _args):Object;
function allowDomain(... _args):void;
function info():Object;
}
}//package mx.core
Section 86
//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 87
//IProgrammaticSkin (mx.core.IProgrammaticSkin)
package mx.core {
public interface IProgrammaticSkin {
function validateNow():void;
function validateDisplayList():void;
}
}//package mx.core
Section 88
//IRawChildrenContainer (mx.core.IRawChildrenContainer)
package mx.core {
public interface IRawChildrenContainer {
function get rawChildren():IChildList;
}
}//package mx.core
Section 89
//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.4.0\frameworks\projects\framework\src;mx\core;IRectangularBorder.as:Rectangle):void;
function layoutBackgroundImage():void;
}
}//package mx.core
Section 90
//IRepeaterClient (mx.core.IRepeaterClient)
package mx.core {
public interface IRepeaterClient {
function get instanceIndices():Array;
function set instanceIndices(C:\autobuild\3.4.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void;
function get isDocument():Boolean;
function set repeaters(C:\autobuild\3.4.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void;
function initializeRepeaterArrays(C:\autobuild\3.4.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:IRepeaterClient):void;
function get repeaters():Array;
function set repeaterIndices(C:\autobuild\3.4.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void;
function get repeaterIndices():Array;
}
}//package mx.core
Section 91
//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.4.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.4.0\frameworks\projects\framework\src;mx\core;ISWFBridgeGroup.as:IEventDispatcher):void;
function containsBridge(IEventDispatcher:IEventDispatcher):Boolean;
function getChildBridges():Array;
}
}//package mx.core
Section 92
//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 93
//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 94
//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 95
//Singleton (mx.core.Singleton)
package mx.core {
public class Singleton {
mx_internal static const VERSION:String = "3.4.1.10084";
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 96
//SoundAsset (mx.core.SoundAsset)
package mx.core {
import flash.media.*;
public class SoundAsset extends Sound implements IFlexAsset {
mx_internal static const VERSION:String = "3.4.1.10084";
public function SoundAsset(){
super();
}
}
}//package mx.core
Section 97
//UIComponentGlobals (mx.core.UIComponentGlobals)
package mx.core {
import flash.display.*;
import flash.geom.*;
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 98
//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.4.1.10084";
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 99
//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.4.1.10084";
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 100
//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.4.1.10084";
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 101
//RectangularDropShadow (mx.graphics.RectangularDropShadow)
package mx.graphics {
import mx.core.*;
import flash.display.*;
import flash.geom.*;
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.4.1.10084";
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 102
//IFocusManager (mx.managers.IFocusManager)
package mx.managers {
import mx.core.*;
import flash.events.*;
import flash.display.*;
public interface IFocusManager {
function get focusPane():Sprite;
function getFocus():IFocusManagerComponent;
function deactivate():void;
function set defaultButton(C:\autobuild\3.4.0\frameworks\projects\framework\src;mx\managers;IFocusManager.as:IButton):void;
function set focusPane(C:\autobuild\3.4.0\frameworks\projects\framework\src;mx\managers;IFocusManager.as:Sprite):void;
function set showFocusIndicator(C:\autobuild\3.4.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.4.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.4.0\frameworks\projects\framework\src;mx\managers;IFocusManager.as:IFocusManagerComponent):void;
function activate():void;
function showFocus():void;
function set defaultButtonEnabled(C:\autobuild\3.4.0\frameworks\projects\framework\src;mx\managers;IFocusManager.as:Boolean):void;
function hideFocus():void;
function getNextFocusManagerComponent(value:Boolean=false):IFocusManagerComponent;
}
}//package mx.managers
Section 103
//IFocusManagerComponent (mx.managers.IFocusManagerComponent)
package mx.managers {
public interface IFocusManagerComponent {
function set focusEnabled(C:\autobuild\3.4.0\frameworks\projects\framework\src;mx\managers;IFocusManagerComponent.as:Boolean):void;
function drawFocus(C:\autobuild\3.4.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 104
//IFocusManagerContainer (mx.managers.IFocusManagerContainer)
package mx.managers {
import flash.events.*;
import flash.display.*;
public interface IFocusManagerContainer extends IEventDispatcher {
function set focusManager(C:\autobuild\3.4.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 105
//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.4.0\frameworks\projects\framework\src;mx\managers;ILayoutManager.as:ILayoutManagerClient):void;
function set usePhasedInstantiation(C:\autobuild\3.4.0\frameworks\projects\framework\src;mx\managers;ILayoutManager.as:Boolean):void;
function invalidateSize(C:\autobuild\3.4.0\frameworks\projects\framework\src;mx\managers;ILayoutManager.as:ILayoutManagerClient):void;
function get usePhasedInstantiation():Boolean;
function invalidateProperties(C:\autobuild\3.4.0\frameworks\projects\framework\src;mx\managers;ILayoutManager.as:ILayoutManagerClient):void;
}
}//package mx.managers
Section 106
//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.4.0\frameworks\projects\framework\src;mx\managers;ILayoutManagerClient.as:Boolean):void;
function set initialized(C:\autobuild\3.4.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.4.0\frameworks\projects\framework\src;mx\managers;ILayoutManagerClient.as:Boolean=false):void;
function set nestLevel(C:\autobuild\3.4.0\frameworks\projects\framework\src;mx\managers;ILayoutManagerClient.as:int):void;
function set processedDescriptors(C:\autobuild\3.4.0\frameworks\projects\framework\src;mx\managers;ILayoutManagerClient.as:Boolean):void;
}
}//package mx.managers
Section 107
//ISystemManager (mx.managers.ISystemManager)
package mx.managers {
import mx.core.*;
import flash.events.*;
import flash.display.*;
import flash.geom.*;
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.4.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 108
//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 static var dispatchingEventToOtherSystemManagers:Boolean;
public function SystemManagerGlobals(){
super();
}
}
}//package mx.managers
Section 109
//IModuleInfo (mx.modules.IModuleInfo)
package mx.modules {
import mx.core.*;
import flash.utils.*;
import flash.events.*;
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.4.0\frameworks\projects\framework\src;mx\modules;IModuleInfo.as:IFlexModuleFactory):void;
function get factory():IFlexModuleFactory;
function set data(C:\autobuild\3.4.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 110
//ModuleManager (mx.modules.ModuleManager)
package mx.modules {
import mx.core.*;
public class ModuleManager {
mx_internal static const VERSION:String = "3.4.1.10084";
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 mx.core.*;
import flash.utils.*;
import flash.events.*;
import flash.system.*;
import flash.display.*;
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;
var moduleEvent:ModuleEvent = new ModuleEvent(ModuleEvent.READY);
moduleEvent.bytesLoaded = loader.contentLoaderInfo.bytesLoaded;
moduleEvent.bytesTotal = loader.contentLoaderInfo.bytesTotal;
clearLoader();
dispatchEvent(moduleEvent);
}
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 111
//ModuleManagerGlobals (mx.modules.ModuleManagerGlobals)
package mx.modules {
public class ModuleManagerGlobals {
public static var managerSingleton:Object = null;
public function ModuleManagerGlobals(){
super();
}
}
}//package mx.modules
Section 112
//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 113
//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.4.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.4.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.4.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.4.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 114
//IResourceModule (mx.resources.IResourceModule)
package mx.resources {
public interface IResourceModule {
function get resourceBundles():Array;
}
}//package mx.resources
Section 115
//LocaleSorter (mx.resources.LocaleSorter)
package mx.resources {
public class LocaleSorter {
mx_internal static const VERSION:String = "3.4.1.10084";
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 116
//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.4.1.10084";
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 117
//ResourceManager (mx.resources.ResourceManager)
package mx.resources {
import mx.core.*;
public class ResourceManager {
mx_internal static const VERSION:String = "3.4.1.10084";
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 118
//ResourceManagerImpl (mx.resources.ResourceManagerImpl)
package mx.resources {
import mx.core.*;
import flash.utils.*;
import flash.events.*;
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.4.1.10084";
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{
var bundles:Array;
var n:int;
var i:int;
var locale:String;
var bundleName:String;
var rmi:ResourceModuleInfo = resourceModules[url];
if (!rmi){
return;
};
if (rmi.resourceModule){
bundles = rmi.resourceModule.resourceBundles;
if (bundles){
n = bundles.length;
i = 0;
while (i < n) {
locale = bundles[i].locale;
bundleName = bundles[i].bundleName;
removeResourceBundle(locale, bundleName);
i++;
};
};
};
resourceModules[url] = null;
delete resourceModules[url];
rmi.moduleInfo.unload();
if (update){
this.update();
};
}
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 119
//HaloBorder (mx.skins.halo.HaloBorder)
package mx.skins.halo {
import mx.core.*;
import mx.styles.*;
import flash.display.*;
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.4.1.10084";
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 topRadius: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){
topRadius = Math.max((radius - Math.max(bm.top, bm.left, bm.right)), 0);
bottomRadius = (bRoundedCorners) ? Math.max((radius - Math.max(bm.bottom, bm.left, bm.right)), 0) : 0;
radiusObj = {tl:topRadius, tr:topRadius, 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 120
//HaloFocusRect (mx.skins.halo.HaloFocusRect)
package mx.skins.halo {
import mx.styles.*;
import flash.display.*;
import mx.skins.*;
import mx.utils.*;
public class HaloFocusRect extends ProgrammaticSkin implements IStyleClient {
private var _focusColor:Number;
mx_internal static const VERSION:String = "3.4.1.10084";
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 121
//Border (mx.skins.Border)
package mx.skins {
import mx.core.*;
public class Border extends ProgrammaticSkin implements IBorder {
mx_internal static const VERSION:String = "3.4.1.10084";
public function Border(){
super();
}
public function get borderMetrics():EdgeMetrics{
return (EdgeMetrics.EMPTY);
}
}
}//package mx.skins
Section 122
//ProgrammaticSkin (mx.skins.ProgrammaticSkin)
package mx.skins {
import mx.core.*;
import mx.styles.*;
import flash.display.*;
import flash.geom.*;
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.4.1.10084";
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 123
//RectangularBorder (mx.skins.RectangularBorder)
package mx.skins {
import mx.core.*;
import flash.utils.*;
import mx.styles.*;
import flash.events.*;
import flash.system.*;
import flash.display.*;
import flash.geom.*;
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.4.1.10084";
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{
if (((((_backgroundImageBounds) && (value))) && (_backgroundImageBounds.equals(value)))){
return;
};
_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 124
//CSSStyleDeclaration (mx.styles.CSSStyleDeclaration)
package mx.styles {
import mx.core.*;
import flash.utils.*;
import flash.events.*;
import flash.display.*;
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.4.1.10084";
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 125
//ISimpleStyleClient (mx.styles.ISimpleStyleClient)
package mx.styles {
public interface ISimpleStyleClient {
function set styleName(C:\autobuild\3.4.0\frameworks\projects\framework\src;mx\styles;ISimpleStyleClient.as:Object):void;
function styleChanged(C:\autobuild\3.4.0\frameworks\projects\framework\src;mx\styles;ISimpleStyleClient.as:String):void;
function get styleName():Object;
}
}//package mx.styles
Section 126
//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 127
//IStyleManager (mx.styles.IStyleManager)
package mx.styles {
import flash.events.*;
public interface IStyleManager {
function isColorName(value:String):Boolean;
function registerParentDisplayListInvalidatingStyle(C:\autobuild\3.4.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:String):void;
function registerInheritingStyle(C:\autobuild\3.4.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:String):void;
function set stylesRoot(C:\autobuild\3.4.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.4.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:Object):void;
function unloadStyleDeclarations(_arg1:String, _arg2:Boolean=true):void;
function getColorNames(C:\autobuild\3.4.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.4.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.4.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:String):void;
function registerSizeInvalidatingStyle(C:\autobuild\3.4.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 128
//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 129
//IStyleModule (mx.styles.IStyleModule)
package mx.styles {
public interface IStyleModule {
function unload():void;
}
}//package mx.styles
Section 130
//StyleManager (mx.styles.StyleManager)
package mx.styles {
import mx.core.*;
import flash.events.*;
import flash.system.*;
public class StyleManager {
mx_internal static const VERSION:String = "3.4.1.10084";
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 131
//StyleManagerImpl (mx.styles.StyleManagerImpl)
package mx.styles {
import mx.core.*;
import flash.utils.*;
import flash.events.*;
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.4.1.10084";
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);
styleEvent.bytesLoaded = event.bytesLoaded;
styleEvent.bytesTotal = event.bytesTotal;
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 132
//ColorUtil (mx.utils.ColorUtil)
package mx.utils {
public class ColorUtil {
mx_internal static const VERSION:String = "3.4.1.10084";
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 133
//GraphicsUtil (mx.utils.GraphicsUtil)
package mx.utils {
import flash.display.*;
public class GraphicsUtil {
mx_internal static const VERSION:String = "3.4.1.10084";
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 134
//NameUtil (mx.utils.NameUtil)
package mx.utils {
import flash.display.*;
import mx.core.*;
import flash.utils.*;
public class NameUtil {
mx_internal static const VERSION:String = "3.4.1.10084";
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 135
//StringUtil (mx.utils.StringUtil)
package mx.utils {
public class StringUtil {
mx_internal static const VERSION:String = "3.4.1.10084";
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 136
//FlxAnim (org.flixel.data.FlxAnim)
package org.flixel.data {
public class FlxAnim {
public var delay:Number;
public var frames:Array;
public var looped:Boolean;
public var name:String;
public function FlxAnim(Name:String, Frames:Array, FrameRate:Number=0, Looped:Boolean=true){
super();
name = Name;
delay = 0;
if (FrameRate > 0){
delay = (1 / FrameRate);
};
frames = Frames;
looped = Looped;
}
}
}//package org.flixel.data
Section 137
//FlxConsole (org.flixel.data.FlxConsole)
package org.flixel.data {
import flash.display.*;
import org.flixel.*;
import flash.text.*;
public class FlxConsole extends Sprite {
protected const MAX_CONSOLE_LINES:uint = 0x0100;
protected var _lines:Array;
protected var _text:TextField;
protected var _fpsUpdate:Boolean;
protected var _console:Sprite;
protected var _Y:Number;
protected var _curFPS:uint;
protected var _fps:Array;
protected var _bx:int;
protected var _by:int;
protected var _fpsDisplay:TextField;
protected var _YT:Number;
protected var _byt:int;
public function FlxConsole(X:uint, Y:uint, Zoom:uint){
super();
visible = false;
x = (X * Zoom);
_by = (Y * Zoom);
_byt = (_by - (FlxG.height * Zoom));
_YT = (_Y = (y = _byt));
var tmp:Bitmap = new Bitmap(new BitmapData((FlxG.width * Zoom), (FlxG.height * Zoom), true, 2130706432));
addChild(tmp);
_fps = new Array(8);
_curFPS = 0;
_fpsUpdate = true;
_text = new TextField();
_text.width = tmp.width;
_text.height = tmp.height;
_text.multiline = true;
_text.wordWrap = true;
_text.embedFonts = true;
_text.antiAliasType = AntiAliasType.NORMAL;
_text.gridFitType = GridFitType.PIXEL;
_text.defaultTextFormat = new TextFormat("system", 8, 0xFFFFFF);
addChild(_text);
_fpsDisplay = new TextField();
_fpsDisplay.width = tmp.width;
_fpsDisplay.height = 20;
_fpsDisplay.multiline = true;
_fpsDisplay.wordWrap = true;
_fpsDisplay.embedFonts = true;
_fpsDisplay.antiAliasType = AntiAliasType.NORMAL;
_fpsDisplay.gridFitType = GridFitType.PIXEL;
_fpsDisplay.defaultTextFormat = new TextFormat("system", 16, 0xFFFFFF, true, null, null, null, null, "right");
addChild(_fpsDisplay);
_lines = new Array();
}
public function log(Text:String):void{
var newText:String;
var i:uint;
if (Text == null){
Text = "NULL";
};
trace(Text);
_lines.push(Text);
if (_lines.length > MAX_CONSOLE_LINES){
_lines.shift();
newText = "";
i = 0;
while (i < _lines.length) {
newText = (newText + (_lines[i] + "\n"));
i++;
};
_text.text = newText;
} else {
_text.appendText((Text + "\n"));
};
_text.scrollV = _text.height;
}
public function update():void{
var fps:uint;
var i:uint;
if (visible){
_fps[_curFPS] = (1 / FlxG.elapsed);
if (++_curFPS >= _fps.length){
_curFPS = 0;
};
_fpsUpdate = !(_fpsUpdate);
if (_fpsUpdate){
fps = 0;
i = 0;
while (i < _fps.length) {
fps = (fps + _fps[i]);
i++;
};
_fpsDisplay.text = (Math.floor((fps / _fps.length)) + " fps");
};
};
if (_Y < _YT){
_Y = (_Y + ((FlxG.height * 10) * FlxG.elapsed));
} else {
if (_Y > _YT){
_Y = (_Y - ((FlxG.height * 10) * FlxG.elapsed));
};
};
if (_Y > _by){
_Y = _by;
} else {
if (_Y < _byt){
_Y = _byt;
visible = false;
};
};
y = Math.floor(_Y);
}
public function toggle():void{
if (_YT == _by){
_YT = _byt;
} else {
_YT = _by;
visible = true;
};
}
}
}//package org.flixel.data
Section 138
//FlxFactory (org.flixel.data.FlxFactory)
package org.flixel.data {
import flash.events.*;
import flash.display.*;
import org.flixel.*;
import flash.text.*;
import flash.net.*;
import flash.utils.*;
public class FlxFactory extends MovieClip {
public var className:String;
protected var _bits:Array;
protected var _bmpBar:Bitmap;
private var ImgBar:Class;
private var ImgBit:Class;
public var myURL:String;
protected var _buffer:Sprite;
public function FlxFactory(){
var tmp:Bitmap;
var re:RegExp;
var fmt:TextFormat;
var txt:TextField;
ImgBar = FlxFactory_ImgBar;
ImgBit = FlxFactory_ImgBit;
super();
stop();
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
throw (new Error("Setting global debug flag..."));
//unresolved jump
var _slot1 = e;
re = /\[.*:[0-9]+\]/;
FlxG.debug = re.test(_slot1.getStackTrace());
if (((((!(FlxG.debug)) && (!((myURL == null))))) && ((myURL.length > 0)))){
tmp = new Bitmap(new BitmapData(stage.stageWidth, stage.stageHeight, true, 4294967295));
addChild(tmp);
fmt = new TextFormat();
fmt.color = 0;
fmt.size = 16;
fmt.align = "center";
fmt.bold = true;
txt = new TextField();
txt.width = (tmp.width - 16);
txt.height = (tmp.height - 16);
txt.y = 8;
txt.multiline = true;
txt.wordWrap = true;
txt.defaultTextFormat = fmt;
txt.text = (("Hi there! It looks like somebody copied this game without my permission. If you would like to play it at my site with NO annoying ads, just click anywhere, or copy-paste this URL into your browser.\n\n" + myURL) + "\n\nThanks, and have fun!");
addChild(txt);
txt.addEventListener(MouseEvent.CLICK, goToMyURL);
tmp.addEventListener(MouseEvent.CLICK, goToMyURL);
return;
};
_buffer = new Sprite();
_buffer.scaleX = 2;
_buffer.scaleY = 2;
addChild(_buffer);
_bmpBar = new ImgBar();
_bmpBar.x = (((stage.stageWidth / _buffer.scaleX) - _bmpBar.width) / 2);
_bmpBar.y = (((stage.stageHeight / _buffer.scaleY) - _bmpBar.height) / 2);
_buffer.addChild(_bmpBar);
_bits = new Array();
var i:uint;
while (i < 9) {
tmp = new ImgBit();
tmp.visible = false;
tmp.x = ((_bmpBar.x + 2) + (i * 3));
tmp.y = (_bmpBar.y + 2);
_bits.push(tmp);
_buffer.addChild(tmp);
i = (i + 1);
};
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
private function goToMyURL(event:MouseEvent=null):void{
navigateToURL(new URLRequest(("http://" + myURL)));
}
private function onEnterFrame(event:Event):void{
var i:int;
var mainClass:Class;
var app:Object;
var limit:uint;
graphics.clear();
if (framesLoaded == totalFrames){
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
nextFrame();
mainClass = Class(getDefinitionByName(className));
if (mainClass){
app = new (mainClass);
addChild((app as DisplayObject));
};
i = (_bits.length - 1);
while (i >= 0) {
_bits.pop();
i--;
};
removeChild(_buffer);
} else {
limit = ((root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal) * 10);
i = 0;
while ((((i < limit)) && ((i < _bits.length)))) {
_bits[i].visible = true;
i++;
};
};
}
}
}//package org.flixel.data
Section 139
//FlxFactory_ImgBar (org.flixel.data.FlxFactory_ImgBar)
package org.flixel.data {
import mx.core.*;
public class FlxFactory_ImgBar extends BitmapAsset {
}
}//package org.flixel.data
Section 140
//FlxFactory_ImgBit (org.flixel.data.FlxFactory_ImgBit)
package org.flixel.data {
import mx.core.*;
public class FlxFactory_ImgBit extends BitmapAsset {
}
}//package org.flixel.data
Section 141
//FlxFade (org.flixel.data.FlxFade)
package org.flixel.data {
import org.flixel.*;
public class FlxFade extends FlxSprite {
protected var _delay:Number;
protected var _complete:Function;
public function FlxFade(){
super();
createGraphic(FlxG.width, FlxG.height, 0, true);
scrollFactor.x = 0;
scrollFactor.y = 0;
visible = false;
}
override public function update():void{
if (((visible) && (!((alpha == 1))))){
alpha = (alpha + (FlxG.elapsed / _delay));
if (alpha >= 1){
alpha = 1;
if (_complete != null){
_complete();
};
};
};
}
public function restart(Color:uint=0, Duration:Number=1, FadeComplete:Function=null, Force:Boolean=false):void{
if (Duration == 0){
visible = false;
return;
};
if (((!(Force)) && (visible))){
return;
};
fill(Color);
_delay = Duration;
_complete = FadeComplete;
alpha = 0;
visible = true;
}
}
}//package org.flixel.data
Section 142
//FlxFlash (org.flixel.data.FlxFlash)
package org.flixel.data {
import org.flixel.*;
public class FlxFlash extends FlxSprite {
protected var _delay:Number;
protected var _complete:Function;
public function FlxFlash(){
super();
createGraphic(FlxG.width, FlxG.height, 0, true);
scrollFactor.x = 0;
scrollFactor.y = 0;
visible = false;
}
override public function update():void{
if (visible){
alpha = (alpha - (FlxG.elapsed / _delay));
if (alpha <= 0){
visible = false;
if (_complete != null){
_complete();
};
};
};
}
public function restart(Color:uint=4294967295, Duration:Number=1, FlashComplete:Function=null, Force:Boolean=false):void{
if (Duration == 0){
visible = false;
return;
};
if (((!(Force)) && (visible))){
return;
};
fill(Color);
_delay = Duration;
_complete = FlashComplete;
alpha = 1;
visible = true;
}
}
}//package org.flixel.data
Section 143
//FlxKeyboard (org.flixel.data.FlxKeyboard)
package org.flixel.data {
import flash.events.*;
public class FlxKeyboard {
protected const _t:uint = 0x0100;
public var RIGHT:Boolean;
public var LEFT:Boolean;
public var FOUR:Boolean;
public var TWO:Boolean;
public var CONTROL:Boolean;
public var A:Boolean;
public var B:Boolean;
public var C:Boolean;
public var D:Boolean;
public var E:Boolean;
public var ONE:Boolean;
public var G:Boolean;
public var H:Boolean;
public var I:Boolean;
public var J:Boolean;
public var K:Boolean;
public var F:Boolean;
public var N:Boolean;
public var O:Boolean;
public var Q:Boolean;
public var R:Boolean;
public var S:Boolean;
public var T:Boolean;
public var ESC:Boolean;
public var MINUS:Boolean;
public var Y:Boolean;
public var L:Boolean;
public var Z:Boolean;
public var QUOTE:Boolean;
public var V:Boolean;
public var X:Boolean;
public var P:Boolean;
public var SHIFT:Boolean;
public var SLASH:Boolean;
public var U:Boolean;
public var EIGHT:Boolean;
public var W:Boolean;
public var M:Boolean;
public var THREE:Boolean;
public var SEMICOLON:Boolean;
public var CAPSLOCK:Boolean;
protected var _lookup:Object;
public var PLUS:Boolean;
protected var _map:Array;
public var ZERO:Boolean;
public var DOWN:Boolean;
public var F1:Boolean;
public var F2:Boolean;
public var F3:Boolean;
public var F4:Boolean;
public var F5:Boolean;
public var F6:Boolean;
public var F7:Boolean;
public var NINE:Boolean;
public var F9:Boolean;
public var ALT:Boolean;
public var F8:Boolean;
public var DELETE:Boolean;
public var LBRACKET:Boolean;
public var UP:Boolean;
public var ENTER:Boolean;
public var FIVE:Boolean;
public var SIX:Boolean;
public var COMMA:Boolean;
public var PERIOD:Boolean;
public var BACKSLASH:Boolean;
public var F10:Boolean;
public var F11:Boolean;
public var F12:Boolean;
public var SEVEN:Boolean;
public var SPACE:Boolean;
public var RBRACKET:Boolean;
public function FlxKeyboard(){
super();
var i:uint;
_lookup = new Object();
_map = new Array(_t);
i = 65;
while (i <= 90) {
addKey(String.fromCharCode(i), i);
i++;
};
i = 48;
var _temp1 = i;
i = (i + 1);
addKey("ZERO", _temp1);
var _temp2 = i;
i = (i + 1);
addKey("ONE", _temp2);
var _temp3 = i;
i = (i + 1);
addKey("TWO", _temp3);
var _temp4 = i;
i = (i + 1);
addKey("THREE", _temp4);
var _temp5 = i;
i = (i + 1);
addKey("FOUR", _temp5);
var _temp6 = i;
i = (i + 1);
addKey("FIVE", _temp6);
var _temp7 = i;
i = (i + 1);
addKey("SIX", _temp7);
var _temp8 = i;
i = (i + 1);
addKey("SEVEN", _temp8);
var _temp9 = i;
i = (i + 1);
addKey("EIGHT", _temp9);
var _temp10 = i;
i = (i + 1);
addKey("NINE", _temp10);
i = 1;
while (i <= 12) {
addKey(("F" + i), (111 + i));
i++;
};
addKey("ESC", 27);
addKey("MINUS", 189);
addKey("PLUS", 187);
addKey("DELETE", 8);
addKey("LBRACKET", 219);
addKey("RBRACKET", 221);
addKey("BACKSLASH", 220);
addKey("CAPSLOCK", 20);
addKey("SEMICOLON", 186);
addKey("QUOTE", 222);
addKey("ENTER", 13);
addKey("SHIFT", 16);
addKey("COMMA", 188);
addKey("PERIOD", 190);
addKey("SLASH", 191);
addKey("CONTROL", 17);
addKey("ALT", 18);
addKey("SPACE", 32);
addKey("UP", 38);
addKey("DOWN", 40);
addKey("LEFT", 37);
addKey("RIGHT", 39);
}
public function handleKeyUp(event:KeyboardEvent):void{
var o:Object = _map[event.keyCode];
if (o == null){
return;
};
if (o.current > 0){
o.current = -1;
} else {
o.current = 0;
};
this[o.name] = false;
}
public function pressed(Key:String):Boolean{
return (this[Key]);
}
public function justReleased(Key:String):Boolean{
return ((_map[_lookup[Key]].current == -1));
}
public function handleKeyDown(event:KeyboardEvent):void{
var o:Object = _map[event.keyCode];
if (o == null){
return;
};
if (o.current > 0){
o.current = 1;
} else {
o.current = 2;
};
this[o.name] = true;
}
public function reset():void{
var o:Object;
var i:uint;
while (i < _t) {
if (_map[i] == null){
} else {
o = _map[i];
this[o.name] = false;
o.current = 0;
o.last = 0;
};
i++;
};
}
public function justPressed(Key:String):Boolean{
return ((_map[_lookup[Key]].current == 2));
}
public function update():void{
var o:Object;
var i:uint;
while (i < _t) {
if (_map[i] == null){
} else {
o = _map[i];
if ((((o.last == -1)) && ((o.current == -1)))){
o.current = 0;
} else {
if ((((o.last == 2)) && ((o.current == 2)))){
o.current = 1;
};
};
o.last = o.current;
};
i++;
};
}
protected function addKey(KeyName:String, KeyCode:uint):void{
_lookup[KeyName] = KeyCode;
_map[KeyCode] = {name:KeyName, current:0, last:0};
}
}
}//package org.flixel.data
Section 144
//FlxKong (org.flixel.data.FlxKong)
package org.flixel.data {
import flash.events.*;
import flash.display.*;
import flash.net.*;
public class FlxKong extends Sprite {
public var API;
public function FlxKong(){
super();
API = null;
}
public function init():void{
var paramObj:Object = LoaderInfo(root.loaderInfo).parameters;
var api_url:String = ((paramObj.api_path) || ("http://www.kongregate.com/flash/API_AS3_Local.swf"));
var request:URLRequest = new URLRequest(api_url);
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, APILoaded);
loader.load(request);
this.addChild(loader);
}
protected function APILoaded(event:Event):void{
API = event.target.content;
API.services.connect();
}
}
}//package org.flixel.data
Section 145
//FlxLogoPixel (org.flixel.data.FlxLogoPixel)
package org.flixel.data {
import flash.display.*;
public class FlxLogoPixel extends Sprite {
private var _curLayer:uint;
private var _layers:Array;
public function FlxLogoPixel(xPos:int, yPos:int, pixelSize:uint, index:uint, finalColor:uint){
super();
x = xPos;
y = yPos;
_layers = new Array();
var colors:Array = new Array(4294901760, 4278255360, 4278190335, 4294967040, 4278255615);
_layers.push(addChild(new Bitmap(new BitmapData(pixelSize, pixelSize, true, finalColor))));
var i:uint;
while (i < colors.length) {
_layers.push(addChild(new Bitmap(new BitmapData(pixelSize, pixelSize, true, colors[index]))));
++index;
if (index >= colors.length){
index = 0;
};
i++;
};
_curLayer = (_layers.length - 1);
}
public function update():void{
if (_curLayer == 0){
return;
};
if (_layers[_curLayer].alpha >= 0.1){
_layers[_curLayer].alpha = (_layers[_curLayer].alpha - 0.1);
} else {
_layers[_curLayer].alpha = 0;
_curLayer--;
};
}
}
}//package org.flixel.data
Section 146
//FlxMouse (org.flixel.data.FlxMouse)
package org.flixel.data {
import flash.events.*;
public class FlxMouse {
protected var _last:int;
public var x:int;
public var y:int;
protected var _current:int;
public function FlxMouse(){
super();
x = 0;
y = 0;
_current = 0;
_last = 0;
}
public function justReleased():Boolean{
return ((_current == -1));
}
public function pressed():Boolean{
return ((_current > 0));
}
public function handleMouseUp(event:MouseEvent):void{
if (_current > 0){
_current = -1;
} else {
_current = 0;
};
}
public function update(X:int, Y:int):void{
x = X;
y = Y;
if ((((_last == -1)) && ((_current == -1)))){
_current = 0;
} else {
if ((((_last == 2)) && ((_last == 2)))){
_current = 1;
};
};
_last = _current;
}
public function reset():void{
_current = 0;
_last = 0;
}
public function justPressed():Boolean{
return ((_current == 2));
}
public function handleMouseDown(event:MouseEvent):void{
if (_current > 0){
_current = 1;
} else {
_current = 2;
};
}
}
}//package org.flixel.data
Section 147
//FlxPanel (org.flixel.data.FlxPanel)
package org.flixel.data {
import org.flixel.*;
import flash.ui.*;
public class FlxPanel extends FlxCore {
protected var _close:FlxButton;
protected var _digg:FlxButton;
protected var _gameTitle:String;
protected var _closed:Boolean;
protected var _payPalID:String;
protected var _donate:FlxButton;
private var ImgClose:Class;
protected var _topBar:FlxSprite;
protected var _ty:Number;
protected var _caption:FlxText;
protected var _initialized:Boolean;
protected var _twitter:FlxButton;
protected var _delicious:FlxButton;
protected var _stumble:FlxButton;
private var ImgDelicious:Class;
private var ImgTwitter:Class;
protected var _mainBar:FlxSprite;
protected var _gameURL:String;
private var ImgStumble:Class;
private var ImgReddit:Class;
private var ImgDigg:Class;
protected var _bottomBar:FlxSprite;
protected var _payPalAmount:Number;
protected var _s:Number;
private var ImgDonate:Class;
protected var _reddit:FlxButton;
public function FlxPanel(){
ImgDonate = FlxPanel_ImgDonate;
ImgStumble = FlxPanel_ImgStumble;
ImgDigg = FlxPanel_ImgDigg;
ImgReddit = FlxPanel_ImgReddit;
ImgDelicious = FlxPanel_ImgDelicious;
ImgTwitter = FlxPanel_ImgTwitter;
ImgClose = FlxPanel_ImgClose;
super();
y = -21;
_ty = y;
_closed = false;
_initialized = false;
_topBar = new FlxSprite();
_topBar.createGraphic(FlxG.width, 1, 2147483647);
_topBar.scrollFactor.x = 0;
_topBar.scrollFactor.y = 0;
_mainBar = new FlxSprite();
_mainBar.createGraphic(FlxG.width, 19, 2130706432);
_mainBar.scrollFactor.x = 0;
_mainBar.scrollFactor.y = 0;
_bottomBar = new FlxSprite();
_bottomBar.createGraphic(FlxG.width, 1, 2147483647);
_bottomBar.scrollFactor.x = 0;
_bottomBar.scrollFactor.y = 0;
_donate = new FlxButton(3, 0, onDonate);
_donate.loadGraphic(new FlxSprite(0, 0, ImgDonate));
_donate.scrollFactor.x = 0;
_donate.scrollFactor.y = 0;
_stumble = new FlxButton(((((((FlxG.width / 2) - 6) - 13) - 6) - 13) - 6), 0, onStumble);
_stumble.loadGraphic(new FlxSprite(0, 0, ImgStumble));
_stumble.scrollFactor.x = 0;
_stumble.scrollFactor.y = 0;
_digg = new FlxButton(((((FlxG.width / 2) - 6) - 13) - 6), 0, onDigg);
_digg.loadGraphic(new FlxSprite(0, 0, ImgDigg));
_digg.scrollFactor.x = 0;
_digg.scrollFactor.y = 0;
_reddit = new FlxButton(((FlxG.width / 2) - 6), 0, onReddit);
_reddit.loadGraphic(new FlxSprite(0, 0, ImgReddit));
_reddit.scrollFactor.x = 0;
_reddit.scrollFactor.y = 0;
_delicious = new FlxButton((((FlxG.width / 2) + 7) + 6), 0, onDelicious);
_delicious.loadGraphic(new FlxSprite(0, 0, ImgDelicious));
_delicious.scrollFactor.x = 0;
_delicious.scrollFactor.y = 0;
_twitter = new FlxButton((((((FlxG.width / 2) + 7) + 6) + 12) + 6), 0, onTwitter);
_twitter.loadGraphic(new FlxSprite(0, 0, ImgTwitter));
_twitter.scrollFactor.x = 0;
_twitter.scrollFactor.y = 0;
_caption = new FlxText((FlxG.width / 2), 0, ((FlxG.width / 2) - 19), "");
_caption.alignment = "right";
_caption.scrollFactor.x = 0;
_caption.scrollFactor.y = 0;
_close = new FlxButton((FlxG.width - 16), 0, onClose);
_close.loadGraphic(new FlxSprite(0, 0, ImgClose));
_close.scrollFactor.x = 0;
_close.scrollFactor.y = 0;
hide();
_s = 50;
}
public function onDelicious():void{
FlxG.openURL(((("http://delicious.com/save?v=5&noui&jump=close&url=" + encodeURIComponent(_gameURL)) + "&title=") + encodeURIComponent(_gameTitle)));
}
public function init(PayPalID:String, PayPalAmount:Number, GameTitle:String, GameURL:String, Caption:String):void{
_payPalID = PayPalID;
if (_payPalID.length <= 0){
_donate.visible = false;
};
_payPalAmount = PayPalAmount;
_gameTitle = GameTitle;
_gameURL = GameURL;
_caption.text = Caption;
_initialized = true;
}
public function onTwitter():void{
FlxG.openURL(("http://twitter.com/home?status=Playing" + encodeURIComponent((((" " + _gameTitle) + " - ") + _gameURL))));
}
public function show(Top:Boolean=true):void{
if (!_initialized){
FlxG.log("SUPPORT PANEL ERROR: Uninitialized.\nYou forgot to call FlxGame.setupSupportPanel()\nfrom your game constructor.");
return;
};
if (_closed){
return;
};
if (Top){
y = -21;
_ty = -1;
} else {
y = FlxG.height;
_ty = (FlxG.height - 20);
};
Mouse.show();
visible = true;
}
public function onStumble():void{
FlxG.openURL(("http://www.stumbleupon.com/submit?url=" + encodeURIComponent(_gameURL)));
}
override public function render():void{
if (!_initialized){
return;
};
if (_topBar.visible){
_topBar.render();
};
if (_mainBar.visible){
_mainBar.render();
};
if (_bottomBar.visible){
_bottomBar.render();
};
if (_donate.visible){
_donate.render();
};
if (_stumble.visible){
_stumble.render();
};
if (_digg.visible){
_digg.render();
};
if (_reddit.visible){
_reddit.render();
};
if (_delicious.visible){
_delicious.render();
};
if (_twitter.visible){
_twitter.render();
};
if (_caption.visible){
_caption.render();
};
if (_close.visible){
_close.render();
};
}
public function onDigg():void{
FlxG.openURL(((("http://digg.com/submit?url=" + encodeURIComponent(_gameURL)) + "&title=") + encodeURIComponent(_gameTitle)));
}
public function onReddit():void{
FlxG.openURL(("http://www.reddit.com/submit?url=" + encodeURIComponent(_gameURL)));
}
public function onDonate():void{
FlxG.openURL(((((("https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=" + encodeURIComponent(_payPalID)) + "&item_name=") + encodeURIComponent(((_gameTitle + " Contribution (") + _gameURL))) + ")¤cy_code=USD&amount=") + _payPalAmount));
}
override public function update():void{
if (!_initialized){
return;
};
if (_ty != y){
if (y < _ty){
y = (y + (FlxG.elapsed * _s));
if (y > _ty){
y = _ty;
};
} else {
y = (y - (FlxG.elapsed * _s));
if (y < _ty){
y = _ty;
};
};
};
if ((((y <= -21)) || ((y > FlxG.height)))){
visible = false;
};
_topBar.y = y;
_mainBar.y = (y + 1);
_bottomBar.y = (y + 20);
_donate.y = (y + 4);
_stumble.y = (y + 4);
_digg.y = (y + 4);
_reddit.y = (y + 4);
_delicious.y = (y + 5);
_twitter.y = (y + 4);
_caption.y = (y + 4);
_close.y = (y + 4);
if (_donate.active){
_donate.update();
};
if (_stumble.active){
_stumble.update();
};
if (_digg.active){
_digg.update();
};
if (_reddit.active){
_reddit.update();
};
if (_delicious.active){
_delicious.update();
};
if (_twitter.active){
_twitter.update();
};
if (_caption.active){
_caption.update();
};
if (_close.active){
_close.update();
};
}
public function hide():void{
if (y < 0){
_ty = -21;
} else {
_ty = FlxG.height;
};
Mouse.hide();
visible = false;
}
public function onClose():void{
_closed = true;
hide();
}
}
}//package org.flixel.data
Section 148
//FlxPanel_ImgClose (org.flixel.data.FlxPanel_ImgClose)
package org.flixel.data {
import mx.core.*;
public class FlxPanel_ImgClose extends BitmapAsset {
}
}//package org.flixel.data
Section 149
//FlxPanel_ImgDelicious (org.flixel.data.FlxPanel_ImgDelicious)
package org.flixel.data {
import mx.core.*;
public class FlxPanel_ImgDelicious extends BitmapAsset {
}
}//package org.flixel.data
Section 150
//FlxPanel_ImgDigg (org.flixel.data.FlxPanel_ImgDigg)
package org.flixel.data {
import mx.core.*;
public class FlxPanel_ImgDigg extends BitmapAsset {
}
}//package org.flixel.data
Section 151
//FlxPanel_ImgDonate (org.flixel.data.FlxPanel_ImgDonate)
package org.flixel.data {
import mx.core.*;
public class FlxPanel_ImgDonate extends BitmapAsset {
}
}//package org.flixel.data
Section 152
//FlxPanel_ImgReddit (org.flixel.data.FlxPanel_ImgReddit)
package org.flixel.data {
import mx.core.*;
public class FlxPanel_ImgReddit extends BitmapAsset {
}
}//package org.flixel.data
Section 153
//FlxPanel_ImgStumble (org.flixel.data.FlxPanel_ImgStumble)
package org.flixel.data {
import mx.core.*;
public class FlxPanel_ImgStumble extends BitmapAsset {
}
}//package org.flixel.data
Section 154
//FlxPanel_ImgTwitter (org.flixel.data.FlxPanel_ImgTwitter)
package org.flixel.data {
import mx.core.*;
public class FlxPanel_ImgTwitter extends BitmapAsset {
}
}//package org.flixel.data
Section 155
//FlxPause (org.flixel.data.FlxPause)
package org.flixel.data {
import org.flixel.*;
public class FlxPause extends FlxLayer {
private var ImgKeyP:Class;
private var ImgKey0:Class;
private var ImgKeyPlus:Class;
private var ImgKeyMinus:Class;
public function FlxPause(){
var w:uint;
var h:uint;
ImgKeyMinus = FlxPause_ImgKeyMinus;
ImgKeyPlus = FlxPause_ImgKeyPlus;
ImgKey0 = FlxPause_ImgKey0;
ImgKeyP = FlxPause_ImgKeyP;
super();
scrollFactor.x = 0;
scrollFactor.y = 0;
w = 80;
h = 92;
x = ((FlxG.width - w) / 2);
y = ((FlxG.height - h) / 2);
add(new FlxSprite().createGraphic(w, h, 2852126720, true), true);
(add(new FlxText(0, 0, w, "this game is"), true) as FlxText).alignment = "center";
add(new FlxText(0, 10, w, "PAUSED").setFormat(null, 16, 0xFFFFFF, "center"), true);
add(new FlxSprite(4, 36, ImgKeyP), true);
add(new FlxText(16, 36, (w - 16), "Pause Game"), true);
add(new FlxSprite(4, 50, ImgKey0), true);
add(new FlxText(16, 50, (w - 16), "Mute Sound"), true);
add(new FlxSprite(4, 64, ImgKeyMinus), true);
add(new FlxText(16, 64, (w - 16), "Sound Down"), true);
add(new FlxSprite(4, 78, ImgKeyPlus), true);
add(new FlxText(16, 78, (w - 16), "Sound Up"), true);
}
}
}//package org.flixel.data
Section 156
//FlxPause_ImgKey0 (org.flixel.data.FlxPause_ImgKey0)
package org.flixel.data {
import mx.core.*;
public class FlxPause_ImgKey0 extends BitmapAsset {
}
}//package org.flixel.data
Section 157
//FlxPause_ImgKeyMinus (org.flixel.data.FlxPause_ImgKeyMinus)
package org.flixel.data {
import mx.core.*;
public class FlxPause_ImgKeyMinus extends BitmapAsset {
}
}//package org.flixel.data
Section 158
//FlxPause_ImgKeyP (org.flixel.data.FlxPause_ImgKeyP)
package org.flixel.data {
import mx.core.*;
public class FlxPause_ImgKeyP extends BitmapAsset {
}
}//package org.flixel.data
Section 159
//FlxPause_ImgKeyPlus (org.flixel.data.FlxPause_ImgKeyPlus)
package org.flixel.data {
import mx.core.*;
public class FlxPause_ImgKeyPlus extends BitmapAsset {
}
}//package org.flixel.data
Section 160
//FlxQuake (org.flixel.data.FlxQuake)
package org.flixel.data {
import org.flixel.*;
public class FlxQuake {
public var y:int;
protected var _timer:Number;
protected var _intensity:Number;
public var x:int;
protected var _zoom:uint;
public function FlxQuake(Zoom:uint){
super();
_zoom = Zoom;
reset(0);
}
public function update():void{
if (_timer > 0){
_timer = (_timer - FlxG.elapsed);
if (_timer <= 0){
_timer = 0;
x = 0;
y = 0;
} else {
x = (((((Math.random() * _intensity) * FlxG.width) * 2) - (_intensity * FlxG.width)) * _zoom);
y = (((((Math.random() * _intensity) * FlxG.height) * 2) - (_intensity * FlxG.height)) * _zoom);
};
};
}
public function reset(Intensity:Number, Duration:Number=0.5):void{
x = 0;
y = 0;
_intensity = Intensity;
if (_intensity == 0){
_timer = 0;
return;
};
_timer = Duration;
}
}
}//package org.flixel.data
Section 161
//FlxButton (org.flixel.FlxButton)
package org.flixel {
import flash.events.*;
import flash.geom.*;
public class FlxButton extends FlxCore {
protected var _onTO:Point;
protected var _sf:Point;
protected var _offT:FlxText;
protected var _initialized:Boolean;
protected var _onT:FlxText;
protected var _pressed:Boolean;
protected var _callback:Function;
protected var _off:FlxSprite;
protected var _onToggle:Boolean;
protected var _offTO:Point;
protected var _on:FlxSprite;
public function FlxButton(X:int, Y:int, Callback:Function){
super();
x = X;
y = Y;
width = 100;
height = 20;
_off = new FlxSprite();
_off.createGraphic(width, height, 4286545791);
_off.scrollFactor = scrollFactor;
_on = new FlxSprite();
_on.createGraphic(width, height, 4294967295);
_on.scrollFactor = scrollFactor;
_callback = Callback;
_onToggle = false;
_pressed = false;
updatePositions();
_initialized = false;
_sf = null;
}
override public function update():void{
if (!_initialized){
if (FlxG.state == null){
return;
};
if (FlxG.state.parent == null){
return;
};
if (FlxG.state.parent.stage == null){
return;
};
FlxG.state.parent.stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
_initialized = true;
};
if (_sf != scrollFactor){
_sf = scrollFactor;
if (_off != null){
_off.scrollFactor = _sf;
};
if (_on != null){
_on.scrollFactor = _sf;
};
if (_offT != null){
_offT.scrollFactor = _sf;
};
if (_onT != null){
_onT.scrollFactor = _sf;
};
};
super.update();
if (((((!((_off == null))) && (_off.exists))) && (_off.active))){
_off.update();
};
if (((((!((_on == null))) && (_on.exists))) && (_on.active))){
_on.update();
};
if (_offT != null){
if (((((!((_offT == null))) && (_offT.exists))) && (_offT.active))){
_offT.update();
};
if (((((!((_onT == null))) && (_onT.exists))) && (_onT.active))){
_onT.update();
};
};
visibility(false);
if (_off.overlapsPoint(FlxG.mouse.x, FlxG.mouse.y)){
if (!FlxG.mouse.pressed()){
_pressed = false;
} else {
if (!_pressed){
_pressed = true;
};
};
visibility(!(_pressed));
};
if (_onToggle){
visibility(_off.visible);
};
updatePositions();
}
public function switchOn():void{
_onToggle = true;
}
protected function onMouseUp(event:MouseEvent):void{
if (((((((((!(exists)) || (!(visible)))) || (!(active)))) || (!(FlxG.mouse.justReleased())))) || ((_callback == null)))){
return;
};
if (_off.overlapsPoint((FlxG.mouse.x + ((1 - scrollFactor.x) * FlxG.scroll.x)), (FlxG.mouse.y + ((1 - scrollFactor.y) * FlxG.scroll.y)))){
_callback();
};
}
override public function destroy():void{
FlxG.state.parent.stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp);
}
protected function visibility(On:Boolean):void{
if (On){
_off.visible = false;
if (_offT != null){
_offT.visible = false;
};
_on.visible = true;
if (_onT != null){
_onT.visible = true;
};
} else {
_on.visible = false;
if (_onT != null){
_onT.visible = false;
};
_off.visible = true;
if (_offT != null){
_offT.visible = true;
};
};
}
public function switchOff():void{
_onToggle = false;
}
public function on():Boolean{
return (_onToggle);
}
protected function updatePositions():void{
_off.x = x;
_off.y = y;
if (_offT){
_offT.x = (_offTO.x + x);
_offT.y = (_offTO.y + y);
};
_on.x = x;
_on.y = y;
if (_onT){
_onT.x = (_onTO.x + x);
_onT.y = (_onTO.y + y);
};
}
public function loadGraphic(Image:FlxSprite, ImageHighlight:FlxSprite=null):FlxButton{
_off = Image;
_off.scrollFactor = scrollFactor;
if (ImageHighlight == null){
_on = _off;
} else {
_on = ImageHighlight;
};
_on.scrollFactor = scrollFactor;
width = _off.width;
height = _off.height;
updatePositions();
return (this);
}
override public function render():void{
super.render();
if (((((!((_off == null))) && (_off.exists))) && (_off.visible))){
_off.render();
};
if (((((!((_on == null))) && (_on.exists))) && (_on.visible))){
_on.render();
};
if (_offT != null){
if (((((!((_offT == null))) && (_offT.exists))) && (_offT.visible))){
_offT.render();
};
if (((((!((_onT == null))) && (_onT.exists))) && (_onT.visible))){
_onT.render();
};
};
}
public function loadText(Text:FlxText, TextHighlight:FlxText=null):FlxButton{
if (Text != null){
_offT = Text;
};
if (TextHighlight == null){
_onT = _offT;
} else {
_onT = TextHighlight;
};
if (_offT != null){
_offTO = new Point(_offT.x, _offT.y);
};
if (_onT != null){
_onTO = new Point(_onT.x, _onT.y);
};
_offT.scrollFactor = scrollFactor;
_onT.scrollFactor = scrollFactor;
updatePositions();
return (this);
}
}
}//package org.flixel
Section 162
//FlxCore (org.flixel.FlxCore)
package org.flixel {
import flash.geom.*;
public class FlxCore {
public var y:Number;
public var active:Boolean;
public var x:Number;
public var visible:Boolean;
protected var _flickerTimer:Number;
public var width:uint;
public var last:Point;
public var exists:Boolean;
public var height:uint;
public var dead:Boolean;
public var fixed:Boolean;
protected var _flicker:Boolean;
public var scrollFactor:Point;
public function FlxCore(){
super();
exists = true;
active = true;
visible = true;
dead = false;
fixed = false;
width = 0;
height = 0;
x = 0;
y = 0;
last = new Point(x, y);
scrollFactor = new Point(1, 1);
_flicker = false;
_flickerTimer = -1;
}
public function onScreen():Boolean{
var p:Point = new Point();
getScreenXY(p);
if (((((((((p.x + width) < 0)) || ((p.x > FlxG.width)))) || (((p.y + height) < 0)))) || ((p.y > FlxG.height)))){
return (false);
};
return (true);
}
public function hitWall(Contact:FlxCore=null):Boolean{
return (true);
}
public function collideArrayY(Cores:Array):void{
var core:FlxCore;
if (((!(exists)) || (dead))){
return;
};
var l:uint = Cores.length;
var i:uint;
while (i < l) {
core = Cores[i];
if ((((((((core === this)) || ((core == null)))) || (!(core.exists)))) || (core.dead))){
} else {
collideY(core);
};
i++;
};
}
public function update():void{
last.x = x;
last.y = y;
if (flickering()){
if (_flickerTimer > 0){
_flickerTimer = (_flickerTimer - FlxG.elapsed);
if (_flickerTimer == 0){
_flickerTimer = -1;
};
};
if (_flickerTimer < 0){
flicker(-1);
} else {
_flicker = !(_flicker);
visible = !(_flicker);
};
};
}
public function reset(X:Number, Y:Number):void{
exists = true;
active = true;
visible = true;
dead = false;
last.x = (x = X);
last.y = (y = Y);
}
public function flicker(Duration:Number=1):void{
_flickerTimer = Duration;
if (_flickerTimer < 0){
_flicker = false;
visible = true;
};
}
public function overlapsPoint(X:Number, Y:Number, PerPixel:Boolean=false):Boolean{
var tx:Number = x;
var ty:Number = y;
if (((!((scrollFactor.x == 1))) || (!((scrollFactor.y == 1))))){
tx = (tx - Math.floor((FlxG.scroll.x * (1 - scrollFactor.x))));
ty = (ty - Math.floor((FlxG.scroll.y * (1 - scrollFactor.y))));
};
if ((((((((X <= tx)) || ((X >= (tx + width))))) || ((Y <= ty)))) || ((Y >= (ty + height))))){
return (false);
};
return (true);
}
public function collideX(Core:FlxCore):Boolean{
var split:Number;
var cbmx:Number;
var cbmy:Number;
var tbmx:Number;
var tbmy:Number;
var thisBounds:Rectangle = new Rectangle();
var coreBounds:Rectangle = new Rectangle();
if (Core.x > Core.last.x){
coreBounds.x = Core.last.x;
coreBounds.width = ((Core.x - Core.last.x) + Core.width);
} else {
coreBounds.x = Core.x;
coreBounds.width = ((Core.last.x - Core.x) + Core.width);
};
coreBounds.y = Core.last.y;
coreBounds.height = Core.height;
if (x > last.x){
thisBounds.x = last.x;
thisBounds.width = ((x - last.x) + width);
} else {
thisBounds.x = x;
thisBounds.width = ((last.x - x) + width);
};
thisBounds.y = last.y;
thisBounds.height = height;
if (((((((((coreBounds.x + coreBounds.width) <= thisBounds.x)) || ((coreBounds.x >= (thisBounds.x + thisBounds.width))))) || (((coreBounds.y + coreBounds.height) <= thisBounds.y)))) || ((coreBounds.y >= (thisBounds.y + thisBounds.height))))){
return (false);
};
var ctp:Number = (Core.x - Core.last.x);
var ttp:Number = (x - last.x);
var tco:Boolean = (((Core.x < (x + width))) && (((Core.x + Core.width) > x)));
if ((((((((ctp > 0)) && ((ttp <= 0)))) || ((((ctp >= 0)) && ((((ctp > ttp)) && (tco))))))) || ((((ctp <= 0)) && ((((-(ctp) < -(ttp))) && (tco))))))){
if (((fixed) && (!(Core.fixed)))){
if (Core.hitWall(this)){
Core.x = (x - Core.width);
return (true);
};
} else {
if (((!(fixed)) && (Core.fixed))){
if (hitWall(Core)){
x = (Core.x + Core.width);
return (true);
};
} else {
if (((Core.hitWall(this)) && (hitWall(Core)))){
split = ((coreBounds.right - thisBounds.left) / 2);
Core.x = (Core.x - split);
x = (x + split);
return (true);
};
};
};
} else {
if ((((((((ctp < 0)) && ((ttp >= 0)))) || ((((ctp >= 0)) && ((((ctp < ttp)) && (tco))))))) || ((((ctp <= 0)) && ((((-(ctp) > -(ttp))) && (tco))))))){
if (coreBounds.left < thisBounds.right){
if (((fixed) && (!(Core.fixed)))){
if (Core.hitWall(this)){
Core.x = (x + width);
return (true);
};
} else {
if (((!(fixed)) && (Core.fixed))){
if (hitWall(Core)){
x = (Core.x - width);
return (true);
};
} else {
if (((Core.hitWall(this)) && (hitWall(Core)))){
split = ((thisBounds.right - coreBounds.left) / 2);
Core.x = (Core.x + split);
x = (x - split);
return (true);
};
};
};
};
} else {
cbmx = (coreBounds.x + (coreBounds.width / 2));
cbmy = (coreBounds.y + (coreBounds.height / 2));
tbmx = (thisBounds.x + (thisBounds.width / 2));
tbmy = (thisBounds.y + (thisBounds.height / 2));
if (Math.abs((cbmx - tbmx)) > Math.abs((cbmy - tbmy))){
if (cbmx > tbmx){
if (((fixed) && (!(Core.fixed)))){
if (Core.hitWall(this)){
Core.x = (x + width);
return (true);
};
} else {
if (((!(fixed)) && (Core.fixed))){
if (hitWall(Core)){
x = (Core.x - width);
return (true);
};
} else {
if (((Core.hitWall(this)) && (hitWall(Core)))){
split = ((thisBounds.right - coreBounds.left) / 2);
Core.x = (Core.x + split);
x = (x - split);
return (true);
};
};
};
} else {
if (((fixed) && (!(Core.fixed)))){
if (Core.hitWall(this)){
Core.x = (x - Core.width);
return (true);
};
} else {
if (((!(fixed)) && (Core.fixed))){
if (hitWall(Core)){
x = (Core.x + Core.width);
return (true);
};
} else {
if (((Core.hitWall(this)) && (hitWall(Core)))){
split = ((coreBounds.right - thisBounds.left) / 2);
Core.x = (Core.x - split);
x = (x + split);
return (true);
};
};
};
};
} else {
if (cbmy > tbmy){
if (coreBounds.top < thisBounds.bottom){
if (((fixed) && (!(Core.fixed)))){
if (Core.hitCeiling(this)){
Core.y = (y + height);
return (true);
};
} else {
if (((!(fixed)) && (Core.fixed))){
if (hitFloor(Core)){
y = (Core.y - height);
return (true);
};
} else {
if (((Core.hitCeiling(this)) && (hitFloor(Core)))){
split = ((thisBounds.bottom - coreBounds.top) / 2);
Core.y = (Core.y + split);
y = (y - split);
return (true);
};
};
};
};
} else {
if (((fixed) && (!(Core.fixed)))){
if (Core.hitFloor(this)){
Core.y = (y - Core.height);
return (true);
};
} else {
if (((!(fixed)) && (Core.fixed))){
if (hitCeiling(Core)){
y = (Core.y + Core.height);
return (true);
};
} else {
if (((Core.hitFloor(this)) && (hitCeiling(Core)))){
split = ((coreBounds.bottom - thisBounds.top) / 2);
Core.y = (Core.y - split);
y = (y + split);
return (true);
};
};
};
};
};
};
};
return (true);
}
public function render():void{
}
public function kill():void{
exists = false;
dead = true;
}
public function collideY(Core:FlxCore):Boolean{
var split:Number;
var cbmx:Number;
var cbmy:Number;
var tbmx:Number;
var tbmy:Number;
var thisBounds:Rectangle = new Rectangle();
var coreBounds:Rectangle = new Rectangle();
if (Core.y > Core.last.y){
coreBounds.y = Core.last.y;
coreBounds.height = ((Core.y - Core.last.y) + Core.height);
} else {
coreBounds.y = Core.y;
coreBounds.height = ((Core.last.y - Core.y) + Core.height);
};
coreBounds.x = Core.x;
coreBounds.width = Core.width;
if (y > last.y){
thisBounds.y = last.y;
thisBounds.height = ((y - last.y) + height);
} else {
thisBounds.y = y;
thisBounds.height = ((last.y - y) + height);
};
thisBounds.x = x;
thisBounds.width = width;
if (((((((((coreBounds.x + coreBounds.width) <= thisBounds.x)) || ((coreBounds.x >= (thisBounds.x + thisBounds.width))))) || (((coreBounds.y + coreBounds.height) <= thisBounds.y)))) || ((coreBounds.y >= (thisBounds.y + thisBounds.height))))){
return (false);
};
var ctp:Number = (Core.y - Core.last.y);
var ttp:Number = (y - last.y);
var tco:Boolean = (((Core.y < (y + height))) && (((Core.y + Core.height) > y)));
if ((((((((ctp > 0)) && ((ttp <= 0)))) || ((((ctp >= 0)) && ((((ctp > ttp)) && (tco))))))) || ((((ctp <= 0)) && ((((-(ctp) < -(ttp))) && (tco))))))){
if (coreBounds.bottom > thisBounds.top){
if (((fixed) && (!(Core.fixed)))){
if (Core.hitFloor(this)){
Core.y = (y - Core.height);
return (true);
};
} else {
if (((!(fixed)) && (Core.fixed))){
if (hitCeiling(Core)){
y = (Core.y + Core.height);
return (true);
};
} else {
if (((Core.hitFloor(this)) && (hitCeiling(Core)))){
split = ((coreBounds.bottom - thisBounds.top) / 2);
Core.y = (Core.y - split);
y = (y + split);
return (true);
};
};
};
};
} else {
if ((((((((ctp < 0)) && ((ttp >= 0)))) || ((((ctp >= 0)) && ((((ctp < ttp)) && (tco))))))) || ((((ctp <= 0)) && ((((-(ctp) > -(ttp))) && (tco))))))){
if (coreBounds.top < thisBounds.bottom){
if (((fixed) && (!(Core.fixed)))){
if (Core.hitCeiling(this)){
Core.y = (y + height);
return (true);
};
} else {
if (((!(fixed)) && (Core.fixed))){
if (hitFloor(Core)){
y = (Core.y - height);
return (true);
};
} else {
if (((Core.hitCeiling(this)) && (hitFloor(Core)))){
split = ((thisBounds.bottom - coreBounds.top) / 2);
Core.y = (Core.y + split);
y = (y - split);
return (true);
};
};
};
};
} else {
cbmx = (coreBounds.x + (coreBounds.width / 2));
cbmy = (coreBounds.y + (coreBounds.height / 2));
tbmx = (thisBounds.x + (thisBounds.width / 2));
tbmy = (thisBounds.y + (thisBounds.height / 2));
if (Math.abs((cbmx - tbmx)) > Math.abs((cbmy - tbmy))){
if (cbmx > tbmx){
if (((fixed) && (!(Core.fixed)))){
if (Core.hitWall(this)){
Core.x = (x + width);
return (true);
};
} else {
if (((!(fixed)) && (Core.fixed))){
if (hitWall(Core)){
x = (Core.x - width);
return (true);
};
} else {
if (((Core.hitWall(this)) && (hitWall(Core)))){
split = ((thisBounds.right - coreBounds.left) / 2);
Core.x = (Core.x + split);
x = (x - split);
return (true);
};
};
};
} else {
if (((fixed) && (!(Core.fixed)))){
if (Core.hitWall(this)){
Core.x = (x - Core.width);
return (true);
};
} else {
if (((!(fixed)) && (Core.fixed))){
if (hitWall(Core)){
x = (Core.x + Core.width);
return (true);
};
} else {
if (((Core.hitWall(this)) && (hitWall(Core)))){
split = ((coreBounds.right - thisBounds.left) / 2);
Core.x = (Core.x - split);
x = (x + split);
return (true);
};
};
};
};
} else {
if (cbmy > tbmy){
if (coreBounds.top < thisBounds.bottom){
if (((fixed) && (!(Core.fixed)))){
if (Core.hitCeiling(this)){
Core.y = (y + height);
return (true);
};
} else {
if (((!(fixed)) && (Core.fixed))){
if (hitFloor(Core)){
y = (Core.y - height);
return (true);
};
} else {
if (((Core.hitCeiling(this)) && (hitFloor(Core)))){
split = ((thisBounds.bottom - coreBounds.top) / 2);
Core.y = (Core.y + split);
y = (y - split);
return (true);
};
};
};
};
} else {
if (((fixed) && (!(Core.fixed)))){
if (Core.hitFloor(this)){
Core.y = (y - Core.height);
return (true);
};
} else {
if (((!(fixed)) && (Core.fixed))){
if (hitCeiling(Core)){
y = (Core.y + Core.height);
return (true);
};
} else {
if (((Core.hitFloor(this)) && (hitCeiling(Core)))){
split = ((coreBounds.bottom - thisBounds.top) / 2);
Core.y = (Core.y - split);
y = (y + split);
return (true);
};
};
};
};
};
};
};
return (true);
}
public function getScreenXY(P:Point=null):Point{
if (P == null){
P = new Point();
};
P.x = (Math.floor(x) + Math.floor((FlxG.scroll.x * scrollFactor.x)));
P.y = (Math.floor(y) + Math.floor((FlxG.scroll.y * scrollFactor.y)));
return (P);
}
public function hitFloor(Contact:FlxCore=null):Boolean{
return (true);
}
public function hitCeiling(Contact:FlxCore=null):Boolean{
return (true);
}
public function overlaps(Core:FlxCore):Boolean{
var tx:Number = x;
var ty:Number = y;
if (((!((scrollFactor.x == 1))) || (!((scrollFactor.y == 1))))){
tx = (tx - Math.floor((FlxG.scroll.x * (1 - scrollFactor.x))));
ty = (ty - Math.floor((FlxG.scroll.y * (1 - scrollFactor.y))));
};
var cx:Number = Core.x;
var cy:Number = Core.y;
if (((!((Core.scrollFactor.x == 1))) || (!((Core.scrollFactor.y == 1))))){
cx = (cx - Math.floor((FlxG.scroll.x * (1 - Core.scrollFactor.x))));
cy = (cy - Math.floor((FlxG.scroll.y * (1 - Core.scrollFactor.y))));
};
if ((((((((cx <= (tx - Core.width))) || ((cx >= (tx + width))))) || ((cy <= (ty - Core.height))))) || ((cy >= (ty + height))))){
return (false);
};
return (true);
}
public function flickering():Boolean{
return ((_flickerTimer >= 0));
}
public function destroy():void{
}
public function collideArray(Cores:Array):void{
var core:FlxCore;
if (((!(exists)) || (dead))){
return;
};
var l:uint = Cores.length;
var i:uint;
while (i < l) {
core = Cores[i];
if ((((((((core === this)) || ((core == null)))) || (!(core.exists)))) || (core.dead))){
} else {
collide(core);
};
i++;
};
}
public function collideArrayX(Cores:Array):void{
var core:FlxCore;
if (((!(exists)) || (dead))){
return;
};
var l:uint = Cores.length;
var i:uint;
while (i < l) {
core = Cores[i];
if ((((((((core === this)) || ((core == null)))) || (!(core.exists)))) || (core.dead))){
} else {
collideX(core);
};
i++;
};
}
public function collide(Core:FlxCore):Boolean{
var hx:Boolean = collideX(Core);
var hy:Boolean = collideY(Core);
return (((hx) || (hy)));
}
}
}//package org.flixel
Section 163
//FlxEmitter (org.flixel.FlxEmitter)
package org.flixel {
import flash.geom.*;
public class FlxEmitter extends FlxCore {
public var delay:Number;
public var maxRotation:Number;
protected var _timer:Number;
public var gravity:Number;
public var minVelocity:Point;
protected var _sprites:Array;
public var alpha:Number;
public var maxVelocity:Point;
protected var _particle:uint;
public var minRotation:Number;
public var drag:Number;
public function FlxEmitter(X:Number=0, Y:Number=0, Delay:Number=0.1){
super();
visible = false;
x = X;
y = Y;
width = 0;
height = 0;
alpha = 1;
minVelocity = new Point(-100, -100);
maxVelocity = new Point(100, 100);
minRotation = -360;
maxRotation = 360;
gravity = 400;
drag = 0;
delay = Delay;
_sprites = null;
kill();
}
public function setRotation(Min:Number=0, Max:Number=0):void{
minRotation = Min;
maxRotation = Max;
}
public function loadSprites(Sprites:Array):FlxEmitter{
_sprites = Sprites;
var sl:uint = _sprites.length;
var i:uint;
while (i < sl) {
_sprites[i].scrollFactor = scrollFactor;
i++;
};
kill();
if (delay > 0){
restart();
};
return (this);
}
override public function update():void{
var sl:uint;
var i:uint;
_timer = (_timer + FlxG.elapsed);
if (delay < 0){
if (_timer > -(delay)){
kill();
return;
};
if (_sprites[0].exists){
return;
};
sl = _sprites.length;
i = 0;
while (i < sl) {
emit();
i++;
};
return;
};
while (_timer > delay) {
_timer = (_timer - delay);
emit();
};
}
public function setSize(Width:uint, Height:uint):void{
width = Width;
height = Height;
}
public function emit():void{
var s:FlxSprite = _sprites[_particle];
s.reset(((x - (s.width >> 1)) + (FlxG.random() * width)), ((y - (s.height >> 1)) + (FlxG.random() * height)));
s.velocity.x = minVelocity.x;
if (minVelocity.x != maxVelocity.x){
s.velocity.x = (s.velocity.x + (FlxG.random() * (maxVelocity.x - minVelocity.x)));
};
s.velocity.y = minVelocity.y;
if (minVelocity.y != maxVelocity.y){
s.velocity.y = (s.velocity.y + (FlxG.random() * (maxVelocity.y - minVelocity.y)));
};
s.acceleration.y = gravity;
s.angularVelocity = minRotation;
if (minRotation != maxRotation){
s.angularVelocity = (s.angularVelocity + (FlxG.random() * (maxRotation - minRotation)));
};
if (s.angularVelocity != 0){
s.angle = ((FlxG.random() * 360) - 180);
};
s.drag.x = drag;
s.drag.y = drag;
_particle++;
if (_particle >= _sprites.length){
_particle = 0;
};
s.onEmit();
}
public function restart():void{
if (_sprites == null){
FlxG.log("ERROR: You must attach sprites to an emitter for it to work.\nSee FlxEmitter.loadSprites() and FlxEmitter.createSprites() for more info.");
return;
};
active = true;
_timer = 0;
_particle = 0;
}
public function createSprites(Graphics:Class, Quantity:uint=50, Multiple:Boolean=true, Parent:FlxLayer=null):FlxEmitter{
var i:uint;
var sl:uint;
var s:FlxSprite;
var d:FlxSprite;
_sprites = new Array();
i = 0;
while (i < Quantity) {
if (Multiple){
s = new FlxSprite();
s.alpha = this.alpha;
s.loadGraphic(Graphics, true);
s.randomFrame();
_sprites.push(s);
} else {
d = new FlxSprite(0, 0, Graphics);
d.alpha = this.alpha;
_sprites.push(d);
};
i++;
};
sl = _sprites.length;
i = 0;
while (i < sl) {
if (Parent == null){
FlxG.state.add(_sprites[i]);
} else {
Parent.add(_sprites[i]);
};
_sprites[i].scrollFactor = scrollFactor;
i++;
};
kill();
if (delay > 0){
restart();
};
return (this);
}
override public function kill():void{
active = false;
if (_sprites == null){
return;
};
var sl:uint = _sprites.length;
var i:uint;
while (i < sl) {
_sprites[i].exists = false;
i++;
};
}
public function setXVelocity(Min:Number=0, Max:Number=0):void{
minVelocity.x = Min;
maxVelocity.x = Max;
}
public function setYVelocity(Min:Number=0, Max:Number=0):void{
minVelocity.y = Min;
maxVelocity.y = Max;
}
}
}//package org.flixel
Section 164
//FlxG (org.flixel.FlxG)
package org.flixel {
import flash.display.*;
import flash.geom.*;
import org.flixel.data.*;
import flash.net.*;
import flash.utils.*;
public class FlxG {
protected static var ImgDefaultCursor:Class = FlxG_ImgDefaultCursor;
public static var kong:FlxKong;
public static var scores:Array;
public static var music:FlxSound;
public static var height:uint;
protected static var _volume:Number;
public static var buffer:BitmapData;
public static var sounds:Array;
protected static var _seed:Number;
public static var debug:Boolean;
public static var LIBRARY_MINOR_VERSION:uint = 57;
public static var LIBRARY_MAJOR_VERSION:uint = 1;
public static var levels:Array;
public static var elapsed:Number;
public static var save:int;
protected static var _cache:Object;
public static var level:int;
public static var state:FlxState;
public static var score:int;
public static var saves:Array;
protected static var _scrollTarget:Point;
public static var followTarget:FlxCore;
public static var mouse:FlxMouse;
public static var followLead:Point;
public static var LIBRARY_NAME:String = "flixel";
protected static var _originalSeed:Number;
public static var followLerp:Number;
public static var width:uint;
public static var dilation:Number;
protected static var _game:FlxGame;
public static var scroll:Point;
public static var followMin:Point;
public static var followMax:Point;
public static var keys:FlxKeyboard;
protected static var _pause:Boolean;
protected static var _mute:Boolean;
public function FlxG(){
super();
}
public static function flash(Color:uint, Duration:Number=1, FlashComplete:Function=null, Force:Boolean=false):void{
_game._flash.restart(Color, Duration, FlashComplete, Force);
}
public static function collideArrays(Cores1:Array, Cores2:Array):Boolean{
var i:uint;
var j:uint;
var core1:FlxCore;
var core2:FlxCore;
var c:Boolean;
var l1:uint = Cores1.length;
var l2:uint = Cores2.length;
if (Cores1 === Cores2){
i = 0;
while (i < l1) {
core1 = Cores1[i];
if ((((((core1 == null)) || (!(core1.exists)))) || (core1.dead))){
} else {
j = (i + 1);
while (j < l2) {
core2 = Cores2[j];
if ((((((core2 == null)) || (!(core2.exists)))) || (core2.dead))){
} else {
if (core1.collide(core2)){
c = true;
};
};
j++;
};
};
i++;
};
} else {
i = 0;
while (i < l1) {
core1 = Cores1[i];
if ((((((core1 == null)) || (!(core1.exists)))) || (core1.dead))){
} else {
j = 0;
while (j < l2) {
core2 = Cores2[j];
if ((((((((core1 === core2)) || ((core2 == null)))) || (!(core2.exists)))) || (core2.dead))){
} else {
if (core1.collide(core2)){
c = true;
};
};
j++;
};
};
i++;
};
};
return (c);
}
public static function get mute():Boolean{
return (_mute);
}
public static function get volume():Number{
return (_volume);
}
protected static function changeSounds():void{
if (((!((music == null))) && (music.active))){
music.updateTransform();
};
var sl:uint = sounds.length;
var i:uint;
while (i < sl) {
if (sounds[i].active){
sounds[i].updateTransform();
};
i++;
};
}
static function doFollow():void{
if (followTarget != null){
if (((followTarget.exists) && (!(followTarget.dead)))){
_scrollTarget.x = ((((width >> 1) - followTarget.x) - (followTarget.width >> 1)) + (followTarget as FlxSprite).offset.x);
_scrollTarget.y = ((((height >> 1) - followTarget.y) - (followTarget.height >> 1)) + (followTarget as FlxSprite).offset.y);
if (((!((followLead == null))) && ((followTarget is FlxSprite)))){
_scrollTarget.x = (_scrollTarget.x - ((followTarget as FlxSprite).velocity.x * followLead.x));
_scrollTarget.y = (_scrollTarget.y - ((followTarget as FlxSprite).velocity.y * followLead.y));
};
};
scroll.x = (scroll.x + (((_scrollTarget.x - scroll.x) * followLerp) * FlxG.elapsed));
scroll.y = (scroll.y + (((_scrollTarget.y - scroll.y) * followLerp) * FlxG.elapsed));
if (followMin != null){
if (scroll.x > followMin.x){
scroll.x = followMin.x;
};
if (scroll.y > followMin.y){
scroll.y = followMin.y;
};
};
if (followMax != null){
if (scroll.x < followMax.x){
scroll.x = followMax.x;
};
if (scroll.y < followMax.y){
scroll.y = followMax.y;
};
};
};
}
public static function showSupportPanel(Top:Boolean=true):void{
_game._panel.show(Top);
}
public static function addBitmap(Graphic:Class, Reverse:Boolean=false, Unique:Boolean=false):BitmapData{
var inc:uint;
var ukey:String;
var newPixels:BitmapData;
var mtx:Matrix;
var needReverse:Boolean;
var key:String = String(Graphic);
if (((((Unique) && (!((_cache[key] == undefined))))) && (!((_cache[key] == null))))){
inc = 0;
do {
var _temp1 = inc;
inc = (inc + 1);
ukey = (key + _temp1);
} while (((!((_cache[ukey] == undefined))) && (!((_cache[ukey] == null)))));
key = ukey;
};
if ((((_cache[key] == undefined)) || ((_cache[key] == null)))){
_cache[key] = new (Graphic).bitmapData;
if (Reverse){
needReverse = true;
};
};
var pixels:BitmapData = _cache[key];
if (((((!(needReverse)) && (Reverse))) && ((pixels.width == new (Graphic).bitmapData.width)))){
needReverse = true;
};
if (needReverse){
newPixels = new BitmapData((pixels.width << 1), pixels.height, true, 0);
newPixels.draw(pixels);
mtx = new Matrix();
mtx.scale(-1, 1);
mtx.translate(newPixels.width, 0);
newPixels.draw(pixels, mtx);
pixels = newPixels;
};
return (pixels);
}
public static function getMuteValue():uint{
if (_mute){
return (0);
};
return (1);
}
public static function set mute(Mute:Boolean):void{
_mute = Mute;
changeSounds();
}
public static function play(EmbeddedSound:Class, Volume:Number=1, Looped:Boolean=false):FlxSound{
var i:uint;
var sl:uint = sounds.length;
i = 0;
while (i < sl) {
if (!sounds[i].active){
break;
};
i++;
};
if (sounds[i] == null){
sounds[i] = new FlxSound();
};
var s:FlxSound = sounds[i];
s.loadEmbedded(EmbeddedSound, Looped);
s.volume = Volume;
s.play();
return (s);
}
public static function getAngle(X:Number, Y:Number):Number{
return (((Math.atan2(Y, X) * 180) / Math.PI));
}
public static function hideCursor():void{
if (_game._cursor == null){
return;
};
_game._buffer.removeChild(_game._cursor);
_game._cursor = null;
}
public static function set volume(Volume:Number):void{
_volume = Volume;
if (_volume < 0){
_volume = 0;
} else {
if (_volume > 1){
_volume = 1;
};
};
changeSounds();
}
static function setGameData(Game:FlxGame, Width:uint, Height:uint):void{
_game = Game;
_cache = new Object();
width = Width;
height = Height;
_mute = false;
_volume = 0.5;
sounds = new Array();
mouse = new FlxMouse();
keys = new FlxKeyboard();
scroll = null;
_scrollTarget = null;
unfollow();
FlxG.levels = new Array();
FlxG.scores = new Array();
level = 0;
score = 0;
seed = NaN;
kong = null;
pause = false;
dilation = 1;
}
public static function computeVelocity(Velocity:Number, Acceleration:Number=0, Drag:Number=0, Max:Number=10000):Number{
var d:Number;
if (Acceleration != 0){
Velocity = (Velocity + (Acceleration * FlxG.elapsed));
} else {
if (Drag != 0){
d = (Drag * FlxG.elapsed);
if ((Velocity - d) > 0){
Velocity = (Velocity - d);
} else {
if ((Velocity + d) < 0){
Velocity = (Velocity + d);
} else {
Velocity = 0;
};
};
};
};
if (((!((Velocity == 0))) && (!((Max == 10000))))){
if (Velocity > Max){
Velocity = Max;
} else {
if (Velocity < -(Max)){
Velocity = -(Max);
};
};
};
return (Velocity);
}
public static function mutate(Seed:Number, Mutator:Number):Number{
Seed = (Seed + Mutator);
if (Seed > 1){
Seed = (Seed - int(Seed));
};
return (Seed);
}
public static function collideArraysX(Cores1:Array, Cores2:Array):Boolean{
var i:uint;
var j:uint;
var core1:FlxCore;
var core2:FlxCore;
var c:Boolean;
var l1:uint = Cores1.length;
var l2:uint = Cores2.length;
if (Cores1 === Cores2){
i = 0;
while (i < l1) {
core1 = Cores1[i];
if ((((((core1 == null)) || (!(core1.exists)))) || (core1.dead))){
} else {
j = (i + 1);
while (j < l2) {
core2 = Cores2[j];
if ((((((core2 == null)) || (!(core2.exists)))) || (core2.dead))){
} else {
if (core1.collideX(core2)){
c = true;
};
};
j++;
};
};
i++;
};
} else {
i = 0;
while (i < l1) {
core1 = Cores1[i];
if ((((((core1 == null)) || (!(core1.exists)))) || (core1.dead))){
} else {
j = 0;
while (j < l2) {
core2 = Cores2[j];
if ((((((((core1 === core2)) || ((core2 == null)))) || (!(core2.exists)))) || (core2.dead))){
} else {
if (core1.collideX(core2)){
c = true;
};
};
j++;
};
};
i++;
};
};
return (c);
}
public static function collideArraysY(Cores1:Array, Cores2:Array):Boolean{
var i:uint;
var j:uint;
var core1:FlxCore;
var core2:FlxCore;
var c:Boolean;
var l1:uint = Cores1.length;
var l2:uint = Cores2.length;
if (Cores1 === Cores2){
i = 0;
while (i < l1) {
core1 = Cores1[i];
if ((((((core1 == null)) || (!(core1.exists)))) || (core1.dead))){
} else {
j = (i + 1);
while (j < l2) {
core2 = Cores2[j];
if ((((((core2 == null)) || (!(core2.exists)))) || (core2.dead))){
} else {
if (core1.collideY(core2)){
c = true;
};
};
j++;
};
};
i++;
};
} else {
i = 0;
while (i < l1) {
core1 = Cores1[i];
if ((((((core1 == null)) || (!(core1.exists)))) || (core1.dead))){
} else {
j = 0;
while (j < l2) {
core2 = Cores2[j];
if ((((((((core1 === core2)) || ((core2 == null)))) || (!(core2.exists)))) || (core2.dead))){
} else {
if (core1.collideY(core2)){
c = true;
};
};
j++;
};
};
i++;
};
};
return (c);
}
public static function createBitmap(Width:uint, Height:uint, Color:uint, Unique:Boolean):BitmapData{
var inc:uint;
var ukey:String;
var key:String = ((((Width + "x") + Height) + ":") + Color);
if (((((Unique) && (!((_cache[key] == undefined))))) && (!((_cache[key] == null))))){
inc = 0;
do {
var _temp1 = inc;
inc = (inc + 1);
ukey = (key + _temp1);
} while (((!((_cache[ukey] == undefined))) && (!((_cache[ukey] == null)))));
key = ukey;
};
if ((((_cache[key] == undefined)) || ((_cache[key] == null)))){
_cache[key] = new BitmapData(Width, Height, true, Color);
};
return (_cache[key]);
}
public static function playMusic(Music:Class, Volume:Number=1):void{
if (music == null){
music = new FlxSound();
} else {
if (music.active){
music.stop();
};
};
music.loadEmbedded(Music, true);
music.volume = Volume;
music.survive = true;
music.play();
}
public static function overlapArray(Cores:Array, Core:FlxCore, Collide:Function=null):Boolean{
var c:FlxCore;
if ((((((Core == null)) || (!(Core.exists)))) || (Core.dead))){
return (false);
};
var o:Boolean;
var l:uint = Cores.length;
var i:uint;
while (i < l) {
c = Cores[i];
if ((((((((c === Core)) || ((c == null)))) || (!(c.exists)))) || (c.dead))){
} else {
if (c.overlaps(Core)){
o = true;
if (Collide != null){
Collide(c, Core);
} else {
c.kill();
Core.kill();
};
};
};
i++;
};
return (o);
}
public static function log(Data:Object):void{
_game._console.log(Data.toString());
}
public static function overlapArrays(Cores1:Array, Cores2:Array, Collide:Function=null):Boolean{
var i:uint;
var j:uint;
var core1:FlxCore;
var core2:FlxCore;
var o:Boolean;
var l1:uint = Cores1.length;
var l2:uint = Cores2.length;
if (Cores1 === Cores2){
i = 0;
while (i < l1) {
core1 = Cores1[i];
if ((((((core1 == null)) || (!(core1.exists)))) || (core1.dead))){
} else {
j = (i + 1);
while (j < l2) {
core2 = Cores2[j];
if ((((((core2 == null)) || (!(core2.exists)))) || (core2.dead))){
} else {
if (core1.overlaps(core2)){
o = true;
if (Collide != null){
Collide(core1, core2);
} else {
core1.kill();
core2.kill();
};
};
};
j++;
};
};
i++;
};
} else {
i = 0;
while (i < Cores1.length) {
core1 = Cores1[i];
if ((((((core1 == null)) || (!(core1.exists)))) || (core1.dead))){
} else {
j = 0;
while (j < Cores2.length) {
core2 = Cores2[j];
if ((((((((core1 === core2)) || ((core2 == null)))) || (!(core2.exists)))) || (core2.dead))){
} else {
if (core1.overlaps(core2)){
o = true;
if (Collide != null){
Collide(core1, core2);
} else {
core1.kill();
core2.kill();
};
};
};
j++;
};
};
i++;
};
};
return (o);
}
static function updateSounds():void{
if (((!((music == null))) && (music.active))){
music.update();
};
var sl:uint = sounds.length;
var i:uint;
while (i < sl) {
if (sounds[i].active){
sounds[i].update();
};
i++;
};
}
public static function get seed():Number{
return (_originalSeed);
}
public static function getClassName(Obj:Object, Simple:Boolean=false):String{
var s:String = getQualifiedClassName(Obj);
s = s.replace("::", ".");
if (Simple){
s = s.substr((s.lastIndexOf(".") + 1));
};
return (s);
}
static function updateInput():void{
keys.update();
mouse.update((state.mouseX - scroll.x), (state.mouseY - scroll.y));
}
public static function stream(URL:String, Volume:Number=1, Looped:Boolean=false):FlxSound{
var i:uint;
var sl:uint = sounds.length;
i = 0;
while (i < sl) {
if (!sounds[i].active){
break;
};
i++;
};
if (sounds[i] == null){
sounds[i] = new FlxSound();
};
var s:FlxSound = sounds[i];
s.loadStream(URL, Looped);
s.volume = Volume;
s.play();
return (s);
}
static function unfollow():void{
followTarget = null;
followLead = null;
followLerp = 1;
followMin = null;
followMax = null;
if (scroll == null){
scroll = new Point();
} else {
scroll.x = (scroll.y = 0);
};
if (_scrollTarget == null){
_scrollTarget = new Point();
} else {
_scrollTarget.x = (_scrollTarget.y = 0);
};
}
public static function fade(Color:uint, Duration:Number=1, FadeComplete:Function=null, Force:Boolean=false):void{
_game._fade.restart(Color, Duration, FadeComplete, Force);
}
protected static function playSounds():void{
if (((!((music == null))) && (music.active))){
music.play();
};
var sl:uint = sounds.length;
var i:uint;
while (i < sl) {
if (sounds[i].active){
sounds[i].play();
};
i++;
};
}
public static function followAdjust(LeadX:Number=0, LeadY:Number=0):void{
followLead = new Point(LeadX, LeadY);
}
public static function follow(Target:FlxCore, Lerp:Number=1):void{
followTarget = Target;
followLerp = Lerp;
_scrollTarget.x = ((((width >> 1) - followTarget.x) - (followTarget.width >> 1)) + (followTarget as FlxSprite).offset.x);
_scrollTarget.y = ((((height >> 1) - followTarget.y) - (followTarget.height >> 1)) + (followTarget as FlxSprite).offset.y);
scroll.x = _scrollTarget.x;
scroll.y = _scrollTarget.y;
doFollow();
}
public static function showCursor(CursorGraphic:Class=null):void{
if (CursorGraphic == null){
_game._cursor = (_game._buffer.addChild(new ImgDefaultCursor()) as Bitmap);
} else {
_game._cursor = (_game._buffer.addChild(new (CursorGraphic)) as Bitmap);
};
}
public static function randomize(Seed:Number):Number{
return ((((69621 * int((Seed * 2147483647))) % 2147483647) / 2147483647));
}
public static function getRandom(A:Array):Object{
return (A[int((FlxG.random() * A.length))]);
}
public static function resetInput():void{
keys.reset();
mouse.reset();
}
public static function switchState(State:Class):void{
_game.switchState(State);
}
public static function getNonexist(A:Array):FlxCore{
var l:uint = A.length;
if (l <= 0){
return (null);
};
var i:uint;
do {
if (!A[i].exists){
return (A[i]);
};
++i;
} while (i < l);
return (null);
}
public static function random(UseGlobalSeed:Boolean=true):Number{
var random:Number;
if (((UseGlobalSeed) && (!(isNaN(_seed))))){
random = randomize(_seed);
_seed = mutate(_seed, random);
return (random);
};
return (Math.random());
}
public static function openURL(URL:String):void{
navigateToURL(new URLRequest(URL), "_blank");
}
public static function followBounds(MinX:int=0, MinY:int=0, MaxX:int=0, MaxY:int=0):void{
followMin = new Point(-(MinX), -(MinY));
followMax = new Point((-(MaxX) + width), (-(MaxY) + height));
if (followMax.x > followMin.x){
followMax.x = followMin.x;
};
if (followMax.y > followMin.y){
followMax.y = followMin.y;
};
doFollow();
}
public static function getClass(Name:String):Class{
return ((getDefinitionByName(Name) as Class));
}
public static function collideArray(Cores:Array, Core:FlxCore):Boolean{
var core:FlxCore;
if ((((((Core == null)) || (!(Core.exists)))) || (Core.dead))){
return (false);
};
var c:Boolean;
var l:uint = Cores.length;
var i:uint;
while (i < l) {
core = Cores[i];
if ((((((((core === Core)) || ((core == null)))) || (!(core.exists)))) || (core.dead))){
} else {
if (core.collide(Core)){
c = true;
};
};
i++;
};
return (c);
}
public static function quake(Intensity:Number, Duration:Number=0.5):void{
_game._quake.reset(Intensity, Duration);
}
protected static function pauseSounds():void{
if (((!((music == null))) && (music.active))){
music.pause();
};
var sl:uint = sounds.length;
var i:uint;
while (i < sl) {
if (sounds[i].active){
sounds[i].pause();
};
i++;
};
}
public static function set seed(Seed:Number):void{
_seed = Seed;
_originalSeed = _seed;
}
static function destroySounds(ForceDestroy:Boolean=false):void{
if (sounds == null){
return;
};
if (((!((music == null))) && (((ForceDestroy) || (!(music.survive)))))){
music.destroy();
};
var sl:uint = sounds.length;
var i:uint;
while (i < sl) {
if (((ForceDestroy) || (!(sounds[i].survive)))){
sounds[i].destroy();
};
i++;
};
}
public static function set pause(Pause:Boolean):void{
var op:Boolean = _pause;
_pause = Pause;
if (_pause != op){
if (_pause){
_game.pauseGame();
pauseSounds();
} else {
_game.unpauseGame();
playSounds();
};
};
}
public static function hideSupportPanel():void{
_game._panel.hide();
}
public static function rotatePoint(X:Number, Y:Number, PivotX:Number, PivotY:Number, Angle:Number, P:Point=null):Point{
if (P == null){
P = new Point();
};
var radians:Number = ((-(Angle) / 180) * Math.PI);
var dx:Number = (X - PivotX);
var dy:Number = (PivotY - Y);
P.x = ((PivotX + (Math.cos(radians) * dx)) - (Math.sin(radians) * dy));
P.y = (PivotY - ((Math.sin(radians) * dx) + (Math.cos(radians) * dy)));
return (P);
}
public static function get pause():Boolean{
return (_pause);
}
public static function collideArrayX(Cores:Array, Core:FlxCore):Boolean{
var core:FlxCore;
if ((((((Core == null)) || (!(Core.exists)))) || (Core.dead))){
return (false);
};
var c:Boolean;
var l:uint = Cores.length;
var i:uint;
while (i < l) {
core = Cores[i];
if ((((((((core === Core)) || ((core == null)))) || (!(core.exists)))) || (core.dead))){
} else {
if (core.collideX(Core)){
c = true;
};
};
i++;
};
return (c);
}
public static function collideArrayY(Cores:Array, Core:FlxCore):Boolean{
var core:FlxCore;
if ((((((Core == null)) || (!(Core.exists)))) || (Core.dead))){
return (false);
};
var c:Boolean;
var l:uint = Cores.length;
var i:uint;
while (i < l) {
core = Cores[i];
if ((((((((core === Core)) || ((core == null)))) || (!(core.exists)))) || (core.dead))){
} else {
if (core.collideY(Core)){
c = true;
};
};
i++;
};
return (c);
}
}
}//package org.flixel
Section 165
//FlxG_ImgDefaultCursor (org.flixel.FlxG_ImgDefaultCursor)
package org.flixel {
import mx.core.*;
public class FlxG_ImgDefaultCursor extends BitmapAsset {
}
}//package org.flixel
Section 166
//FlxGame (org.flixel.FlxGame)
package org.flixel {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.text.*;
import org.flixel.data.*;
import flash.utils.*;
import flash.ui.*;
public class FlxGame extends Sprite {
const MAX_ELAPSED:Number = 0.0333;
var _bmpFront:Bitmap;
protected var SndFlixel:Class;
var _logoTimer:Number;
var _curState:FlxState;
var _panel:FlxPanel;
var _console:FlxConsole;
protected var SndBeep:Class;
var _logoFade:Bitmap;
var _created:Boolean;
var _zoom:uint;
var _gameXOffset:int;
var _elapsed:Number;
var _flipped:Boolean;
var _total:uint;
var _soundTrayBars:Array;
public var useDefaultHotKeys:Boolean;
protected var junk:String;// = "FlxGame_junk"
var _bmpBack:Bitmap;
var _iState:Class;
public var showLogo:Boolean;
var _paused:Boolean;
var _quake:FlxQuake;
var _gameYOffset:int;
var _buffer:Sprite;
var _f:Array;
var _fSound:Class;
var _fc:uint;
var _soundTray:Sprite;
var _frame:Class;
var _flash:FlxFlash;
var _logoComplete:Boolean;
var _r:Rectangle;
var _poweredBy:Bitmap;
var _cursor:Bitmap;
public var pause:FlxLayer;
protected var ImgPoweredBy:Class;
var _fade:FlxFade;
var _soundTrayTimer:Number;
public function FlxGame(GameSizeX:uint, GameSizeY:uint, InitialState:Class, Zoom:uint=2){
ImgPoweredBy = FlxGame_ImgPoweredBy;
SndBeep = FlxGame_SndBeep;
SndFlixel = FlxGame_SndFlixel;
super();
Mouse.hide();
_zoom = Zoom;
FlxState.bgColor = 4278190080;
FlxG.setGameData(this, GameSizeX, GameSizeY);
_elapsed = 0;
_total = 0;
pause = new FlxPause();
_quake = new FlxQuake(_zoom);
_flash = new FlxFlash();
_fade = new FlxFade();
_curState = null;
_iState = InitialState;
_panel = new FlxPanel();
useDefaultHotKeys = true;
showLogo = true;
_f = null;
_fc = 4294967295;
_fSound = SndFlixel;
_frame = null;
_gameXOffset = 0;
_gameYOffset = 0;
_paused = false;
_created = false;
_logoComplete = false;
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
protected function onFocusLost(event:Event=null):void{
if (_logoComplete){
FlxG.pause = true;
};
}
function unpauseGame():void{
if (!_panel.visible){
Mouse.hide();
};
FlxG.resetInput();
_paused = false;
stage.frameRate = 90;
}
protected function setupSupportPanel(PayPalID:String, PayPalAmount:Number, GameTitle:String, GameURL:String, Caption:String):void{
_panel.init(PayPalID, PayPalAmount, GameTitle, GameURL, Caption);
}
function pauseGame():void{
if (((!((x == 0))) || (!((y == 0))))){
x = 0;
y = 0;
};
if (!_flipped){
_bmpBack.bitmapData.copyPixels(_bmpFront.bitmapData, _r, new Point(0, 0));
} else {
_bmpFront.bitmapData.copyPixels(_bmpBack.bitmapData, _r, new Point(0, 0));
};
Mouse.show();
_paused = true;
stage.frameRate = 10;
}
protected function onFocus(event:Event=null):void{
if (FlxG.pause){
FlxG.pause = false;
};
}
protected function onKeyUp(event:KeyboardEvent):void{
var c:int;
var code:String;
if (event.keyCode == 192){
return;
};
if (useDefaultHotKeys){
c = event.keyCode;
code = String.fromCharCode(event.charCode);
switch (c){
case 48:
FlxG.mute = !(FlxG.mute);
showSoundTray();
return;
case 189:
FlxG.mute = false;
FlxG.volume = (FlxG.volume - 0.1);
showSoundTray();
return;
case 187:
FlxG.mute = false;
FlxG.volume = (FlxG.volume + 0.1);
showSoundTray();
return;
case 80:
FlxG.pause = !(FlxG.pause);
default:
break;
};
};
FlxG.keys.handleKeyUp(event);
}
protected function onMouseUp(event:MouseEvent):void{
FlxG.mouse.handleMouseUp(event);
}
function switchState(State:Class):void{
_panel.hide();
FlxG.unfollow();
FlxG.keys.reset();
FlxG.mouse.reset();
FlxG.hideCursor();
FlxG.destroySounds();
_flash.restart(0, 0);
_fade.restart(0, 0);
_quake.reset(0);
_buffer.x = 0;
_buffer.y = 0;
var newState:FlxState = new (State);
_buffer.addChild(newState);
if (_curState != null){
_buffer.swapChildren(newState, _curState);
_buffer.removeChild(_curState);
_curState.destroy();
};
_curState = newState;
}
protected function onKeyDown(event:KeyboardEvent):void{
FlxG.keys.handleKeyDown(event);
}
protected function onEnterFrame(event:Event):void{
var i:uint;
var tmp:Bitmap;
var scale:uint;
var pixelSize:uint;
var top:int;
var left:int;
var ct:ColorTransform;
var vstring:String;
var underline:String;
var text:TextField;
var bx:uint;
var by:uint;
var bmp:Bitmap;
var t:uint = getTimer();
_elapsed = ((t - _total) / 1000);
_total = t;
FlxG.elapsed = _elapsed;
if (FlxG.elapsed > MAX_ELAPSED){
FlxG.elapsed = MAX_ELAPSED;
};
FlxG.elapsed = (FlxG.elapsed * FlxG.dilation);
if (_logoComplete){
_panel.update();
_console.update();
if (_soundTrayTimer > 0){
_soundTrayTimer = (_soundTrayTimer - _elapsed);
} else {
if (_soundTray.y > -(_soundTray.height)){
_soundTray.y = (_soundTray.y - ((_elapsed * FlxG.height) * 2));
if (_soundTray.y < -(_soundTray.height)){
_soundTray.visible = false;
};
};
};
FlxG.updateInput();
if (_cursor != null){
_cursor.x = (FlxG.mouse.x + FlxG.scroll.x);
_cursor.y = (FlxG.mouse.y + FlxG.scroll.y);
};
FlxG.updateSounds();
if (_paused){
pause.update();
if (_flipped){
FlxG.buffer.copyPixels(_bmpFront.bitmapData, _r, new Point(0, 0));
} else {
FlxG.buffer.copyPixels(_bmpBack.bitmapData, _r, new Point(0, 0));
};
pause.render();
} else {
if (_flipped){
FlxG.buffer = _bmpFront.bitmapData;
} else {
FlxG.buffer = _bmpBack.bitmapData;
};
FlxState.screen.unsafeBind(FlxG.buffer);
_curState.preProcess();
FlxG.doFollow();
_curState.update();
_flash.update();
_fade.update();
_quake.update();
_buffer.x = _quake.x;
_buffer.y = _quake.y;
_curState.render();
_flash.render();
_fade.render();
_panel.render();
_curState.postProcess();
_bmpBack.visible = !((_bmpFront.visible = _flipped));
_flipped = !(_flipped);
};
} else {
if (_created){
if (!showLogo){
_logoComplete = true;
FlxG.switchState(_iState);
} else {
if (_f == null){
_f = new Array();
scale = 1;
if (FlxG.height > 200){
scale = 2;
};
pixelSize = (32 * scale);
top = (((FlxG.height * _zoom) / 2) - (pixelSize * 2));
left = (((FlxG.width * _zoom) / 2) - pixelSize);
_f.push((addChild(new FlxLogoPixel((left + pixelSize), top, pixelSize, 0, _fc)) as FlxLogoPixel));
_f.push((addChild(new FlxLogoPixel(left, (top + pixelSize), pixelSize, 1, _fc)) as FlxLogoPixel));
_f.push((addChild(new FlxLogoPixel(left, (top + (pixelSize * 2)), pixelSize, 2, _fc)) as FlxLogoPixel));
_f.push((addChild(new FlxLogoPixel((left + pixelSize), (top + (pixelSize * 2)), pixelSize, 3, _fc)) as FlxLogoPixel));
_f.push((addChild(new FlxLogoPixel(left, (top + (pixelSize * 3)), pixelSize, 4, _fc)) as FlxLogoPixel));
_poweredBy = new ImgPoweredBy();
_poweredBy.scaleX = scale;
_poweredBy.scaleY = scale;
_poweredBy.x = (((FlxG.width * _zoom) / 2) - (_poweredBy.width / 2));
_poweredBy.y = ((top + (pixelSize * 4)) + 16);
ct = new ColorTransform();
ct.color = _fc;
_poweredBy.bitmapData.colorTransform(new Rectangle(0, 0, _poweredBy.width, _poweredBy.height), ct);
addChild(_poweredBy);
_logoFade = (addChild(new Bitmap(new BitmapData((FlxG.width * _zoom), (FlxG.height * _zoom), true, 4278190080))) as Bitmap);
_logoFade.x = (_gameXOffset * _zoom);
_logoFade.y = (_gameYOffset * _zoom);
if (_fSound != null){
FlxG.play(_fSound, 0.35);
};
};
_logoTimer = (_logoTimer + _elapsed);
i = 0;
while (i < _f.length) {
_f[i].update();
i++;
};
if (_logoFade.alpha > 0){
_logoFade.alpha = (_logoFade.alpha - (_elapsed * 0.5));
};
if (_logoTimer > 2){
removeChild(_poweredBy);
i = 0;
while (i < _f.length) {
removeChild(_f[i]);
i++;
};
_f.length = 0;
removeChild(_logoFade);
FlxG.switchState(_iState);
_logoComplete = true;
};
};
} else {
if (root != null){
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.frameRate = 90;
_buffer = new Sprite();
_buffer.scaleX = _zoom;
_buffer.scaleY = _zoom;
addChild(_buffer);
_bmpBack = new Bitmap(new BitmapData(FlxG.width, FlxG.height, true, FlxState.bgColor));
_bmpBack.x = _gameXOffset;
_bmpBack.y = _gameYOffset;
_buffer.addChild(_bmpBack);
_bmpFront = new Bitmap(new BitmapData(_bmpBack.width, _bmpBack.height, true, FlxState.bgColor));
_bmpFront.x = _bmpBack.x;
_bmpFront.y = _bmpBack.y;
_buffer.addChild(_bmpFront);
_flipped = false;
_r = new Rectangle(0, 0, _bmpFront.width, _bmpFront.height);
_console = new FlxConsole(_gameXOffset, _gameYOffset, _zoom);
addChild(_console);
vstring = ((((FlxG.LIBRARY_NAME + " v") + FlxG.LIBRARY_MAJOR_VERSION) + ".") + FlxG.LIBRARY_MINOR_VERSION);
if (FlxG.debug){
vstring = (vstring + " [debug]");
} else {
vstring = (vstring + " [release]");
};
underline = "";
i = 0;
while (i < (vstring.length + 32)) {
underline = (underline + "-");
i++;
};
FlxG.log(vstring);
FlxG.log(underline);
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
stage.addEventListener(Event.DEACTIVATE, onFocusLost);
stage.addEventListener(Event.ACTIVATE, onFocus);
_soundTray = new Sprite();
_soundTray.visible = false;
_soundTray.scaleX = 2;
_soundTray.scaleY = 2;
tmp = new Bitmap(new BitmapData(80, 30, true, 2130706432));
_soundTray.x = (((_gameXOffset + (FlxG.width / 2)) * _zoom) - ((tmp.width / 2) * _soundTray.scaleX));
_soundTray.addChild(tmp);
text = new TextField();
text.width = tmp.width;
text.height = tmp.height;
text.multiline = true;
text.wordWrap = true;
text.selectable = false;
text.embedFonts = true;
text.antiAliasType = AntiAliasType.NORMAL;
text.gridFitType = GridFitType.PIXEL;
text.defaultTextFormat = new TextFormat("system", 8, 0xFFFFFF, null, null, null, null, null, "center");
_soundTray.addChild(text);
text.text = "VOLUME";
text.y = 16;
bx = 10;
by = 14;
_soundTrayBars = new Array();
i = 0;
while (i < 10) {
tmp = new Bitmap(new BitmapData(4, (i + 1), false, 0xFFFFFF));
tmp.x = bx;
tmp.y = by;
_soundTrayBars.push(_soundTray.addChild(tmp));
bx = (bx + 6);
by--;
i++;
};
addChild(_soundTray);
if (_frame != null){
bmp = new _frame();
bmp.scaleX = _zoom;
bmp.scaleY = _zoom;
addChild(bmp);
};
_created = true;
_logoTimer = 0;
};
};
};
}
protected function setLogoFX(FlixelColor:Number, FlixelSound:Class=null):FlxGame{
_fc = FlixelColor;
if (FlixelSound != null){
_fSound = FlixelSound;
};
return (this);
}
protected function onMouseDown(event:MouseEvent):void{
FlxG.mouse.handleMouseDown(event);
}
public function showSoundTray():void{
FlxG.play(SndBeep);
_soundTrayTimer = 1;
_soundTray.y = (_gameYOffset * _zoom);
_soundTray.visible = true;
var gv:uint = Math.round((FlxG.volume * 10));
if (FlxG.mute){
gv = 0;
};
var i:uint;
while (i < _soundTrayBars.length) {
if (i < gv){
_soundTrayBars[i].alpha = 1;
} else {
_soundTrayBars[i].alpha = 0.5;
};
i++;
};
}
protected function addFrame(Frame:Class, ScreenOffsetX:uint, ScreenOffsetY:uint):FlxGame{
_frame = Frame;
_gameXOffset = ScreenOffsetX;
_gameYOffset = ScreenOffsetY;
return (this);
}
}
}//package org.flixel
Section 167
//FlxGame_ImgPoweredBy (org.flixel.FlxGame_ImgPoweredBy)
package org.flixel {
import mx.core.*;
public class FlxGame_ImgPoweredBy extends BitmapAsset {
}
}//package org.flixel
Section 168
//FlxGame_junk (org.flixel.FlxGame_junk)
package org.flixel {
import mx.core.*;
public class FlxGame_junk extends FontAsset {
}
}//package org.flixel
Section 169
//FlxGame_SndBeep (org.flixel.FlxGame_SndBeep)
package org.flixel {
import mx.core.*;
public class FlxGame_SndBeep extends SoundAsset {
}
}//package org.flixel
Section 170
//FlxGame_SndFlixel (org.flixel.FlxGame_SndFlixel)
package org.flixel {
import mx.core.*;
public class FlxGame_SndFlixel extends SoundAsset {
}
}//package org.flixel
Section 171
//FlxLayer (org.flixel.FlxLayer)
package org.flixel {
public class FlxLayer extends FlxCore {
protected var _children:Array;
public function FlxLayer(){
super();
_children = new Array();
}
public function add(Core:FlxCore, ShareScroll:Boolean=false):FlxCore{
_children.push(Core);
if (ShareScroll){
Core.scrollFactor = scrollFactor;
};
return (Core);
}
override public function render():void{
var c:FlxCore;
super.render();
var cl:uint = _children.length;
var i:uint;
while (i < cl) {
c = _children[i];
if (((((!((c == null))) && (c.exists))) && (c.visible))){
c.render();
};
i++;
};
}
override public function update():void{
var mx:Number;
var my:Number;
var c:FlxCore;
var moved:Boolean;
if (((!((x == last.x))) || (!((y == last.y))))){
moved = true;
mx = (x - last.x);
my = (y - last.y);
};
super.update();
var cl:uint = _children.length;
var i:uint;
while (i < cl) {
c = (_children[i] as FlxCore);
if (((!((c == null))) && (c.exists))){
if (moved){
c.x = (c.x + mx);
c.y = (c.y + my);
};
if (c.active){
c.update();
};
};
i++;
};
}
override public function destroy():void{
super.destroy();
var cl:uint = _children.length;
var i:uint;
while (i < cl) {
if (_children[i] != null){
_children[i].destroy();
};
i++;
};
_children.length = 0;
}
public function children():Array{
return (_children);
}
}
}//package org.flixel
Section 172
//FlxSave (org.flixel.FlxSave)
package org.flixel {
import flash.net.*;
public class FlxSave {
protected var _so:SharedObject;
public var data:Object;
public var name:String;
public function FlxSave(){
super();
name = null;
_so = null;
data = null;
}
public function read(FieldName:String):Object{
if (_so == null){
FlxG.log("WARNING: You must call FlxSave.bind()\nbefore calling FlxSave.read().");
return (null);
};
return (data[FieldName]);
}
public function forceSave(MinFileSize:uint=0):Boolean{
var MinFileSize = MinFileSize;
if (_so == null){
FlxG.log("WARNING: You must call FlxSave.bind()\nbefore calling FlxSave.forceSave().");
return (false);
};
var status:Object;
status = _so.flush(MinFileSize);
//unresolved jump
var _slot1 = e;
FlxG.log("WARNING: There was a problem flushing\nthe shared object data from FlxSave.");
return (false);
return ((status == SharedObjectFlushStatus.FLUSHED));
}
public function bind(Name:String):Boolean{
var Name = Name;
name = null;
_so = null;
data = null;
name = Name;
_so = SharedObject.getLocal(name);
//unresolved jump
var _slot1 = e;
FlxG.log("WARNING: There was a problem binding to\nthe shared object data from FlxSave.");
name = null;
_so = null;
data = null;
return (false);
data = _so.data;
return (true);
}
public function erase(MinFileSize:uint=0):Boolean{
if (_so == null){
FlxG.log("WARNING: You must call FlxSave.bind()\nbefore calling FlxSave.erase().");
return (false);
};
_so.clear();
return (forceSave(MinFileSize));
}
public function write(FieldName:String, FieldValue:Object, MinFileSize:uint=0):Boolean{
if (_so == null){
FlxG.log("WARNING: You must call FlxSave.bind()\nbefore calling FlxSave.write().");
return (false);
};
data[FieldName] = FieldValue;
return (forceSave(MinFileSize));
}
}
}//package org.flixel
Section 173
//FlxSound (org.flixel.FlxSound)
package org.flixel {
import flash.events.*;
import flash.geom.*;
import flash.media.*;
import flash.net.*;
public class FlxSound extends FlxCore {
protected var _volume:Number;
protected var _channel:SoundChannel;
protected var _fadeInTimer:Number;
protected var _position:Number;
protected var _sound:Sound;
protected var _fadeOutTotal:Number;
protected var _fadeOutTimer:Number;
protected var _fadeInTotal:Number;
protected var _pauseOnFadeOut:Boolean;
protected var _pan:Boolean;
protected var _looped:Boolean;
protected var _volumeAdjust:Number;
protected var _transform:SoundTransform;
protected var _init:Boolean;
protected var _radius:Number;
public var survive:Boolean;
protected var _core:FlxCore;
public function FlxSound(){
super();
_transform = new SoundTransform();
init();
}
public function fadeOut(Seconds:Number, PauseInstead:Boolean=false):void{
_pauseOnFadeOut = PauseInstead;
_fadeInTimer = 0;
_fadeOutTimer = Seconds;
_fadeOutTotal = _fadeOutTimer;
}
public function stop():void{
_position = 0;
if (_channel != null){
_channel.stop();
stopped();
};
}
public function loadStream(SoundURL:String, Looped:Boolean=false):FlxSound{
stop();
init();
_sound = new Sound(new URLRequest(SoundURL));
_looped = Looped;
updateTransform();
active = true;
return (this);
}
public function loadEmbedded(EmbeddedSound:Class, Looped:Boolean=false):FlxSound{
stop();
init();
_sound = new (EmbeddedSound);
_looped = Looped;
updateTransform();
active = true;
return (this);
}
protected function stopped(event:Event=null):void{
if (!_looped){
_channel.removeEventListener(Event.SOUND_COMPLETE, stopped);
} else {
_channel.removeEventListener(Event.SOUND_COMPLETE, looped);
};
_channel = null;
active = false;
}
override public function update():void{
var pc:Point;
var pt:Point;
var dx:Number;
var dy:Number;
var d:Number;
if (_position != 0){
return;
};
super.update();
var radial:Number = 1;
var fade:Number = 1;
if (_core != null){
pc = new Point();
pt = new Point();
_core.getScreenXY(pc);
getScreenXY(pt);
dx = (pc.x - pt.x);
dy = (pc.y - pt.y);
radial = ((_radius - Math.sqrt(((dx * dx) + (dy * dy)))) / _radius);
if (radial < 0){
radial = 0;
};
if (radial > 1){
radial = 1;
};
if (_pan){
d = (-(dx) / _radius);
if (d < -1){
d = -1;
} else {
if (d > 1){
d = 1;
};
};
_transform.pan = d;
};
};
if (_fadeOutTimer > 0){
_fadeOutTimer = (_fadeOutTimer - FlxG.elapsed);
if (_fadeOutTimer <= 0){
if (_pauseOnFadeOut){
pause();
} else {
stop();
};
};
fade = (_fadeOutTimer / _fadeOutTotal);
if (fade < 0){
fade = 0;
};
} else {
if (_fadeInTimer > 0){
_fadeInTimer = (_fadeInTimer - FlxG.elapsed);
fade = (_fadeInTimer / _fadeOutTotal);
if (fade < 0){
fade = 0;
};
fade = (1 - fade);
};
};
_volumeAdjust = (radial * fade);
updateTransform();
}
public function fadeIn(Seconds:Number):void{
_fadeOutTimer = 0;
_fadeInTimer = Seconds;
_fadeInTotal = _fadeInTimer;
play();
}
protected function looped(event:Event=null):void{
if (_channel == null){
return;
};
_channel.removeEventListener(Event.SOUND_COMPLETE, looped);
_channel = null;
play();
}
public function get volume():Number{
return (_volume);
}
function updateTransform():void{
_transform.volume = (((FlxG.getMuteValue() * FlxG.volume) * _volume) * _volumeAdjust);
if (_channel != null){
_channel.soundTransform = _transform;
};
}
override public function destroy():void{
if (active){
stop();
};
}
public function play():void{
if (_position < 0){
return;
};
if (_looped){
if (_position == 0){
if (_channel == null){
_channel = _sound.play(0, 9999, _transform);
};
if (_channel == null){
active = false;
};
} else {
_channel = _sound.play(_position, 0, _transform);
if (_channel == null){
active = false;
} else {
_channel.addEventListener(Event.SOUND_COMPLETE, looped);
};
};
} else {
if (_position == 0){
if (_channel == null){
_channel = _sound.play(0, 0, _transform);
if (_channel == null){
active = false;
} else {
_channel.addEventListener(Event.SOUND_COMPLETE, stopped);
};
};
} else {
_channel = _sound.play(_position, 0, _transform);
if (_channel == null){
active = false;
};
};
};
_position = 0;
}
public function pause():void{
if (_channel == null){
_position = -1;
return;
};
_position = _channel.position;
_channel.stop();
if (_looped){
while (_position >= _sound.length) {
_position = (_position - _sound.length);
};
};
_channel = null;
}
public function set volume(Volume:Number):void{
_volume = Volume;
if (_volume < 0){
_volume = 0;
} else {
if (_volume > 1){
_volume = 1;
};
};
updateTransform();
}
protected function init():void{
_transform.pan = 0;
_sound = null;
_position = 0;
_volume = 1;
_volumeAdjust = 1;
_looped = false;
_core = null;
_radius = 0;
_pan = false;
_fadeOutTimer = 0;
_fadeOutTotal = 0;
_pauseOnFadeOut = false;
_fadeInTimer = 0;
_fadeInTotal = 0;
active = false;
visible = false;
dead = true;
}
public function proximity(X:Number, Y:Number, Core:FlxCore, Radius:Number, Pan:Boolean=true):FlxSound{
x = X;
y = Y;
_core = Core;
_radius = Radius;
_pan = Pan;
return (this);
}
}
}//package org.flixel
Section 174
//FlxSprite (org.flixel.FlxSprite)
package org.flixel {
import flash.display.*;
import flash.geom.*;
import org.flixel.data.*;
public class FlxSprite extends FlxCore {
protected var _facing:uint;
protected var _caf:uint;
protected var _animations:Array;
protected var _ct:ColorTransform;
public var origin:Point;
protected var _curAnim:FlxAnim;
public var angularDrag:Number;
public var drag:Point;
protected var _flipped:uint;
public var scale:Point;
public var blend:String;
public var thrust:Number;
public var health:Number;
protected var _alpha:Number;
public var maxVelocity:Point;
protected var _color:uint;
protected var _curFrame:uint;
public var finished:Boolean;
protected var _frameTimer:Number;
public var acceleration:Point;
public var angularAcceleration:Number;
public var offset:Point;
protected var _r2:Rectangle;
protected var _callback:Function;
protected var _framePixels:BitmapData;
protected var _pixels:BitmapData;
public var angle:Number;
public var maxThrust:Number;
public var velocity:Point;
public var maxAngular:Number;
public var angularVelocity:Number;
protected var _bh:uint;
protected var _p:Point;
public var antialiasing:Boolean;
protected var _mtx:Matrix;
protected var _r:Rectangle;
protected var _bw:uint;
protected static const _pZero:Point = new Point();
public static const LEFT:uint = 0;
public static const DOWN:uint = 3;
public static const UP:uint = 2;
public static const RIGHT:uint = 1;
public function FlxSprite(X:int=0, Y:int=0, SimpleGraphic:Class=null){
super();
last.x = (x = X);
last.y = (y = Y);
_p = new Point();
_r = new Rectangle();
_r2 = new Rectangle();
origin = new Point();
if (SimpleGraphic == null){
createGraphic(8, 8);
} else {
loadGraphic(SimpleGraphic);
};
offset = new Point();
velocity = new Point();
acceleration = new Point();
drag = new Point();
maxVelocity = new Point(10000, 10000);
angle = 0;
angularVelocity = 0;
angularAcceleration = 0;
angularDrag = 0;
maxAngular = 10000;
thrust = 0;
scale = new Point(1, 1);
_alpha = 1;
_color = 0xFFFFFF;
blend = null;
antialiasing = false;
finished = false;
_facing = RIGHT;
_animations = new Array();
_flipped = 0;
_curAnim = null;
_curFrame = 0;
_caf = 0;
_frameTimer = 0;
_mtx = new Matrix();
health = 1;
_callback = null;
}
function unsafeBind(Pixels:BitmapData):void{
_pixels = (_framePixels = Pixels);
}
public function hurt(Damage:Number):void{
if ((health = (health - Damage)) <= 0){
kill();
};
}
protected function calcFrame():void{
var rx:uint = (_caf * _bw);
var ry:uint;
var w:uint = (_flipped) ? _flipped : _pixels.width;
if (rx >= w){
ry = (uint((rx / w)) * _bh);
rx = (rx % w);
};
if (((_flipped) && ((_facing == LEFT)))){
rx = (((_flipped << 1) - rx) - _bw);
};
_r.x = rx;
_r.y = ry;
_framePixels.copyPixels(_pixels, _r, _pZero);
_r.x = (_r.y = 0);
if (_ct != null){
_framePixels.colorTransform(_r, _ct);
};
if (_callback != null){
_callback(_curAnim.name, _curFrame, _caf);
};
}
public function loadGraphic(Graphic:Class, Animated:Boolean=false, Reverse:Boolean=false, Width:uint=0, Height:uint=0, Unique:Boolean=false):FlxSprite{
_pixels = FlxG.addBitmap(Graphic, Reverse, Unique);
if (Reverse){
_flipped = (_pixels.width >> 1);
} else {
_flipped = 0;
};
if (Width == 0){
if (Animated){
Width = _pixels.height;
} else {
if (_flipped > 0){
Width = (_pixels.width / 2);
} else {
Width = _pixels.width;
};
};
};
width = (_bw = Width);
if (Height == 0){
if (Animated){
Height = width;
} else {
Height = _pixels.height;
};
};
height = (_bh = Height);
resetHelpers();
return (this);
}
public function play(AnimName:String, Force:Boolean=false):void{
if (((((!(Force)) && (!((_curAnim == null))))) && ((AnimName == _curAnim.name)))){
return;
};
_curFrame = 0;
_caf = 0;
_frameTimer = 0;
var al:uint = _animations.length;
var i:uint;
while (i < al) {
if (_animations[i].name == AnimName){
_curAnim = _animations[i];
if (_curAnim.delay <= 0){
finished = true;
} else {
finished = false;
};
_caf = _curAnim.frames[_curFrame];
calcFrame();
return;
};
i++;
};
}
override public function hitFloor(Contact:FlxCore=null):Boolean{
velocity.y = 0;
return (true);
}
protected function resetHelpers():void{
_r.x = 0;
_r.y = 0;
_r.width = _bw;
_r.height = _bh;
_r2.x = 0;
_r2.y = 0;
_r2.width = _pixels.width;
_r2.height = _pixels.height;
if ((((((_framePixels == null)) || (!((_framePixels.width == width))))) || (!((_framePixels.height == height))))){
_framePixels = new BitmapData(width, height);
};
origin.x = (_bw / 2);
origin.y = (_bh / 2);
_framePixels.copyPixels(_pixels, _r, _pZero);
}
public function draw(Brush:FlxSprite, X:int=0, Y:int=0):void{
var b:BitmapData = Brush._framePixels;
if ((((((((Brush.angle == 0)) && ((Brush.scale.x == 1)))) && ((Brush.scale.y == 1)))) && ((Brush.blend == null)))){
_p.x = X;
_p.y = Y;
_r2.width = b.width;
_r2.height = b.height;
_pixels.copyPixels(b, _r2, _p, null, null, true);
_r2.width = _pixels.width;
_r2.height = _pixels.height;
calcFrame();
return;
};
_mtx.identity();
_mtx.translate(-(Brush.origin.x), -(Brush.origin.y));
_mtx.scale(Brush.scale.x, Brush.scale.y);
if (Brush.angle != 0){
_mtx.rotate(((Math.PI * 2) * (Brush.angle / 360)));
};
_mtx.translate((X + Brush.origin.x), (Y + Brush.origin.y));
_pixels.draw(b, _mtx, null, Brush.blend, null, Brush.antialiasing);
calcFrame();
}
public function createGraphic(Width:uint, Height:uint, Color:uint=4294967295, Unique:Boolean=false):FlxSprite{
_pixels = FlxG.createBitmap(Width, Height, Color, Unique);
width = (_bw = _pixels.width);
height = (_bh = _pixels.height);
resetHelpers();
return (this);
}
public function addAnimationCallback(AnimationCallback:Function):void{
_callback = AnimationCallback;
}
public function onEmit():void{
}
public function set pixels(Pixels:BitmapData):void{
_pixels = Pixels;
width = (_bw = _pixels.width);
height = (_bh = _pixels.height);
resetHelpers();
}
public function specificFrame(Frame:uint):void{
_curAnim = null;
_caf = Frame;
calcFrame();
}
public function get alpha():Number{
return (_alpha);
}
public function get color():uint{
return (_color);
}
public function randomFrame():void{
_curAnim = null;
_caf = int((FlxG.random() * (_pixels.width / _bw)));
calcFrame();
}
public function fill(Color:uint):void{
_pixels.fillRect(_r2, Color);
calcFrame();
}
override public function render():void{
if (!visible){
return;
};
getScreenXY(_p);
if ((((((((angle == 0)) && ((scale.x == 1)))) && ((scale.y == 1)))) && ((blend == null)))){
FlxG.buffer.copyPixels(_framePixels, _r, _p, null, null, true);
return;
};
_mtx.identity();
_mtx.translate(-(origin.x), -(origin.y));
_mtx.scale(scale.x, scale.y);
if (angle != 0){
_mtx.rotate(((Math.PI * 2) * (angle / 360)));
};
_mtx.translate((_p.x + origin.x), (_p.y + origin.y));
FlxG.buffer.draw(_framePixels, _mtx, null, blend, null, antialiasing);
}
override public function hitCeiling(Contact:FlxCore=null):Boolean{
velocity.y = 0;
return (true);
}
public function get pixels():BitmapData{
return (_pixels);
}
public function set facing(Direction:uint):void{
var c = !((_facing == Direction));
_facing = Direction;
if (c){
calcFrame();
};
}
public function set alpha(Alpha:Number):void{
if (Alpha > 1){
Alpha = 1;
};
if (Alpha < 0){
Alpha = 0;
};
if (Alpha == _alpha){
return;
};
_alpha = Alpha;
if (((!((_alpha == 1))) || (!((_color == 0xFFFFFF))))){
_ct = new ColorTransform((Number((_color >> 16)) / 0xFF), (Number(((_color >> 8) & 0xFF)) / 0xFF), (Number((_color & 0xFF)) / 0xFF), _alpha);
} else {
_ct = null;
};
calcFrame();
}
public function set color(Color:uint):void{
Color = (Color & 0xFFFFFF);
if (_color == Color){
return;
};
_color = Color;
if (((!((_alpha == 1))) || (!((_color == 0xFFFFFF))))){
_ct = new ColorTransform((Number((_color >> 16)) / 0xFF), (Number(((_color >> 8) & 0xFF)) / 0xFF), (Number((_color & 0xFF)) / 0xFF), _alpha);
} else {
_ct = null;
};
calcFrame();
}
override public function update():void{
var thrustComponents:Point;
var maxComponents:Point;
var max:Number;
super.update();
if (!active){
return;
};
if (((((!((_curAnim == null))) && ((_curAnim.delay > 0)))) && (((_curAnim.looped) || (!(finished)))))){
_frameTimer = (_frameTimer + FlxG.elapsed);
if (_frameTimer > _curAnim.delay){
_frameTimer = (_frameTimer - _curAnim.delay);
if (_curFrame == (_curAnim.frames.length - 1)){
if (_curAnim.looped){
_curFrame = 0;
};
finished = true;
} else {
_curFrame++;
};
_caf = _curAnim.frames[_curFrame];
calcFrame();
};
};
angle = (angle + ((angularVelocity = FlxG.computeVelocity(angularVelocity, angularAcceleration, angularDrag, maxAngular)) * FlxG.elapsed));
if (thrust != 0){
thrustComponents = FlxG.rotatePoint(-(thrust), 0, 0, 0, angle);
maxComponents = FlxG.rotatePoint(-(maxThrust), 0, 0, 0, angle);
max = Math.abs(maxComponents.x);
if (max > Math.abs(maxComponents.y)){
maxComponents.y = max;
} else {
max = Math.abs(maxComponents.y);
};
maxVelocity.x = Math.abs(max);
maxVelocity.y = Math.abs(max);
} else {
thrustComponents = _pZero;
};
x = (x + ((velocity.x = FlxG.computeVelocity(velocity.x, (acceleration.x + thrustComponents.x), drag.x, maxVelocity.x)) * FlxG.elapsed));
y = (y + ((velocity.y = FlxG.computeVelocity(velocity.y, (acceleration.y + thrustComponents.y), drag.y, maxVelocity.y)) * FlxG.elapsed));
}
public function get facing():uint{
return (_facing);
}
public function addAnimation(Name:String, Frames:Array, FrameRate:Number=0, Looped:Boolean=true):void{
_animations.push(new FlxAnim(Name, Frames, FrameRate, Looped));
}
override public function getScreenXY(P:Point=null):Point{
if (P == null){
P = new Point();
};
P.x = (Math.floor((x - offset.x)) + Math.floor((FlxG.scroll.x * scrollFactor.x)));
P.y = (Math.floor((y - offset.y)) + Math.floor((FlxG.scroll.y * scrollFactor.y)));
return (P);
}
override public function overlapsPoint(X:Number, Y:Number, PerPixel:Boolean=false):Boolean{
var tx:Number = x;
var ty:Number = y;
if (((!((scrollFactor.x == 1))) || (!((scrollFactor.y == 1))))){
tx = (tx - Math.floor((FlxG.scroll.x * (1 - scrollFactor.x))));
ty = (ty - Math.floor((FlxG.scroll.y * (1 - scrollFactor.y))));
};
if (PerPixel){
return (_framePixels.hitTest(new Point(0, 0), 0xFF, new Point((X - tx), (Y - ty))));
};
if ((((((((X <= tx)) || ((X >= (tx + width))))) || ((Y <= ty)))) || ((Y >= (ty + height))))){
return (false);
};
return (true);
}
override public function hitWall(Contact:FlxCore=null):Boolean{
velocity.x = 0;
return (true);
}
}
}//package org.flixel
Section 175
//FlxState (org.flixel.FlxState)
package org.flixel {
import flash.display.*;
public class FlxState extends Sprite {
protected var _layer:FlxLayer;
public static var screen:FlxSprite;
public static var bgColor:uint;
public function FlxState(){
super();
_layer = new FlxLayer();
FlxG.state = this;
if (screen == null){
screen = new FlxSprite();
screen.createGraphic(FlxG.width, FlxG.height, 0, true);
screen.origin.x = (screen.origin.y = 0);
screen.antialiasing = true;
};
}
public function add(Core:FlxCore):FlxCore{
return (_layer.add(Core));
}
public function render():void{
_layer.render();
}
public function update():void{
_layer.update();
}
public function destroy():void{
_layer.destroy();
}
public function preProcess():void{
screen.fill(bgColor);
}
public function postProcess():void{
}
}
}//package org.flixel
Section 176
//FlxText (org.flixel.FlxText)
package org.flixel {
import flash.display.*;
import flash.geom.*;
import flash.text.*;
public class FlxText extends FlxSprite {
protected var _regen:Boolean;
protected var _tf:TextField;
public function FlxText(X:Number, Y:Number, Width:uint, Text:String=null){
if (Text == null){
Text = "";
};
_tf = new TextField();
_tf.width = Width;
_tf.height = 1;
_tf.embedFonts = true;
_tf.selectable = false;
_tf.sharpness = 100;
_tf.defaultTextFormat = new TextFormat("system", 8, 0xFFFFFF);
_tf.text = Text;
super(X, Y);
createGraphic(Width, 1);
_regen = true;
calcFrame();
}
public function get size():Number{
return ((_tf.defaultTextFormat.size as Number));
}
public function get alignment():String{
return (_tf.defaultTextFormat.align);
}
public function set alignment(Alignment:String):void{
var tf:TextFormat = dtfCopy();
tf.align = Alignment;
_tf.defaultTextFormat = tf;
_tf.setTextFormat(tf);
calcFrame();
}
public function set size(Size:Number):void{
var tf:TextFormat = dtfCopy();
tf.size = Size;
_tf.defaultTextFormat = tf;
_tf.setTextFormat(tf);
_regen = true;
calcFrame();
}
protected function dtfCopy():TextFormat{
var dtf:TextFormat = _tf.defaultTextFormat;
return (new TextFormat(dtf.font, dtf.size, dtf.color, dtf.bold, dtf.italic, dtf.underline, dtf.url, dtf.target, dtf.align));
}
public function get text():String{
return (_tf.text);
}
public function get font():String{
return (_tf.defaultTextFormat.font);
}
override protected function calcFrame():void{
var nl:uint;
var i:uint;
if ((((((_tf == null)) || ((_tf.text == null)))) || ((_tf.text.length <= 0)))){
_framePixels.fillRect(_r, 0);
return;
};
if (_regen){
nl = _tf.numLines;
height = 0;
i = 0;
while (i < nl) {
height = (height + _tf.getLineMetrics(i).height);
i++;
};
height = (height + 4);
_framePixels = new BitmapData(width, height, true, 0);
_bh = height;
_tf.height = height;
_r = new Rectangle(0, 0, width, height);
_regen = false;
} else {
_framePixels.fillRect(_r, 0);
};
var tf:TextFormat = _tf.defaultTextFormat;
_mtx.identity();
if ((((tf.align == "center")) && ((_tf.numLines == 1)))){
_tf.setTextFormat(new TextFormat(tf.font, tf.size, tf.color, null, null, null, null, null, "left"));
_mtx.translate(Math.floor(((width - _tf.getLineMetrics(0).width) / 2)), 0);
};
_framePixels.draw(_tf, _mtx, _ct);
_tf.setTextFormat(new TextFormat(tf.font, tf.size, tf.color, null, null, null, null, null, tf.align));
}
public function setFormat(Font:String=null, Size:Number=8, Color:uint=0xFFFFFF, Alignment:String=null):FlxText{
if (Font == null){
Font = "";
};
var tf:TextFormat = dtfCopy();
tf.font = Font;
tf.size = Size;
tf.align = Alignment;
_tf.defaultTextFormat = tf;
_tf.setTextFormat(tf);
_regen = true;
color = Color;
calcFrame();
return (this);
}
public function set text(Text:String):void{
_tf.text = Text;
_regen = true;
calcFrame();
}
public function set font(Font:String):void{
var tf:TextFormat = dtfCopy();
tf.font = Font;
_tf.defaultTextFormat = tf;
_tf.setTextFormat(tf);
_regen = true;
calcFrame();
}
}
}//package org.flixel
Section 177
//FlxTilemap (org.flixel.FlxTilemap)
package org.flixel {
import flash.display.*;
import flash.geom.*;
public class FlxTilemap extends FlxCore {
protected var _tileWidth:uint;
public var startingIndex:uint;
protected var _screenRows:uint;
protected var _data:Array;
protected var _pixels:BitmapData;
protected var _block:FlxCore;
protected var _callbacks:Array;
protected var _rects:Array;
protected var _tileHeight:uint;
public var totalTiles:uint;
protected var _screenCols:uint;
public var drawIndex:uint;
public var auto:uint;
protected var _p:Point;
public var heightInTiles:uint;
public var widthInTiles:uint;
public var collideIndex:uint;
public static const ALT:uint = 2;
public static const AUTO:uint = 1;
public static const OFF:uint = 0;
public static var ImgAutoAlt:Class = FlxTilemap_ImgAutoAlt;
public static var ImgAuto:Class = FlxTilemap_ImgAuto;
public function FlxTilemap(){
super();
auto = OFF;
collideIndex = 1;
startingIndex = 0;
drawIndex = 1;
widthInTiles = 0;
heightInTiles = 0;
totalTiles = 0;
_data = new Array();
_p = new Point();
_tileWidth = 0;
_tileHeight = 0;
_rects = null;
_pixels = null;
_block = new FlxCore();
_block.width = (_block.height = 0);
_block.fixed = true;
_callbacks = new Array();
}
public function setTileByIndex(Index:uint, Tile:uint, UpdateGraphics:Boolean=true):void{
var i:uint;
_data[Index] = Tile;
if (!UpdateGraphics){
return;
};
if (auto == OFF){
updateTile(Index);
return;
};
var r:int = (int((Index / widthInTiles)) - 1);
var rl:int = (r + 3);
var c:int = ((Index % widthInTiles) - 1);
var cl:int = (c + 3);
while (r < rl) {
c = (cl - 3);
while (c < cl) {
if ((((((((r >= 0)) && ((r < heightInTiles)))) && ((c >= 0)))) && ((c < widthInTiles)))){
i = ((r * widthInTiles) + c);
autoTile(i);
updateTile(i);
};
c++;
};
r++;
};
}
public function getTileByIndex(Index:uint):uint{
return (_data[Index]);
}
public function setCallback(Tile:uint, Callback:Function, Range:uint=1):void{
if (Range <= 0){
return;
};
var i:uint = Tile;
while (i < (Tile + Range)) {
_callbacks[i] = Callback;
i++;
};
}
override public function overlaps(Core:FlxCore):Boolean{
var c:uint;
var d:uint;
var i:uint;
var dd:uint;
var blocks:Array = new Array();
var ix:uint = Math.floor(((Core.x - x) / _tileWidth));
var iy:uint = Math.floor(((Core.y - y) / _tileHeight));
var iw:uint = (Math.ceil((Core.width / _tileWidth)) + 1);
var ih:uint = (Math.ceil((Core.height / _tileHeight)) + 1);
var r:uint;
while (r < ih) {
if ((((r < 0)) || ((r >= heightInTiles)))){
break;
};
d = (((iy + r) * widthInTiles) + ix);
c = 0;
while (c < iw) {
if ((((c < 0)) || ((c >= widthInTiles)))){
break;
};
dd = _data[(d + c)];
if (dd >= collideIndex){
blocks.push({x:(x + ((ix + c) * _tileWidth)), y:(y + ((iy + r) * _tileHeight)), data:dd});
};
c++;
};
r++;
};
var bl:uint = blocks.length;
var hx:Boolean;
i = 0;
while (i < bl) {
_block.last.x = (_block.x = blocks[i].x);
_block.last.y = (_block.y = blocks[i].y);
if (_block.overlaps(Core)){
return (true);
};
i++;
};
return (false);
}
public function loadMap(MapData:String, TileGraphic:Class, TileWidth:uint=0, TileHeight:uint=0):FlxTilemap{
var c:uint;
var cols:Array;
var i:uint;
var rows:Array = MapData.split("\n");
heightInTiles = rows.length;
var r:uint;
while (r < heightInTiles) {
cols = rows[r].split(",");
if (cols.length <= 1){
heightInTiles--;
} else {
if (widthInTiles == 0){
widthInTiles = cols.length;
};
c = 0;
while (c < widthInTiles) {
_data.push(uint(cols[c]));
c++;
};
};
r++;
};
totalTiles = (widthInTiles * heightInTiles);
if (auto > OFF){
collideIndex = (startingIndex = (drawIndex = 1));
i = 0;
while (i < totalTiles) {
autoTile(i);
i++;
};
};
_pixels = FlxG.addBitmap(TileGraphic);
_tileWidth = TileWidth;
if (_tileWidth == 0){
_tileWidth = _pixels.height;
};
_tileHeight = TileHeight;
if (_tileHeight == 0){
_tileHeight = _tileWidth;
};
_block.width = _tileWidth;
_block.height = _tileHeight;
width = (widthInTiles * _tileWidth);
height = (heightInTiles * _tileHeight);
_rects = new Array(totalTiles);
i = 0;
while (i < totalTiles) {
updateTile(i);
i++;
};
_screenRows = (Math.ceil((FlxG.height / _tileHeight)) + 1);
if (_screenRows > heightInTiles){
_screenRows = heightInTiles;
};
_screenCols = (Math.ceil((FlxG.width / _tileWidth)) + 1);
if (_screenCols > widthInTiles){
_screenCols = widthInTiles;
};
return (this);
}
protected function updateTile(Index:uint):void{
if (_data[Index] < drawIndex){
_rects[Index] = null;
return;
};
var rx:uint = ((_data[Index] - startingIndex) * _tileWidth);
var ry:uint;
if (rx >= _pixels.width){
ry = (uint((rx / _pixels.width)) * _tileHeight);
rx = (rx % _pixels.width);
};
_rects[Index] = new Rectangle(rx, ry, _tileWidth, _tileHeight);
}
override public function render():void{
var c:uint;
var cri:uint;
super.render();
getScreenXY(_p);
var tx:int = Math.floor((-(_p.x) / _tileWidth));
var ty:int = Math.floor((-(_p.y) / _tileHeight));
if (tx < 0){
tx = 0;
};
if (tx > (widthInTiles - _screenCols)){
tx = (widthInTiles - _screenCols);
};
if (ty < 0){
ty = 0;
};
if (ty > (heightInTiles - _screenRows)){
ty = (heightInTiles - _screenRows);
};
var ri:int = ((ty * widthInTiles) + tx);
_p.x = (_p.x + (tx * _tileWidth));
_p.y = (_p.y + (ty * _tileHeight));
var opx:int = _p.x;
var r:uint;
while (r < _screenRows) {
cri = ri;
c = 0;
while (c < _screenCols) {
if (_rects[cri] != null){
FlxG.buffer.copyPixels(_pixels, _rects[cri], _p, null, null, true);
};
cri++;
_p.x = (_p.x + _tileWidth);
c++;
};
ri = (ri + widthInTiles);
_p.x = opx;
_p.y = (_p.y + _tileHeight);
r++;
};
}
public function ray(StartX:Number, StartY:Number, EndX:Number, EndY:Number, Result:Point, Resolution:Number=1):Boolean{
var tx:uint;
var ty:uint;
var rx:Number;
var ry:Number;
var q:Number;
var lx:Number;
var ly:Number;
var step:Number = _tileWidth;
if (_tileHeight < _tileWidth){
step = _tileHeight;
};
step = (step / Resolution);
var dx:Number = (EndX - StartX);
var dy:Number = (EndY - StartY);
var distance:Number = Math.sqrt(((dx * dx) + (dy * dy)));
var steps:uint = Math.ceil((distance / step));
var stepX:Number = (dx / steps);
var stepY:Number = (dy / steps);
var curX:Number = (StartX - stepX);
var curY:Number = (StartY - stepY);
var i:uint;
while (i < steps) {
curX = (curX + stepX);
curY = (curY + stepY);
if ((((((((curX < 0)) || ((curX > width)))) || ((curY < 0)))) || ((curY > height)))){
} else {
tx = (curX / _tileWidth);
ty = (curY / _tileHeight);
if (_data[((ty * widthInTiles) + tx)] >= collideIndex){
tx = (tx * _tileWidth);
ty = (ty * _tileHeight);
rx = 0;
ry = 0;
lx = (curX - stepX);
ly = (curY - stepY);
q = tx;
if (dx < 0){
q = (q + _tileWidth);
};
rx = q;
ry = (ly + (stepY * ((q - lx) / stepX)));
if ((((ry > ty)) && ((ry < (ty + _tileHeight))))){
if (Result == null){
Result = new Point();
};
Result.x = rx;
Result.y = ry;
return (true);
};
q = ty;
if (dy < 0){
q = (q + _tileHeight);
};
rx = (lx + (stepX * ((q - ly) / stepY)));
ry = q;
if ((((rx > tx)) && ((rx < (tx + _tileWidth))))){
if (Result == null){
Result = new Point();
};
Result.x = rx;
Result.y = ry;
return (true);
};
return (false);
};
};
i++;
};
return (false);
}
public function getTile(X:uint, Y:uint):uint{
return (getTileByIndex(((Y * widthInTiles) + X)));
}
public function setTile(X:uint, Y:uint, Tile:uint, UpdateGraphics:Boolean=true):void{
setTileByIndex(((Y * widthInTiles) + X), Tile, UpdateGraphics);
}
public function follow():void{
FlxG.followBounds(x, y, width, height);
}
protected function autoTile(Index:uint):void{
if (_data[Index] == 0){
return;
};
_data[Index] = 0;
if (((((Index - widthInTiles) < 0)) || ((_data[(Index - widthInTiles)] > 0)))){
_data[Index] = (_data[Index] + 1);
};
if (((((Index % widthInTiles) >= (widthInTiles - 1))) || ((_data[(Index + 1)] > 0)))){
_data[Index] = (_data[Index] + 2);
};
if (((((Index + widthInTiles) >= totalTiles)) || ((_data[(Index + widthInTiles)] > 0)))){
_data[Index] = (_data[Index] + 4);
};
if (((((Index % widthInTiles) <= 0)) || ((_data[(Index - 1)] > 0)))){
_data[Index] = (_data[Index] + 8);
};
if ((((auto == ALT)) && ((_data[Index] == 15)))){
if (((((((Index % widthInTiles) > 0)) && (((Index + widthInTiles) < totalTiles)))) && ((_data[((Index + widthInTiles) - 1)] <= 0)))){
_data[Index] = 1;
};
if (((((((Index % widthInTiles) > 0)) && (((Index - widthInTiles) >= 0)))) && ((_data[((Index - widthInTiles) - 1)] <= 0)))){
_data[Index] = 2;
};
if (((((((Index % widthInTiles) < widthInTiles)) && (((Index - widthInTiles) >= 0)))) && ((_data[((Index - widthInTiles) + 1)] <= 0)))){
_data[Index] = 4;
};
if (((((((Index % widthInTiles) < widthInTiles)) && (((Index + widthInTiles) < totalTiles)))) && ((_data[((Index + widthInTiles) + 1)] <= 0)))){
_data[Index] = 8;
};
};
_data[Index] = (_data[Index] + 1);
}
override public function collide(Core:FlxCore):Boolean{
var c:uint;
var d:uint;
var i:uint;
var dd:uint;
var blocks:Array = new Array();
var ix:uint = Math.floor(((Core.x - x) / _tileWidth));
var iy:uint = Math.floor(((Core.y - y) / _tileHeight));
var iw:uint = (Math.ceil((Core.width / _tileWidth)) + 1);
var ih:uint = (Math.ceil((Core.height / _tileHeight)) + 1);
var r:uint;
while (r < ih) {
if ((((r < 0)) || ((r >= heightInTiles)))){
break;
};
d = (((iy + r) * widthInTiles) + ix);
c = 0;
while (c < iw) {
if ((((c < 0)) || ((c >= widthInTiles)))){
break;
};
dd = _data[(d + c)];
if (dd >= collideIndex){
blocks.push({x:(x + ((ix + c) * _tileWidth)), y:(y + ((iy + r) * _tileHeight)), data:dd});
};
c++;
};
r++;
};
var bl:uint = blocks.length;
var hx:Boolean;
i = 0;
while (i < bl) {
_block.last.x = (_block.x = blocks[i].x);
_block.last.y = (_block.y = blocks[i].y);
if (_block.collideX(Core)){
d = blocks[i].data;
if (_callbacks[d] != null){
var _local15 = _callbacks;
_local15[d](Core, (_block.x / _tileWidth), (_block.y / _tileHeight), d);
};
hx = true;
};
i++;
};
var hy:Boolean;
i = 0;
while (i < bl) {
_block.last.x = (_block.x = blocks[i].x);
_block.last.y = (_block.y = blocks[i].y);
if (_block.collideY(Core)){
d = blocks[i].data;
if (_callbacks[d] != null){
_local15 = _callbacks;
_local15[d](Core, (_block.x / _tileWidth), (_block.y / _tileHeight), d);
};
hy = true;
};
i++;
};
return (((hx) || (hy)));
}
public static function arrayToCSV(Data:Array, Width:int):String{
var r:uint;
var c:uint;
var csv:String;
var Height:int = (Data.length / Width);
r = 0;
while (r < Height) {
c = 0;
while (c < Width) {
if (c == 0){
if (r == 0){
csv = (csv + Data[0]);
} else {
csv = (csv + ("\n" + Data[(r * Width)]));
};
} else {
csv = (csv + (", " + Data[((r * Width) + c)]));
};
c++;
};
r++;
};
return (csv);
}
public static function pngToCSV(PNGFile:Class, Invert:Boolean=false, Scale:uint=1):String{
var layout:Bitmap;
var r:uint;
var c:uint;
var p:uint;
var csv:String;
var tmp:Bitmap;
var mtx:Matrix;
if (Scale <= 1){
layout = new (PNGFile);
} else {
tmp = new (PNGFile);
layout = new Bitmap(new BitmapData((tmp.width * Scale), (tmp.height * Scale)));
mtx = new Matrix();
mtx.scale(Scale, Scale);
layout.bitmapData.draw(tmp, mtx);
};
var bd:BitmapData = layout.bitmapData;
var w:uint = layout.width;
var h:uint = layout.height;
r = 0;
while (r < h) {
c = 0;
while (c < w) {
p = bd.getPixel(c, r);
if (((((Invert) && ((p > 0)))) || (((!(Invert)) && ((p == 0)))))){
p = 1;
} else {
p = 0;
};
if (c == 0){
if (r == 0){
csv = (csv + p);
} else {
csv = (csv + ("\n" + p));
};
} else {
csv = (csv + (", " + p));
};
c++;
};
r++;
};
return (csv);
}
}
}//package org.flixel
Section 178
//FlxTilemap_ImgAuto (org.flixel.FlxTilemap_ImgAuto)
package org.flixel {
import mx.core.*;
public class FlxTilemap_ImgAuto extends BitmapAsset {
}
}//package org.flixel
Section 179
//FlxTilemap_ImgAutoAlt (org.flixel.FlxTilemap_ImgAutoAlt)
package org.flixel {
import mx.core.*;
public class FlxTilemap_ImgAutoAlt extends BitmapAsset {
}
}//package org.flixel
Section 180
//_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 181
//_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 182
//_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 183
//_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 184
//_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 185
//_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 186
//_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 187
//_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 188
//_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 189
//_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 190
//_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 191
//_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 192
//_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 193
//_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 194
//_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 195
//_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 196
//_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 197
//_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 198
//_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 199
//_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 200
//_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 201
//_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 202
//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 203
//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 204
//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 205
//Hats (Hats)
package {
import org.flixel.*;
import com.globalgamejam.Hats.*;
public class Hats extends FlxGame {
public function Hats():void{
super(320, 240, MenuState, 2);
showLogo = false;
FlxState.bgColor = 4278190080;
useDefaultHotKeys = true;
}
}
}//package
Section 206
//Preloader (Preloader)
package {
import org.flixel.data.*;
public class Preloader extends FlxFactory {
public function Preloader():void{
className = "Hats";
super();
}
}
}//package