STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
228123
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2561 · P5121

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/42516886?noj=FRM42516886-11DC" width="1" height="1"></div>

Space Velocity Bounce.swf

This is the info page for
Flash #30277

(Click the ID number above for more basic data on this flash file.)


Text
Save

<p align="center"></p>

<p align="left"></p>

Press Space to exit game.

GAME PAUSED

Press 'P' to unpause

Loading....

BOUNCE!

CREDITS

LEVEL EDITOR

PLAY GAME

INSTRUCTIONS

PLAY MORE GAMES

BACK

Choose Level

Credits

<p align="center"><font face="Helvetica" size="15" color="#999999" letterSpacing="0.000000" kerning="0"><b>Programming</b><font color="#ffffff"><b> - </b></font></font></p><p align="center"><font face="Helvetica" size="15" color="#ffffff" letterSpacing="0.000000" kerning="0"><b>Andrew McGrath </b><font color="#bdd8e8"><a href="http://www.gamersgarden.com" target = "_blank"><b>(Website)</b></a></font></font></p>

<p align="center"><font face="Helvetica" size="15" color="#999999" letterSpacing="0.000000" kerning="0"><b>Graphics </b><font color="#ffffff"><b>- </b></font></font></p><p align="center"><font face="Helvetica" size="15" color="#ffffff" letterSpacing="0.000000" kerning="0"><b>Adam Wren</b></font></p><p align="center"><font face="Helvetica" size="15" color="#ffffff" letterSpacing="0.000000" kerning="0"><b>David Schultz</b></font></p><p align="center"><font face="Helvetica" size="15" color="#ffffff" letterSpacing="0.000000" kerning="0"><b>Andrew McGrath</b></font></p><p align="center"></p><p align="center"><font face="Helvetica" size="15" color="#999999" letterSpacing="0.000000" kerning="0"><b>Music </b><font color="#ffffff"><b>-</b></font></font></p><p align="center"><font face="Helvetica" size="15" color="#ffffff" letterSpacing="0.000000" kerning="0"><b>&quot;On the Bridge&quot;</b></font></p><p align="center"><font face="Helvetica" size="15" color="#ffffff" letterSpacing="0.000000" kerning="0"><b>by Pero </b><font color="#bdd8e8"><b>(</b><a href="http://silvercalf.googlepages.com/flash" target = "_blank"><b>Website</b></a><b>)</b></font></font></p>

Menu

Level Completed

Next Level

Enter the level code into this textbox and press play game

Level code: (To give to your friends.)

<p align="left"></p>

Replay

You have completed Bounce!

Congratulations.

INSTRUCTIONS

Hello, Soldier. Your objective throughout
this course is to turn every power
platform on.
Power platforms look like this when off:

And this when on:

Turn all these platforms on to
complete the level.
Use the left and right keys to move
yourself around the level!

Throughout the course there are
obects to help you, and there are
objects to hinder your progress.
These bouncy platforms give you a
boost when you bounce on them:

You can rest on these walls:

Beware of the following objects:

If you bounce the wrong way near
one of these, you will come off
second best.

Remember these shortcuts, and
use them well.
'P' to pause while in game.
'R' to reset a level.
'M' to mute the music (why
would you want to!)
'Space' to exit the level

<p align="left"><font face="Arial" size="12" color="#ff3399" letterSpacing="0.000000" kerning="0">For a tutorial on how to <sbr />use the level editor, <sbr />click <a href="http://www.gamersgarden.com/blog/using-the-level-editor-in-bounce" target = "_blank">here</a></font></p>

ActionScript [AS3]

Section 1
//Ball (com.gamersgarden.ball.Ball) package com.gamersgarden.ball { import flash.display.*; public dynamic class Ball extends MovieClip { public var mass:int; public function Ball(_arg1:int, _arg2:int){ x = _arg1; y = _arg2; mass = 2; } public function dispose(){ parent.removeChild(this); } } }//package com.gamersgarden.ball
Section 2
//Background (com.gamersgarden.bg.Background) package com.gamersgarden.bg { import flash.display.*; import flash.events.*; public dynamic class Background extends Sprite { public var paused:Boolean;// = false public var vx:Number;// = 0 public var vy:Number;// = 0 public function Background(_arg1:int, _arg2:int, _arg3:int){ var _local4:int; var _local5:int; var _local6:Star; vx = 0; vy = 0; paused = false; super(); _local4 = 0; while (_local4 < (_arg1 / 2)) { _local6 = new Star((Math.random() * _arg2), (Math.random() * _arg3), this); addChild(_local6); _local4++; }; _local5 = (_arg1 / 2); while (_local5 < _arg1) { createStar(); _local5++; }; } public function dispose(){ var _local1:*; _local1 = (this.numChildren - 1); while (_local1 >= 0) { MovieClip(getChildAt(_local1)).dispose(); removeChildAt(_local1); _local1--; }; } public function twinkle(_arg1:Number, _arg2:Number){ addChild(new Twinkle(_arg1, _arg2, this)); } public function createStar(){ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:int; var _local9:Star; _local1 = (Math.random() * -100); _local2 = ((Math.random() * 100) + 650); _local3 = ((Math.random() * 100) + 450); _local4 = (Math.random() * 650); _local5 = (Math.random() * 450); _local8 = (Math.floor((Math.random() * 4)) + 1); if (_local8 == 1){ _local6 = _local1; _local7 = _local5; } else { if (_local8 == 2){ _local6 = _local2; _local7 = _local5; } else { if (_local8 == 3){ _local7 = _local1; _local6 = _local4; } else { if (_local8 == 4){ _local7 = _local3; _local6 = _local4; }; }; }; }; _local9 = new Star(_local6, _local7, this); addChild(_local9); } public function getVX():Number{ return (vx); } public function getVY():Number{ return (vy); } public function setVX(_arg1:Number){ vx = _arg1; } public function setVY(_arg1:Number){ vy = _arg1; } public function isPaused():Boolean{ return (paused); } } }//package com.gamersgarden.bg
Section 3
//Star (com.gamersgarden.bg.Star) package com.gamersgarden.bg { import flash.display.*; import flash.events.*; import flash.utils.*; public class Star extends MovieClip { private var colors:Array; private var lastTimer:Number; private var p:Object; public function Star(_arg1:Number, _arg2:Number, _arg3){ var _local4:*; colors = new Array("0x991111", "0xFFFFFF", "0x119911", "0x999911"); super(); x = _arg1; y = _arg2; p = _arg3; _local4 = colors[int((Math.random() * colors.length))]; graphics.lineStyle(3, _local4, 1); graphics.moveTo(0, 0); graphics.lineTo(1, 1); lastTimer = getTimer(); addEventListener(Event.ENTER_FRAME, adjustMovement); } public function dispose(){ removeEventListener(Event.ENTER_FRAME, adjustMovement); } public function adjustMovement(_arg1:Event){ var _local2:Number; _local2 = (getTimer() - lastTimer); lastTimer = (lastTimer + _local2); if (!p.isPaused()){ this.x = (this.x + ((p.getVX() * _local2) * 0.1)); this.y = (this.y + ((p.getVY() * _local2) * 0.1)); if ((((((((x < -100)) || ((x > 750)))) || ((y < -100)))) || ((y > 550)))){ disposeAndCreateNew(); }; }; } public function disposeAndCreateNew(){ graphics.clear(); parent.removeChild(this); p.createStar(); removeEventListener(Event.ENTER_FRAME, adjustMovement); } } }//package com.gamersgarden.bg
Section 4
//Twinkle (com.gamersgarden.bg.Twinkle) package com.gamersgarden.bg { import flash.display.*; import flash.events.*; import flash.utils.*; public class Twinkle extends MovieClip { private var startTimer:Number; private var p; private var timeToLast:Number; public function Twinkle(_arg1, _arg2, _arg3){ this.x = _arg1; this.y = _arg2; p = _arg3; addEventListener(Event.ENTER_FRAME, manageMovement); this.scaleX = 0.95; } public function dispose(){ removeEventListener(Event.ENTER_FRAME, manageMovement); } public function manageMovement(_arg1:Event){ if (!p.isPaused()){ this.x = (this.x + p.getVX()); this.y = (this.y + p.getVY()); this.scaleX = (this.scaleX - 0.03); this.scaleY = (this.scaleY - 0.03); this.alpha = (this.alpha - 0.03); if ((((this.alpha <= 0)) || ((this.scaleX <= 0)))){ disposeIndependantly(); }; }; } public function disposeIndependantly(){ parent.removeChild(this); removeEventListener(Event.ENTER_FRAME, manageMovement); } } }//package com.gamersgarden.bg
Section 5
//Map (com.gamersgarden.map.Map) package com.gamersgarden.map { import flash.display.*; import flash.events.*; import com.gamersgarden.platforms.*; public class Map extends MovieClip { private var SPIKY:int;// = 4 public var paused:Boolean;// = false public var isDisplay:Boolean;// = false private var numStandardPlatforms:int; public var yStart:Number; private var STAR:int;// = 5 public var p; private var BOUNCE:int;// = 1 private var planet:Planet; public var platforms:Array; private var PLANET:int;// = 2 private var toggledPlatforms:int; private var limit:Number; private var STANDARD:int;// = 0 private var vx:Number;// = 0 private var vy:Number;// = 0 public var xStart:Number; private var WALL:int;// = 3 public function Map(_arg1:String){ vx = 0; vy = 0; STANDARD = 0; BOUNCE = 1; PLANET = 2; WALL = 3; SPIKY = 4; STAR = 5; paused = false; isDisplay = false; super(); limit = 0; platforms = new Array(); if (_arg1 != ""){ drawLevel(_arg1); }; xStart = (325 - parseInt(_arg1.substr(0, 3), 36)); yStart = (200 - parseInt(_arg1.substr(3, 3), 36)); this.x = xStart; this.y = yStart; addEventListener(Event.ENTER_FRAME, manageMovement); toggledPlatforms = 0; } public function manageMovement(_arg1:Event){ if (!paused){ this.x = (this.x + vx); this.y = (this.y + vy); if ((((numStandardPlatforms == toggledPlatforms)) && ((numStandardPlatforms > 0)))){ p.finishGame(); }; if (((!(isDisplay)) && ((p.relY > limit)))){ p.resetGame(); }; }; } public function dispose(){ var _local1:*; _local1 = (this.numChildren - 1); while (_local1 >= 0) { MovieClip(getChildAt(_local1)).dispose(); removeChildAt(_local1); platforms = new Array(); _local1--; }; numStandardPlatforms = 0; toggledPlatforms = 0; } public function removeToggled(){ toggledPlatforms--; } public function drawLevel(_arg1:String){ var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; numStandardPlatforms = 0; limit = 0; _local2 = 6; while (_local2 < (_arg1.length - 1)) { _local4 = parseInt(_arg1.substr(_local2, 3), 36); _local5 = parseInt(_arg1.substr((_local2 + 3), 3), 36); if ((_local5 + 200) > limit){ limit = (_local5 + 200); }; _local6 = parseInt(_arg1.substr((_local2 + 6), 1), 10); if (_local6 == STANDARD){ _local3 = new StandardPlatform(_local4, _local5); _local7 = _arg1.substr((_local2 + 7), 1); if (_local7 == 0){ _local3.setMoving(false); } else { _local3.setMoving(true); }; platforms.push(_local3); this.numStandardPlatforms++; _local2++; } else { if (_local6 == BOUNCE){ _local3 = new BouncePlatform(_local4, _local5); _local7 = _arg1.substr((_local2 + 7), 1); if (_local7 == 0){ _local3.setMoving(false); } else { _local3.setMoving(true); }; platforms.push(_local3); _local2++; platforms.push(_local3); } else { if (_local6 == PLANET){ _local8 = parseInt(_arg1.substr((_local2 + 7), 3), 36); _local3 = new Planet(_local4, _local5, _local8); _local2 = (_local2 + 3); platforms.push(_local3); } else { if (_local6 == WALL){ _local3 = new Wall(_local4, _local5); platforms.push(_local3); } else { if (_local6 == SPIKY){ _local3 = new SpikyPlatform(_local4, _local5); _local7 = _arg1.substr((_local2 + 7), 1); if (_local7 == 0){ _local3.setMoving(false); } else { _local3.setMoving(true); }; platforms.push(_local3); _local2++; platforms.push(_local3); }; }; }; }; }; addChild(_local3); _local2 = (_local2 + 7); }; } public function addToggled(){ toggledPlatforms++; } public function setVX(_arg1:Number){ vx = _arg1; } public function setVY(_arg1:Number){ vy = _arg1; } } }//package com.gamersgarden.map
Section 6
//BouncePlatform (com.gamersgarden.platforms.BouncePlatform) package com.gamersgarden.platforms { import flash.display.*; import flash.events.*; public dynamic class BouncePlatform extends MovieClip { private var moving:Boolean;// = false private var xPosLimit:int; public var type;// = 1 private var dir:int;// = 1 private var xNegLimit:int; public var moves:Boolean;// = false private var on:Boolean; public function BouncePlatform(_arg1, _arg2){ var _local3:int; type = 1; moves = false; moving = false; dir = 1; super(); x = _arg1; y = _arg2; _local3 = 150; xNegLimit = (x - (_local3 / 2)); xPosLimit = (x + (_local3 / 2)); on = false; this.gotoAndStop(1); addEventListener(Event.ENTER_FRAME, manageMovement); } public function dispose(){ removeEventListener(Event.ENTER_FRAME, manageMovement); } public function manageMovement(_arg1:Event){ if (this.moving){ this.x = (this.x + dir); if (x > xPosLimit){ x = xPosLimit; dir = -1; } else { if (x < xNegLimit){ x = xNegLimit; dir = 1; }; }; }; } public function setMoving(_arg1:Boolean){ moving = _arg1; } public function toggleOn(){ if (on){ on = false; this.gotoAndStop(1); } else { if (!on){ on = true; this.gotoAndStop(2); }; }; } public function setXAfterCollision(_arg1:Number, _arg2:Number):Number{ return (_arg1); } public function setYAfterCollision(_arg1:Number, _arg2:Number):Number{ return ((_arg1 * -1.2)); } } }//package com.gamersgarden.platforms
Section 7
//Planet (com.gamersgarden.platforms.Planet) package com.gamersgarden.platforms { import flash.display.*; public dynamic class Planet extends MovieClip { public var mass:int; public var type:int;// = 2 public function Planet(_arg1:Number, _arg2:Number, _arg3:int){ type = 2; super(); this.x = _arg1; this.y = _arg2; mass = _arg3; } public function dispose(){ } } }//package com.gamersgarden.platforms
Section 8
//SpikyPlatform (com.gamersgarden.platforms.SpikyPlatform) package com.gamersgarden.platforms { import flash.display.*; import flash.events.*; public dynamic class SpikyPlatform extends MovieClip { private var moving:Boolean;// = false private var xPosLimit:int; public var type;// = 4 private var dir:int;// = 1 private var xNegLimit:int; public var moves:Boolean;// = false public function SpikyPlatform(_arg1, _arg2){ var _local3:int; type = 4; moves = false; moving = false; dir = 1; super(); x = _arg1; y = _arg2; _local3 = 150; xNegLimit = (x - (_local3 / 2)); xPosLimit = (x + (_local3 / 2)); addEventListener(Event.ENTER_FRAME, manageMovement); } public function dispose(){ removeEventListener(Event.ENTER_FRAME, manageMovement); } public function manageMovement(_arg1:Event){ if (this.moving){ this.x = (this.x + dir); if (x > xPosLimit){ x = xPosLimit; dir = -1; } else { if (x < xNegLimit){ x = xNegLimit; dir = 1; }; }; }; } public function setMoving(_arg1:Boolean){ moving = _arg1; } } }//package com.gamersgarden.platforms
Section 9
//StandardPlatform (com.gamersgarden.platforms.StandardPlatform) package com.gamersgarden.platforms { import flash.display.*; import flash.events.*; public dynamic class StandardPlatform extends MovieClip { private var moving:Boolean;// = false private var xPosLimit:int; public var type;// = 0 private var dir:int; private var xNegLimit:int; public var moves:Boolean;// = false private var on:Boolean; public function StandardPlatform(_arg1, _arg2){ var _local3:int; var _local4:*; type = 0; moves = false; moving = false; super(); addFrameScript(0, frame1); x = _arg1; y = _arg2; _local3 = 150; xNegLimit = (x - (_local3 / 2)); xPosLimit = (x + (_local3 / 2)); on = false; this.gotoAndStop(1); addEventListener(Event.ENTER_FRAME, manageMovement); _local4 = (Math.random() * 10); if (_local4 <= 4){ dir = 1; } else { dir = -1; }; } public function dispose(){ removeEventListener(Event.ENTER_FRAME, manageMovement); } public function manageMovement(_arg1:Event){ if (this.moving){ this.x = (this.x + dir); if (x > xPosLimit){ x = xPosLimit; dir = -1; } else { if (x < xNegLimit){ x = xNegLimit; dir = 1; }; }; }; } public function setMoving(_arg1:Boolean){ moving = _arg1; } public function toggleOn(){ if (on){ on = false; this.gotoAndStop(1); MovieClip(parent).removeToggled(); } else { if (!on){ on = true; this.gotoAndStop(2); MovieClip(parent).addToggled(); }; }; } function frame1(){ stop(); } public function setXAfterCollision(_arg1:Number, _arg2:Number):Number{ return (_arg1); } public function setYAfterCollision(_arg1:Number, _arg2:Number):Number{ return ((_arg1 * -1)); } } }//package com.gamersgarden.platforms
Section 10
//Wall (com.gamersgarden.platforms.Wall) package com.gamersgarden.platforms { import flash.display.*; public dynamic class Wall extends MovieClip { public var type;// = 3 private var on:Boolean; public function Wall(_arg1, _arg2){ type = 3; super(); x = _arg1; y = _arg2; on = false; this.gotoAndStop(1); } public function dispose(){ } public function setXAfterCollision(_arg1:Number, _arg2:Number):Number{ return (_arg1); } public function setYAfterCollision(_arg1:Number, _arg2:Number):Number{ return ((_arg1 * -0.2)); } } }//package com.gamersgarden.platforms
Section 11
//Window (com.gamersgarden.windows.Window) package com.gamersgarden.windows { import fl.controls.*; import flash.display.*; import flash.events.*; import flash.text.*; public class Window extends MovieClip { public var displayText:TextField; public var __id0_:UIScrollBar; private var dragging:Boolean; private var functionToPerform:Function; public var dragger:SimpleButton; public var titleText:TextField; private var dragX:Number; private var dragY:Number; public var close:SimpleButton; public function Window(_arg1:String, _arg2:String, _arg3){ this.titleText.text = _arg1; this.displayText.text = _arg2; this.displayText.selectable = true; close.addEventListener(MouseEvent.CLICK, dispose); dragger.addEventListener(MouseEvent.MOUSE_DOWN, drag); dragger.addEventListener(MouseEvent.MOUSE_UP, releaseDrag); addEventListener(Event.ENTER_FRAME, manageMovement); functionToPerform = _arg3; __setProp___id0__window_Layer3_1(); } public function dispose(_arg1:Event){ close.removeEventListener(MouseEvent.CLICK, dispose); dragger.removeEventListener(MouseEvent.MOUSE_DOWN, drag); dragger.removeEventListener(MouseEvent.MOUSE_UP, releaseDrag); removeEventListener(Event.ENTER_FRAME, manageMovement); parent.removeChild(this); functionToPerform.call(parent); } public function manageMovement(_arg1:Event){ if (dragging){ this.x = (parent.mouseX + dragX); this.y = (parent.mouseY + dragY); }; } public function drag(_arg1:MouseEvent){ if (_arg1.currentTarget == this.dragger){ dragging = true; dragX = (this.x - stage.mouseX); dragY = (this.y - stage.mouseY); }; } function __setProp___id0__window_Layer3_1(){ try { __id0_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id0_.direction = "vertical"; __id0_.scrollTargetName = "displayText"; __id0_.visible = true; try { __id0_["componentInspectorSetting"] = false; } catch(e:Error) { }; } public function releaseDrag(_arg1:MouseEvent){ if (_arg1.currentTarget == this.dragger){ dragging = false; }; } } }//package com.gamersgarden.windows
Section 12
//BaseScrollPane (fl.containers.BaseScrollPane) package fl.containers { import fl.core.*; import flash.events.*; import fl.controls.*; import fl.events.*; import flash.display.*; import flash.geom.*; public class BaseScrollPane extends UIComponent { protected var defaultLineScrollSize:Number;// = 4 protected var _maxHorizontalScrollPosition:Number;// = 0 protected var vScrollBar:Boolean; protected var disabledOverlay:Shape; protected var hScrollBar:Boolean; protected var availableWidth:Number; protected var _verticalPageScrollSize:Number;// = 0 protected var vOffset:Number;// = 0 protected var _verticalScrollBar:ScrollBar; protected var useFixedHorizontalScrolling:Boolean;// = false protected var contentWidth:Number;// = 0 protected var contentHeight:Number;// = 0 protected var _horizontalPageScrollSize:Number;// = 0 protected var background:DisplayObject; protected var _useBitmpScrolling:Boolean;// = false protected var contentPadding:Number;// = 0 protected var availableHeight:Number; protected var _horizontalScrollBar:ScrollBar; protected var contentScrollRect:Rectangle; protected var _horizontalScrollPolicy:String; protected var _verticalScrollPolicy:String; protected static const SCROLL_BAR_STYLES:Object = {upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {repeatDelay:500, repeatInterval:35, skin:"ScrollPane_upSkin", contentPadding:0, disabledAlpha:0.5}; public function BaseScrollPane(){ contentWidth = 0; contentHeight = 0; contentPadding = 0; vOffset = 0; _maxHorizontalScrollPosition = 0; _horizontalPageScrollSize = 0; _verticalPageScrollSize = 0; defaultLineScrollSize = 4; useFixedHorizontalScrolling = false; _useBitmpScrolling = false; super(); } protected function handleWheel(_arg1:MouseEvent):void{ if (((((!(enabled)) || (!(_verticalScrollBar.visible)))) || ((contentHeight <= availableHeight)))){ return; }; _verticalScrollBar.scrollPosition = (_verticalScrollBar.scrollPosition - (_arg1.delta * verticalLineScrollSize)); setVerticalScrollPosition(_verticalScrollBar.scrollPosition); dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _arg1.delta, horizontalScrollPosition)); } public function get verticalScrollPosition():Number{ return (_verticalScrollBar.scrollPosition); } protected function drawDisabledOverlay():void{ if (enabled){ if (contains(disabledOverlay)){ removeChild(disabledOverlay); }; } else { disabledOverlay.x = (disabledOverlay.y = contentPadding); disabledOverlay.width = availableWidth; disabledOverlay.height = availableHeight; disabledOverlay.alpha = (getStyleValue("disabledAlpha") as Number); addChild(disabledOverlay); }; } public function set verticalScrollPosition(_arg1:Number):void{ drawNow(); _verticalScrollBar.scrollPosition = _arg1; setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); } protected function setContentSize(_arg1:Number, _arg2:Number):void{ if ((((((contentWidth == _arg1)) || (useFixedHorizontalScrolling))) && ((contentHeight == _arg2)))){ return; }; contentWidth = _arg1; contentHeight = _arg2; invalidate(InvalidationType.SIZE); } public function get horizontalScrollPosition():Number{ return (_horizontalScrollBar.scrollPosition); } public function get horizontalScrollBar():ScrollBar{ return (_horizontalScrollBar); } override public function set enabled(_arg1:Boolean):void{ if (enabled == _arg1){ return; }; _verticalScrollBar.enabled = _arg1; _horizontalScrollBar.enabled = _arg1; super.enabled = _arg1; } public function get verticalLineScrollSize():Number{ return (_verticalScrollBar.lineScrollSize); } public function get horizontalScrollPolicy():String{ return (_horizontalScrollPolicy); } protected function calculateAvailableSize():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = ScrollBar.WIDTH; _local2 = (contentPadding = Number(getStyleValue("contentPadding"))); _local3 = ((height - (2 * _local2)) - vOffset); vScrollBar = (((_verticalScrollPolicy == ScrollPolicy.ON)) || ((((_verticalScrollPolicy == ScrollPolicy.AUTO)) && ((contentHeight > _local3))))); _local4 = ((width - (vScrollBar) ? _local1 : 0) - (2 * _local2)); _local5 = (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - _local4); hScrollBar = (((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_local5 > 0))))); if (hScrollBar){ _local3 = (_local3 - _local1); }; if (((((((hScrollBar) && (!(vScrollBar)))) && ((_verticalScrollPolicy == ScrollPolicy.AUTO)))) && ((contentHeight > _local3)))){ vScrollBar = true; _local4 = (_local4 - _local1); }; availableHeight = (_local3 + vOffset); availableWidth = _local4; } public function get maxVerticalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentHeight - availableHeight))); } public function set horizontalScrollPosition(_arg1:Number):void{ drawNow(); _horizontalScrollBar.scrollPosition = _arg1; setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); } public function get horizontalLineScrollSize():Number{ return (_horizontalScrollBar.lineScrollSize); } public function set verticalPageScrollSize(_arg1:Number):void{ _verticalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } public function get verticalScrollPolicy():String{ return (_verticalScrollPolicy); } protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function get useBitmapScrolling():Boolean{ return (_useBitmpScrolling); } protected function handleScroll(_arg1:ScrollEvent):void{ if (_arg1.target == _verticalScrollBar){ setVerticalScrollPosition(_arg1.position); } else { setHorizontalScrollPosition(_arg1.position); }; } public function set verticalLineScrollSize(_arg1:Number):void{ _verticalScrollBar.lineScrollSize = _arg1; } public function get verticalScrollBar():ScrollBar{ return (_verticalScrollBar); } protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function set horizontalPageScrollSize(_arg1:Number):void{ _horizontalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STATE)){ drawLayout(); }; updateChildren(); super.draw(); } public function set horizontalScrollPolicy(_arg1:String):void{ _horizontalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } override protected function configUI():void{ var _local1:Graphics; super.configUI(); contentScrollRect = new Rectangle(0, 0, 85, 85); _verticalScrollBar = new ScrollBar(); _verticalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _verticalScrollBar.visible = false; _verticalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_verticalScrollBar); copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); _horizontalScrollBar = new ScrollBar(); _horizontalScrollBar.direction = ScrollBarDirection.HORIZONTAL; _horizontalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _horizontalScrollBar.visible = false; _horizontalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_horizontalScrollBar); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); disabledOverlay = new Shape(); _local1 = disabledOverlay.graphics; _local1.beginFill(0xFFFFFF); _local1.drawRect(0, 0, width, height); _local1.endFill(); addEventListener(MouseEvent.MOUSE_WHEEL, handleWheel, false, 0, true); } protected function calculateContentWidth():void{ } public function get verticalPageScrollSize():Number{ if (isNaN(availableHeight)){ drawNow(); }; return (((((_verticalPageScrollSize == 0)) && (!(isNaN(availableHeight))))) ? availableHeight : _verticalPageScrollSize); } protected function drawLayout():void{ calculateAvailableSize(); calculateContentWidth(); background.width = width; background.height = height; if (vScrollBar){ _verticalScrollBar.visible = true; _verticalScrollBar.x = ((width - ScrollBar.WIDTH) - contentPadding); _verticalScrollBar.y = contentPadding; _verticalScrollBar.height = availableHeight; } else { _verticalScrollBar.visible = false; }; _verticalScrollBar.setScrollProperties(availableHeight, 0, (contentHeight - availableHeight), verticalPageScrollSize); setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); if (hScrollBar){ _horizontalScrollBar.visible = true; _horizontalScrollBar.x = contentPadding; _horizontalScrollBar.y = ((height - ScrollBar.WIDTH) - contentPadding); _horizontalScrollBar.width = availableWidth; } else { _horizontalScrollBar.visible = false; }; _horizontalScrollBar.setScrollProperties(availableWidth, 0, (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - availableWidth), horizontalPageScrollSize); setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); drawDisabledOverlay(); } protected function drawBackground():void{ var _local1:DisplayObject; _local1 = background; background = getDisplayObjectInstance(getStyleValue("skin")); background.width = width; background.height = height; addChildAt(background, 0); if (((!((_local1 == null))) && (!((_local1 == background))))){ removeChild(_local1); }; } public function set horizontalLineScrollSize(_arg1:Number):void{ _horizontalScrollBar.lineScrollSize = _arg1; } public function get horizontalPageScrollSize():Number{ if (isNaN(availableWidth)){ drawNow(); }; return (((((_horizontalPageScrollSize == 0)) && (!(isNaN(availableWidth))))) ? availableWidth : _horizontalPageScrollSize); } public function get maxHorizontalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentWidth - availableWidth))); } protected function setStyles():void{ copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); } protected function updateChildren():void{ _verticalScrollBar.enabled = (_horizontalScrollBar.enabled = enabled); _verticalScrollBar.drawNow(); _horizontalScrollBar.drawNow(); } public function set verticalScrollPolicy(_arg1:String):void{ _verticalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } public function set useBitmapScrolling(_arg1:Boolean):void{ _useBitmpScrolling = _arg1; invalidate(InvalidationType.STATE); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.containers
Section 13
//CellRenderer (fl.controls.listClasses.CellRenderer) package fl.controls.listClasses { import flash.events.*; import fl.controls.*; public class CellRenderer extends LabelButton implements ICellRenderer { protected var _data:Object; protected var _listData:ListData; private static var defaultStyles:Object = {upSkin:"CellRenderer_upSkin", downSkin:"CellRenderer_downSkin", overSkin:"CellRenderer_overSkin", disabledSkin:"CellRenderer_disabledSkin", selectedDisabledSkin:"CellRenderer_selectedDisabledSkin", selectedUpSkin:"CellRenderer_selectedUpSkin", selectedDownSkin:"CellRenderer_selectedDownSkin", selectedOverSkin:"CellRenderer_selectedOverSkin", textFormat:null, disabledTextFormat:null, embedFonts:null, textPadding:5}; public function CellRenderer():void{ toggle = true; focusEnabled = false; } override protected function toggleSelected(_arg1:MouseEvent):void{ } override public function get selected():Boolean{ return (super.selected); } public function set listData(_arg1:ListData):void{ _listData = _arg1; label = _listData.label; setStyle("icon", _listData.icon); } override public function set selected(_arg1:Boolean):void{ super.selected = _arg1; } public function set data(_arg1:Object):void{ _data = _arg1; } public function get listData():ListData{ return (_listData); } override public function setSize(_arg1:Number, _arg2:Number):void{ super.setSize(_arg1, _arg2); } override protected function drawLayout():void{ var _local1:Number; var _local2:Number; var _local3:Number; _local1 = Number(getStyleValue("textPadding")); _local2 = 0; if (icon != null){ icon.x = _local1; icon.y = Math.round(((height - icon.height) >> 1)); _local2 = (icon.width + _local1); }; if (label.length > 0){ textField.visible = true; _local3 = Math.max(0, ((width - _local2) - (_local1 * 2))); textField.width = _local3; textField.height = (textField.textHeight + 4); textField.x = (_local2 + _local1); textField.y = Math.round(((height - textField.height) >> 1)); } else { textField.visible = false; }; background.width = width; background.height = height; } public function get data():Object{ return (_data); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls.listClasses
Section 14
//ICellRenderer (fl.controls.listClasses.ICellRenderer) package fl.controls.listClasses { public interface ICellRenderer { function setSize(_arg1:Number, _arg2:Number):void; function get listData():ListData; function get data():Object; function setMouseState(_arg1:String):void; function set x(_arg1:Number):void; function set y(_arg1:Number):void; function set data(_arg1:Object):void; function set selected(_arg1:Boolean):void; function set listData(_arg1:ListData):void; function get selected():Boolean; } }//package fl.controls.listClasses
Section 15
//ListData (fl.controls.listClasses.ListData) package fl.controls.listClasses { import fl.core.*; public class ListData { protected var _index:uint; protected var _owner:UIComponent; protected var _label:String; protected var _icon:Object;// = null protected var _row:uint; protected var _column:uint; public function ListData(_arg1:String, _arg2:Object, _arg3:UIComponent, _arg4:uint, _arg5:uint, _arg6:uint=0){ _icon = null; super(); _label = _arg1; _icon = _arg2; _owner = _arg3; _index = _arg4; _row = _arg5; _column = _arg6; } public function get owner():UIComponent{ return (_owner); } public function get label():String{ return (_label); } public function get row():uint{ return (_row); } public function get index():uint{ return (_index); } public function get icon():Object{ return (_icon); } public function get column():uint{ return (_column); } } }//package fl.controls.listClasses
Section 16
//BaseButton (fl.controls.BaseButton) package fl.controls { import flash.display.*; import fl.core.*; import flash.events.*; import fl.events.*; import flash.utils.*; public class BaseButton extends UIComponent { protected var _selected:Boolean;// = false private var unlockedMouseState:String; protected var pressTimer:Timer; protected var mouseState:String; protected var background:DisplayObject; private var _mouseStateLocked:Boolean;// = false protected var _autoRepeat:Boolean;// = false private static var defaultStyles:Object = {upSkin:"Button_upSkin", downSkin:"Button_downSkin", overSkin:"Button_overSkin", disabledSkin:"Button_disabledSkin", selectedDisabledSkin:"Button_selectedDisabledSkin", selectedUpSkin:"Button_selectedUpSkin", selectedDownSkin:"Button_selectedDownSkin", selectedOverSkin:"Button_selectedOverSkin", focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35}; public function BaseButton(){ _selected = false; _autoRepeat = false; _mouseStateLocked = false; super(); buttonMode = true; mouseChildren = false; useHandCursor = false; setupMouseEvents(); setMouseState("up"); pressTimer = new Timer(1, 0); pressTimer.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true); } protected function endPress():void{ pressTimer.reset(); } public function set mouseStateLocked(_arg1:Boolean):void{ _mouseStateLocked = _arg1; if (_arg1 == false){ setMouseState(unlockedMouseState); } else { unlockedMouseState = mouseState; }; } public function get autoRepeat():Boolean{ return (_autoRepeat); } public function set autoRepeat(_arg1:Boolean):void{ _autoRepeat = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; mouseEnabled = _arg1; } public function get selected():Boolean{ return (_selected); } protected function mouseEventHandler(_arg1:MouseEvent):void{ if (_arg1.type == MouseEvent.MOUSE_DOWN){ setMouseState("down"); startPress(); } else { if ((((_arg1.type == MouseEvent.ROLL_OVER)) || ((_arg1.type == MouseEvent.MOUSE_UP)))){ setMouseState("over"); endPress(); } else { if (_arg1.type == MouseEvent.ROLL_OUT){ setMouseState("up"); endPress(); }; }; }; } public function setMouseState(_arg1:String):void{ if (_mouseStateLocked){ unlockedMouseState = _arg1; return; }; if (mouseState == _arg1){ return; }; mouseState = _arg1; invalidate(InvalidationType.STATE); } protected function startPress():void{ if (_autoRepeat){ pressTimer.delay = Number(getStyleValue("repeatDelay")); pressTimer.start(); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } protected function buttonDown(_arg1:TimerEvent):void{ if (!_autoRepeat){ endPress(); return; }; if (pressTimer.currentCount == 1){ pressTimer.delay = Number(getStyleValue("repeatInterval")); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } public function set selected(_arg1:Boolean):void{ if (_selected == _arg1){ return; }; _selected = _arg1; invalidate(InvalidationType.STATE); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function setupMouseEvents():void{ addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false, 0, true); } protected function drawLayout():void{ background.width = width; background.height = height; } protected function drawBackground():void{ var _local1:String; var _local2:DisplayObject; _local1 = (enabled) ? mouseState : "disabled"; if (selected){ _local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1)); }; _local1 = (_local1 + "Skin"); _local2 = background; background = getDisplayObjectInstance(getStyleValue(_local1)); addChildAt(background, 0); if (((!((_local2 == null))) && (!((_local2 == background))))){ removeChild(_local2); }; } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 17
//Button (fl.controls.Button) package fl.controls { import flash.display.*; import fl.core.*; import fl.managers.*; public class Button extends LabelButton implements IFocusManagerComponent { protected var emphasizedBorder:DisplayObject; protected var _emphasized:Boolean;// = false private static var defaultStyles:Object = {emphasizedSkin:"Button_emphasizedSkin", emphasizedPadding:2}; public static var createAccessibilityImplementation:Function; public function Button(){ _emphasized = false; super(); } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; var _local3:*; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("emphasizedPadding")); if ((((_local2 < 0)) || (!(_emphasized)))){ _local2 = 0; }; _local3 = getStyleValue("focusRectPadding"); _local3 = ((_local3)==null) ? 2 : _local3; _local3 = (_local3 + _local2); uiFocusRect.x = -(_local3); uiFocusRect.y = -(_local3); uiFocusRect.width = (width + (_local3 * 2)); uiFocusRect.height = (height + (_local3 * 2)); }; } public function set emphasized(_arg1:Boolean):void{ _emphasized = _arg1; invalidate(InvalidationType.STYLES); } override protected function draw():void{ if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){ drawEmphasized(); }; super.draw(); if (emphasizedBorder != null){ setChildIndex(emphasizedBorder, (numChildren - 1)); }; } public function get emphasized():Boolean{ return (_emphasized); } override protected function initializeAccessibility():void{ if (Button.createAccessibilityImplementation != null){ Button.createAccessibilityImplementation(this); }; } protected function drawEmphasized():void{ var _local1:Object; var _local2:Number; if (emphasizedBorder != null){ removeChild(emphasizedBorder); }; emphasizedBorder = null; if (!_emphasized){ return; }; _local1 = getStyleValue("emphasizedSkin"); if (_local1 != null){ emphasizedBorder = getDisplayObjectInstance(_local1); }; if (emphasizedBorder != null){ addChildAt(emphasizedBorder, 0); _local2 = Number(getStyleValue("emphasizedPadding")); emphasizedBorder.x = (emphasizedBorder.y = -(_local2)); emphasizedBorder.width = (width + (_local2 * 2)); emphasizedBorder.height = (height + (_local2 * 2)); }; } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles)); } } }//package fl.controls
Section 18
//ButtonLabelPlacement (fl.controls.ButtonLabelPlacement) package fl.controls { public class ButtonLabelPlacement { public static const TOP:String = "top"; public static const LEFT:String = "left"; public static const BOTTOM:String = "bottom"; public static const RIGHT:String = "right"; } }//package fl.controls
Section 19
//LabelButton (fl.controls.LabelButton) package fl.controls { import flash.display.*; import fl.core.*; import flash.events.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.ui.*; public class LabelButton extends BaseButton implements IFocusManagerComponent { protected var _labelPlacement:String;// = "right" protected var _toggle:Boolean;// = false protected var icon:DisplayObject; protected var oldMouseState:String; protected var mode:String;// = "center" public var textField:TextField; protected var _label:String;// = "Label" private static var defaultStyles:Object = {icon:null, upIcon:null, downIcon:null, overIcon:null, disabledIcon:null, selectedDisabledIcon:null, selectedUpIcon:null, selectedDownIcon:null, selectedOverIcon:null, textFormat:null, disabledTextFormat:null, textPadding:5, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function LabelButton(){ _labelPlacement = ButtonLabelPlacement.RIGHT; _toggle = false; _label = "Label"; mode = "center"; super(); } protected function toggleSelected(_arg1:MouseEvent):void{ selected = !(selected); dispatchEvent(new Event(Event.CHANGE, true)); } public function get labelPlacement():String{ return (_labelPlacement); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ if (oldMouseState == null){ oldMouseState = mouseState; }; setMouseState("down"); startPress(); }; } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ setMouseState(oldMouseState); oldMouseState = null; endPress(); dispatchEvent(new MouseEvent(MouseEvent.CLICK)); }; } override public function get selected():Boolean{ return ((_toggle) ? _selected : false); } public function set labelPlacement(_arg1:String):void{ _labelPlacement = _arg1; invalidate(InvalidationType.SIZE); } public function set toggle(_arg1:Boolean):void{ if (((!(_arg1)) && (super.selected))){ selected = false; }; _toggle = _arg1; if (_toggle){ addEventListener(MouseEvent.CLICK, toggleSelected, false, 0, true); } else { removeEventListener(MouseEvent.CLICK, toggleSelected); }; invalidate(InvalidationType.STATE); } public function get label():String{ return (_label); } override public function set selected(_arg1:Boolean):void{ _selected = _arg1; if (_toggle){ invalidate(InvalidationType.STATE); }; } override protected function draw():void{ if (textField.text != _label){ label = _label; }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); drawIcon(); drawTextFormat(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } public function get toggle():Boolean{ return (_toggle); } override protected function configUI():void{ super.configUI(); textField = new TextField(); textField.type = TextFieldType.DYNAMIC; textField.selectable = false; addChild(textField); } override protected function drawLayout():void{ var _local1:Number; var _local2:String; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local1 = Number(getStyleValue("textPadding")); _local2 = ((((icon == null)) && ((mode == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement; textField.height = (textField.textHeight + 4); _local3 = (textField.textWidth + 4); _local4 = (textField.textHeight + 4); _local5 = ((icon)==null) ? 0 : (icon.width + _local1); _local6 = ((icon)==null) ? 0 : (icon.height + _local1); textField.visible = (label.length > 0); if (icon != null){ icon.x = Math.round(((width - icon.width) / 2)); icon.y = Math.round(((height - icon.height) / 2)); }; if (textField.visible == false){ textField.width = 0; textField.height = 0; } else { if ((((_local2 == ButtonLabelPlacement.BOTTOM)) || ((_local2 == ButtonLabelPlacement.TOP)))){ _local7 = Math.max(0, Math.min(_local3, (width - (2 * _local1)))); if ((height - 2) > _local4){ _local8 = _local4; } else { _local8 = (height - 2); }; _local3 = _local7; textField.width = _local3; _local4 = _local8; textField.height = _local4; textField.x = Math.round(((width - _local3) / 2)); textField.y = Math.round(((((height - textField.height) - _local6) / 2) + ((_local2)==ButtonLabelPlacement.BOTTOM) ? _local6 : 0)); if (icon != null){ icon.y = Math.round(((_local2)==ButtonLabelPlacement.BOTTOM) ? (textField.y - _local6) : ((textField.y + textField.height) + _local1)); }; } else { _local7 = Math.max(0, Math.min(_local3, ((width - _local5) - (2 * _local1)))); _local3 = _local7; textField.width = _local3; textField.x = Math.round(((((width - _local3) - _local5) / 2) + ((_local2)!=ButtonLabelPlacement.LEFT) ? _local5 : 0)); textField.y = Math.round(((height - textField.height) / 2)); if (icon != null){ icon.x = Math.round(((_local2)!=ButtonLabelPlacement.LEFT) ? (textField.x - _local5) : ((textField.x + _local3) + _local1)); }; }; }; super.drawLayout(); } override protected function initializeAccessibility():void{ if (LabelButton.createAccessibilityImplementation != null){ LabelButton.createAccessibilityImplementation(this); }; } protected function drawIcon():void{ var _local1:DisplayObject; var _local2:String; var _local3:Object; _local1 = icon; _local2 = (enabled) ? mouseState : "disabled"; if (selected){ _local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1)); }; _local2 = (_local2 + "Icon"); _local3 = getStyleValue(_local2); if (_local3 == null){ _local3 = getStyleValue("icon"); }; if (_local3 != null){ icon = getDisplayObjectInstance(_local3); }; if (icon != null){ addChildAt(icon, 1); }; if (((!((_local1 == null))) && (!((_local1 == icon))))){ removeChild(_local1); }; } public function set label(_arg1:String):void{ _label = _arg1; if (textField.text != _label){ textField.text = _label; dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE)); }; invalidate(InvalidationType.SIZE); invalidate(InvalidationType.STYLES); } protected function drawTextFormat():void{ var _local1:Object; var _local2:TextFormat; var _local3:TextFormat; _local1 = UIComponent.getStyleDefinition(); _local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); _local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition())); } } }//package fl.controls
Section 20
//List (fl.controls.List) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.events.*; import flash.display.*; import flash.geom.*; import fl.managers.*; import flash.utils.*; import flash.ui.*; public class List extends SelectableList implements IFocusManagerComponent { protected var _labelField:String;// = "label" protected var _rowHeight:Number;// = 20 protected var _cellRenderer:Object; protected var _iconField:String;// = "icon" protected var _labelFunction:Function; protected var _iconFunction:Function; private static var defaultStyles:Object = {focusRectSkin:null, focusRectPadding:null}; public static var createAccessibilityImplementation:Function; public function List(){ _rowHeight = 20; _labelField = "label"; _iconField = "icon"; super(); } public function get iconField():String{ return (_iconField); } protected function doKeySelection(_arg1:int, _arg2:Boolean, _arg3:Boolean):void{ var _local4:Boolean; var _local5:int; var _local6:Array; var _local7:int; var _local8:int; _local4 = false; if (_arg2){ _local6 = []; _local7 = lastCaretIndex; _local8 = _arg1; if (_local7 == -1){ _local7 = ((caretIndex)!=-1) ? caretIndex : _arg1; }; if (_local7 > _local8){ _local8 = _local7; _local7 = _arg1; }; _local5 = _local7; while (_local5 <= _local8) { _local6.push(_local5); _local5++; }; selectedIndices = _local6; caretIndex = _arg1; _local4 = true; } else { selectedIndex = _arg1; caretIndex = (lastCaretIndex = _arg1); _local4 = true; }; if (_local4){ dispatchEvent(new Event(Event.CHANGE)); }; invalidate(InvalidationType.DATA); } override protected function drawList():void{ var _local1:Rectangle; var _local2:uint; var _local3:uint; var _local4:uint; var _local5:Object; var _local6:ICellRenderer; var _local7:Dictionary; var _local8:Dictionary; var _local9:Boolean; var _local10:String; var _local11:Object; var _local12:Sprite; var _local13:String; listHolder.x = (listHolder.y = contentPadding); _local1 = listHolder.scrollRect; _local1.x = _horizontalScrollPosition; _local1.y = (Math.floor(_verticalScrollPosition) % rowHeight); listHolder.scrollRect = _local1; listHolder.cacheAsBitmap = useBitmapScrolling; _local2 = Math.floor((_verticalScrollPosition / rowHeight)); _local3 = Math.min(length, ((_local2 + rowCount) + 1)); _local7 = (renderedItems = new Dictionary(true)); _local4 = _local2; while (_local4 < _local3) { _local7[_dataProvider.getItemAt(_local4)] = true; _local4++; }; _local8 = new Dictionary(true); while (activeCellRenderers.length > 0) { _local6 = (activeCellRenderers.pop() as ICellRenderer); _local5 = _local6.data; if ((((_local7[_local5] == null)) || ((invalidItems[_local5] == true)))){ availableCellRenderers.push(_local6); } else { _local8[_local5] = _local6; invalidItems[_local5] = true; }; list.removeChild((_local6 as DisplayObject)); }; invalidItems = new Dictionary(true); _local4 = _local2; while (_local4 < _local3) { _local9 = false; _local5 = _dataProvider.getItemAt(_local4); if (_local8[_local5] != null){ _local9 = true; _local6 = _local8[_local5]; delete _local8[_local5]; } else { if (availableCellRenderers.length > 0){ _local6 = (availableCellRenderers.pop() as ICellRenderer); } else { _local6 = (getDisplayObjectInstance(getStyleValue("cellRenderer")) as ICellRenderer); _local12 = (_local6 as Sprite); if (_local12 != null){ _local12.addEventListener(MouseEvent.CLICK, handleCellRendererClick, false, 0, true); _local12.addEventListener(MouseEvent.ROLL_OVER, handleCellRendererMouseEvent, false, 0, true); _local12.addEventListener(MouseEvent.ROLL_OUT, handleCellRendererMouseEvent, false, 0, true); _local12.addEventListener(Event.CHANGE, handleCellRendererChange, false, 0, true); _local12.doubleClickEnabled = true; _local12.addEventListener(MouseEvent.DOUBLE_CLICK, handleCellRendererDoubleClick, false, 0, true); if (_local12["setStyle"] != null){ for (_local13 in rendererStyles) { var _local16 = _local12; _local16["setStyle"](_local13, rendererStyles[_local13]); }; }; }; }; }; list.addChild((_local6 as Sprite)); activeCellRenderers.push(_local6); _local6.y = (rowHeight * (_local4 - _local2)); _local6.setSize((availableWidth + _maxHorizontalScrollPosition), rowHeight); _local10 = itemToLabel(_local5); _local11 = null; if (_iconFunction != null){ _local11 = _iconFunction(_local5); } else { if (_iconField != null){ _local11 = _local5[_iconField]; }; }; if (!_local9){ _local6.data = _local5; }; _local6.listData = new ListData(_local10, _local11, this, _local4, _local4, 0); _local6.selected = !((_selectedIndices.indexOf(_local4) == -1)); if ((_local6 is UIComponent)){ (_local6 as UIComponent).drawNow(); }; _local4++; }; } public function get iconFunction():Function{ return (_iconFunction); } public function set iconField(_arg1:String):void{ if (_arg1 == _iconField){ return; }; _iconField = _arg1; invalidate(InvalidationType.DATA); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:int; if (!selectable){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: case Keyboard.END: case Keyboard.HOME: case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; case Keyboard.SPACE: if (caretIndex == -1){ caretIndex = 0; }; doKeySelection(caretIndex, _arg1.shiftKey, _arg1.ctrlKey); scrollToSelected(); break; default: _local2 = getNextIndexAtLetter(String.fromCharCode(_arg1.keyCode), selectedIndex); if (_local2 > -1){ selectedIndex = _local2; scrollToSelected(); }; break; }; _arg1.stopPropagation(); } override public function itemToLabel(_arg1:Object):String{ if (_labelFunction != null){ return (String(_labelFunction(_arg1))); }; return (((_arg1[_labelField])!=null) ? String(_arg1[_labelField]) : ""); } public function get labelField():String{ return (_labelField); } override protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ var _local4:int; var _local5:int; var _local6:int; _local4 = Math.max(Math.floor((calculateAvailableHeight() / rowHeight)), 1); _local5 = -1; _local6 = 0; switch (_arg1){ case Keyboard.UP: if (caretIndex > 0){ _local5 = (caretIndex - 1); }; break; case Keyboard.DOWN: if (caretIndex < (length - 1)){ _local5 = (caretIndex + 1); }; break; case Keyboard.PAGE_UP: if (caretIndex > 0){ _local5 = Math.max((caretIndex - _local4), 0); }; break; case Keyboard.PAGE_DOWN: if (caretIndex < (length - 1)){ _local5 = Math.min((caretIndex + _local4), (length - 1)); }; break; case Keyboard.HOME: if (caretIndex > 0){ _local5 = 0; }; break; case Keyboard.END: if (caretIndex < (length - 1)){ _local5 = (length - 1); }; break; }; if (_local5 >= 0){ doKeySelection(_local5, _arg2, _arg3); scrollToSelected(); }; } public function set labelField(_arg1:String):void{ if (_arg1 == _labelField){ return; }; _labelField = _arg1; invalidate(InvalidationType.DATA); } public function set rowCount(_arg1:uint):void{ var _local2:Number; var _local3:Number; _local2 = Number(getStyleValue("contentPadding")); _local3 = ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0; height = (((rowHeight * _arg1) + (2 * _local2)) + _local3); } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ list.x = -(_arg1); super.setHorizontalScrollPosition(_arg1, true); } public function set iconFunction(_arg1:Function):void{ if (_iconFunction == _arg1){ return; }; _iconFunction = _arg1; invalidate(InvalidationType.DATA); } public function get labelFunction():Function{ return (_labelFunction); } override protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ invalidate(InvalidationType.SCROLL); super.setVerticalScrollPosition(_arg1, true); } protected function calculateAvailableHeight():Number{ var _local1:Number; _local1 = Number(getStyleValue("contentPadding")); return (((height - (_local1 * 2)) - ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0)); } override protected function draw():void{ var _local1:Boolean; _local1 = !((contentHeight == (rowHeight * length))); contentHeight = (rowHeight * length); if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; if (_cellRenderer != getStyleValue("cellRenderer")){ _invalidateList(); _cellRenderer = getStyleValue("cellRenderer"); }; }; if (((isInvalid(InvalidationType.SIZE, InvalidationType.STATE)) || (_local1))){ drawLayout(); }; if (isInvalid(InvalidationType.RENDERER_STYLES)){ updateRendererStyles(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.SIZE, InvalidationType.DATA, InvalidationType.SCROLL, InvalidationType.SELECTED)){ drawList(); }; updateChildren(); validate(); } override protected function configUI():void{ useFixedHorizontalScrolling = true; _horizontalScrollPolicy = ScrollPolicy.AUTO; _verticalScrollPolicy = ScrollPolicy.AUTO; super.configUI(); } override public function get rowCount():uint{ return (Math.ceil((calculateAvailableHeight() / rowHeight))); } override protected function initializeAccessibility():void{ if (List.createAccessibilityImplementation != null){ List.createAccessibilityImplementation(this); }; } override public function scrollToIndex(_arg1:int):void{ var _local2:uint; var _local3:uint; drawNow(); _local2 = (Math.floor(((_verticalScrollPosition + availableHeight) / rowHeight)) - 1); _local3 = Math.ceil((_verticalScrollPosition / rowHeight)); if (_arg1 < _local3){ verticalScrollPosition = (_arg1 * rowHeight); } else { if (_arg1 > _local2){ verticalScrollPosition = (((_arg1 + 1) * rowHeight) - availableHeight); }; }; } public function get rowHeight():Number{ return (_rowHeight); } public function set labelFunction(_arg1:Function):void{ if (_labelFunction == _arg1){ return; }; _labelFunction = _arg1; invalidate(InvalidationType.DATA); } public function set rowHeight(_arg1:Number):void{ _rowHeight = _arg1; invalidate(InvalidationType.SIZE); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, SelectableList.getStyleDefinition())); } } }//package fl.controls
Section 21
//ScrollBar (fl.controls.ScrollBar) package fl.controls { import fl.core.*; import flash.events.*; import fl.events.*; public class ScrollBar extends UIComponent { private var _direction:String;// = "vertical" protected var inDrag:Boolean;// = false protected var upArrow:BaseButton; private var _pageScrollSize:Number;// = 0 protected var downArrow:BaseButton; private var _pageSize:Number;// = 10 private var thumbScrollOffset:Number; private var _maxScrollPosition:Number;// = 0 private var _scrollPosition:Number;// = 0 protected var track:BaseButton; private var _minScrollPosition:Number;// = 0 private var _lineScrollSize:Number;// = 1 protected var thumb:LabelButton; protected static const THUMB_STYLES:Object = {disabledSkin:"thumbDisabledSkin", downSkin:"thumbDownSkin", overSkin:"thumbOverSkin", upSkin:"thumbUpSkin", icon:"thumbIcon", textPadding:0}; public static const WIDTH:Number = 15; protected static const DOWN_ARROW_STYLES:Object = {disabledSkin:"downArrowDisabledSkin", downSkin:"downArrowDownSkin", overSkin:"downArrowOverSkin", upSkin:"downArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const UP_ARROW_STYLES:Object = {disabledSkin:"upArrowDisabledSkin", downSkin:"upArrowDownSkin", overSkin:"upArrowOverSkin", upSkin:"upArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const TRACK_STYLES:Object = {disabledSkin:"trackDisabledSkin", downSkin:"trackDownSkin", overSkin:"trackOverSkin", upSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {downArrowDisabledSkin:"ScrollArrowDown_disabledSkin", downArrowDownSkin:"ScrollArrowDown_downSkin", downArrowOverSkin:"ScrollArrowDown_overSkin", downArrowUpSkin:"ScrollArrowDown_upSkin", thumbDisabledSkin:"ScrollThumb_upSkin", thumbDownSkin:"ScrollThumb_downSkin", thumbOverSkin:"ScrollThumb_overSkin", thumbUpSkin:"ScrollThumb_upSkin", trackDisabledSkin:"ScrollTrack_skin", trackDownSkin:"ScrollTrack_skin", trackOverSkin:"ScrollTrack_skin", trackUpSkin:"ScrollTrack_skin", upArrowDisabledSkin:"ScrollArrowUp_disabledSkin", upArrowDownSkin:"ScrollArrowUp_downSkin", upArrowOverSkin:"ScrollArrowUp_overSkin", upArrowUpSkin:"ScrollArrowUp_upSkin", thumbIcon:"ScrollBar_thumbIcon", repeatDelay:500, repeatInterval:35}; public function ScrollBar(){ _pageSize = 10; _pageScrollSize = 0; _lineScrollSize = 1; _minScrollPosition = 0; _maxScrollPosition = 0; _scrollPosition = 0; _direction = ScrollBarDirection.VERTICAL; inDrag = false; super(); setStyles(); focusEnabled = false; } public function get minScrollPosition():Number{ return (_minScrollPosition); } public function set minScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _arg1, _maxScrollPosition); } public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{ var _local3:Number; _local3 = scrollPosition; _scrollPosition = Math.max(_minScrollPosition, Math.min(_maxScrollPosition, _arg1)); if (_local3 == _scrollPosition){ return; }; if (_arg2){ dispatchEvent(new ScrollEvent(_direction, (scrollPosition - _local3), scrollPosition)); }; updateThumb(); } public function set scrollPosition(_arg1:Number):void{ setScrollPosition(_arg1, true); } public function get pageScrollSize():Number{ return (((_pageScrollSize)==0) ? _pageSize : _pageScrollSize); } public function set pageSize(_arg1:Number):void{ if (_arg1 > 0){ _pageSize = _arg1; }; } public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{ this.pageSize = _arg1; _minScrollPosition = _arg2; _maxScrollPosition = _arg3; if (_arg4 >= 0){ _pageScrollSize = _arg4; }; enabled = (_maxScrollPosition > _minScrollPosition); setScrollPosition(_scrollPosition, false); updateThumb(); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; downArrow.enabled = (track.enabled = (thumb.enabled = (upArrow.enabled = ((enabled) && ((_maxScrollPosition > _minScrollPosition)))))); updateThumb(); } protected function updateThumb():void{ var _local1:Number; _local1 = ((_maxScrollPosition - _minScrollPosition) + _pageSize); if ((((((track.height <= 12)) || ((_maxScrollPosition <= _minScrollPosition)))) || ((((_local1 == 0)) || (isNaN(_local1)))))){ thumb.height = 12; thumb.visible = false; } else { thumb.height = Math.max(13, ((_pageSize / _local1) * track.height)); thumb.y = (track.y + ((track.height - thumb.height) * ((_scrollPosition - _minScrollPosition) / (_maxScrollPosition - _minScrollPosition)))); thumb.visible = enabled; }; } protected function thumbPressHandler(_arg1:MouseEvent):void{ inDrag = true; thumbScrollOffset = (mouseY - thumb.y); thumb.mouseStateLocked = true; mouseChildren = false; stage.addEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler, false, 0, true); } protected function thumbReleaseHandler(_arg1:MouseEvent):void{ inDrag = false; mouseChildren = true; thumb.mouseStateLocked = false; stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag); stage.removeEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler); } public function set pageScrollSize(_arg1:Number):void{ if (_arg1 >= 0){ _pageScrollSize = _arg1; }; } protected function handleThumbDrag(_arg1:MouseEvent):void{ var _local2:Number; _local2 = Math.max(0, Math.min((track.height - thumb.height), ((mouseY - track.y) - thumbScrollOffset))); setScrollPosition((((_local2 / (track.height - thumb.height)) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition)); } public function set direction(_arg1:String):void{ var _local2:Boolean; if (_direction == _arg1){ return; }; _direction = _arg1; if (isLivePreview){ return; }; setScaleY(1); _local2 = (_direction == ScrollBarDirection.HORIZONTAL); if (((_local2) && (componentInspectorSetting))){ if (rotation == 90){ return; }; setScaleX(-1); rotation = -90; }; if (!componentInspectorSetting){ if (((_local2) && ((rotation == 0)))){ rotation = -90; setScaleX(-1); } else { if (((!(_local2)) && ((rotation == -90)))){ rotation = 0; setScaleX(1); }; }; }; invalidate(InvalidationType.SIZE); } public function set lineScrollSize(_arg1:Number):void{ if (_arg1 > 0){ _lineScrollSize = _arg1; }; } override public function get height():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.width : super.height); } protected function scrollPressHandler(_arg1:ComponentEvent):void{ var _local2:Number; var _local3:Number; _arg1.stopImmediatePropagation(); if (_arg1.currentTarget == upArrow){ setScrollPosition((_scrollPosition - _lineScrollSize)); } else { if (_arg1.currentTarget == downArrow){ setScrollPosition((_scrollPosition + _lineScrollSize)); } else { _local2 = (((track.mouseY / track.height) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition); _local3 = ((pageScrollSize)==0) ? pageSize : pageScrollSize; if (_scrollPosition < _local2){ setScrollPosition(Math.min(_local2, (_scrollPosition + _local3))); } else { if (_scrollPosition > _local2){ setScrollPosition(Math.max(_local2, (_scrollPosition - _local3))); }; }; }; }; } public function get pageSize():Number{ return (_pageSize); } public function set maxScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _minScrollPosition, _arg1); } public function get scrollPosition():Number{ return (_scrollPosition); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ var _local1:Number; if (isInvalid(InvalidationType.SIZE)){ _local1 = super.height; downArrow.move(0, Math.max(upArrow.height, (_local1 - downArrow.height))); track.setSize(WIDTH, Math.max(0, (_local1 - (downArrow.height + upArrow.height)))); updateThumb(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ setStyles(); }; downArrow.drawNow(); upArrow.drawNow(); track.drawNow(); thumb.drawNow(); validate(); } override protected function configUI():void{ super.configUI(); track = new BaseButton(); track.move(0, 14); track.useHandCursor = false; track.autoRepeat = true; track.focusEnabled = false; addChild(track); thumb = new LabelButton(); thumb.label = ""; thumb.setSize(WIDTH, 15); thumb.move(0, 15); thumb.focusEnabled = false; addChild(thumb); downArrow = new BaseButton(); downArrow.setSize(WIDTH, 14); downArrow.autoRepeat = true; downArrow.focusEnabled = false; addChild(downArrow); upArrow = new BaseButton(); upArrow.setSize(WIDTH, 14); upArrow.move(0, 0); upArrow.autoRepeat = true; upArrow.focusEnabled = false; addChild(upArrow); upArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); downArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); track.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumbPressHandler, false, 0, true); enabled = false; } public function get direction():String{ return (_direction); } public function get lineScrollSize():Number{ return (_lineScrollSize); } override public function setSize(_arg1:Number, _arg2:Number):void{ if (_direction == ScrollBarDirection.HORIZONTAL){ super.setSize(_arg2, _arg1); } else { super.setSize(_arg1, _arg2); }; } public function get maxScrollPosition():Number{ return (_maxScrollPosition); } override public function get width():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.height : super.width); } protected function setStyles():void{ copyStylesToChild(downArrow, DOWN_ARROW_STYLES); copyStylesToChild(thumb, THUMB_STYLES); copyStylesToChild(track, TRACK_STYLES); copyStylesToChild(upArrow, UP_ARROW_STYLES); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 22
//ScrollBarDirection (fl.controls.ScrollBarDirection) package fl.controls { public class ScrollBarDirection { public static const HORIZONTAL:String = "horizontal"; public static const VERTICAL:String = "vertical"; } }//package fl.controls
Section 23
//ScrollPolicy (fl.controls.ScrollPolicy) package fl.controls { public class ScrollPolicy { public static const OFF:String = "off"; public static const ON:String = "on"; public static const AUTO:String = "auto"; } }//package fl.controls
Section 24
//SelectableList (fl.controls.SelectableList) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.events.*; import fl.data.*; import fl.events.*; import flash.display.*; import fl.containers.*; import fl.managers.*; import flash.utils.*; import flash.ui.*; public class SelectableList extends BaseScrollPane implements IFocusManagerComponent { protected var invalidItems:Dictionary; protected var renderedItems:Dictionary; protected var listHolder:Sprite; protected var _allowMultipleSelection:Boolean;// = false protected var lastCaretIndex:int;// = -1 protected var _selectedIndices:Array; protected var availableCellRenderers:Array; protected var list:Sprite; protected var caretIndex:int;// = -1 protected var updatedRendererStyles:Object; protected var preChangeItems:Array; protected var activeCellRenderers:Array; protected var rendererStyles:Object; protected var _verticalScrollPosition:Number; protected var _dataProvider:DataProvider; protected var _horizontalScrollPosition:Number; private var collectionItemImport:SimpleCollectionItem; protected var _selectable:Boolean;// = true private static var defaultStyles:Object = {skin:"List_skin", cellRenderer:CellRenderer, contentPadding:null, disabledAlpha:null}; public static var createAccessibilityImplementation:Function; public function SelectableList(){ _allowMultipleSelection = false; _selectable = true; caretIndex = -1; lastCaretIndex = -1; super(); activeCellRenderers = []; availableCellRenderers = []; invalidItems = new Dictionary(true); renderedItems = new Dictionary(true); _selectedIndices = []; if (dataProvider == null){ dataProvider = new DataProvider(); }; verticalScrollPolicy = ScrollPolicy.AUTO; rendererStyles = {}; updatedRendererStyles = {}; } protected function drawList():void{ } public function set allowMultipleSelection(_arg1:Boolean):void{ if (_arg1 == _allowMultipleSelection){ return; }; _allowMultipleSelection = _arg1; if (((!(_arg1)) && ((_selectedIndices.length > 1)))){ _selectedIndices = [_selectedIndices.pop()]; invalidate(InvalidationType.DATA); }; } public function sortItemsOn(_arg1:String, _arg2:Object=null){ return (_dataProvider.sortOn(_arg1, _arg2)); } public function removeItemAt(_arg1:uint):Object{ return (_dataProvider.removeItemAt(_arg1)); } public function get selectedItem():Object{ return (((_selectedIndices.length)==0) ? null : _dataProvider.getItemAt(selectedIndex)); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!selectable){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: case Keyboard.END: case Keyboard.HOME: case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; }; } public function get selectable():Boolean{ return (_selectable); } public function itemToCellRenderer(_arg1:Object):ICellRenderer{ var _local2:*; var _local3:ICellRenderer; if (_arg1 != null){ for (_local2 in activeCellRenderers) { _local3 = (activeCellRenderers[_local2] as ICellRenderer); if (_local3.data == _arg1){ return (_local3); }; }; }; return (null); } public function getNextIndexAtLetter(_arg1:String, _arg2:int=-1):int{ var _local3:int; var _local4:Number; var _local5:Number; var _local6:Object; var _local7:String; if (length == 0){ return (-1); }; _arg1 = _arg1.toUpperCase(); _local3 = (length - 1); _local4 = 0; while (_local4 < _local3) { _local5 = ((_arg2 + 1) + _local4); if (_local5 > (length - 1)){ _local5 = (_local5 - length); }; _local6 = getItemAt(_local5); if (_local6 == null){ break; }; _local7 = itemToLabel(_local6); if (_local7 == null){ } else { if (_local7.charAt(0).toUpperCase() == _arg1){ return (_local5); }; }; _local4++; }; return (-1); } public function invalidateList():void{ _invalidateList(); invalidate(InvalidationType.DATA); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; list.mouseChildren = _enabled; } public function get selectedIndices():Array{ return (_selectedIndices.concat()); } public function set selectable(_arg1:Boolean):void{ if (_arg1 == _selectable){ return; }; if (!_arg1){ selectedIndices = []; }; _selectable = _arg1; } public function itemToLabel(_arg1:Object):String{ return (_arg1["label"]); } public function addItemAt(_arg1:Object, _arg2:uint):void{ _dataProvider.addItemAt(_arg1, _arg2); invalidateList(); } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ return (_dataProvider.replaceItemAt(_arg1, _arg2)); } protected function handleDataChange(_arg1:DataChangeEvent):void{ var _local2:int; var _local3:int; var _local4:String; var _local5:uint; _local2 = _arg1.startIndex; _local3 = _arg1.endIndex; _local4 = _arg1.changeType; if (_local4 == DataChangeType.INVALIDATE_ALL){ clearSelection(); invalidateList(); } else { if (_local4 == DataChangeType.INVALIDATE){ _local5 = 0; while (_local5 < _arg1.items.length) { invalidateItem(_arg1.items[_local5]); _local5++; }; } else { if (_local4 == DataChangeType.ADD){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ _selectedIndices[_local5] = (_selectedIndices[_local5] + (_local2 - _local3)); }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ if (_selectedIndices[_local5] <= _local3){ delete _selectedIndices[_local5]; } else { _selectedIndices[_local5] = (_selectedIndices[_local5] - ((_local2 - _local3) + 1)); }; }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE_ALL){ clearSelection(); } else { if (_local4 == DataChangeType.REPLACE){ } else { selectedItems = preChangeItems; preChangeItems = null; }; }; }; }; }; }; invalidate(InvalidationType.DATA); } protected function _invalidateList():void{ availableCellRenderers = []; while (activeCellRenderers.length > 0) { list.removeChild((activeCellRenderers.pop() as DisplayObject)); }; } protected function updateRendererStyles():void{ var _local1:Array; var _local2:uint; var _local3:uint; var _local4:String; _local1 = availableCellRenderers.concat(activeCellRenderers); _local2 = _local1.length; _local3 = 0; while (_local3 < _local2) { if (_local1[_local3].setStyle == null){ } else { for (_local4 in updatedRendererStyles) { _local1[_local3].setStyle(_local4, updatedRendererStyles[_local4]); }; _local1[_local3].drawNow(); }; _local3++; }; updatedRendererStyles = {}; } public function set selectedItem(_arg1:Object):void{ var _local2:int; _local2 = _dataProvider.getItemIndex(_arg1); selectedIndex = _local2; } public function sortItems(... _args){ return (_dataProvider.sort.apply(_dataProvider, _args)); } public function removeAll():void{ _dataProvider.removeAll(); } protected function handleCellRendererChange(_arg1:Event):void{ var _local2:ICellRenderer; var _local3:uint; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; _dataProvider.invalidateItemAt(_local3); } protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; if (_arg1 == _horizontalScrollPosition){ return; }; _local3 = (_arg1 - _horizontalScrollPosition); _horizontalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.HORIZONTAL, _local3, _arg1)); }; } public function scrollToSelected():void{ scrollToIndex(selectedIndex); } public function invalidateItem(_arg1:Object):void{ if (renderedItems[_arg1] == null){ return; }; invalidItems[_arg1] = true; invalidate(InvalidationType.DATA); } protected function handleCellRendererClick(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:uint; var _local4:int; var _local5:int; var _local6:uint; if (!_enabled){ return; }; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; if (((!(dispatchEvent(new ListEvent(ListEvent.ITEM_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)))) || (!(_selectable)))){ return; }; _local4 = selectedIndices.indexOf(_local3); if (!_allowMultipleSelection){ if (_local4 != -1){ return; }; _local2.selected = true; _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); } else { if (_arg1.shiftKey){ _local6 = ((_selectedIndices.length)>0) ? _selectedIndices[0] : _local3; _selectedIndices = []; if (_local6 > _local3){ _local5 = _local6; while (_local5 >= _local3) { _selectedIndices.push(_local5); _local5--; }; } else { _local5 = _local6; while (_local5 <= _local3) { _selectedIndices.push(_local5); _local5++; }; }; caretIndex = _local3; } else { if (_arg1.ctrlKey){ if (_local4 != -1){ _local2.selected = false; _selectedIndices.splice(_local4, 1); } else { _local2.selected = true; _selectedIndices.push(_local3); }; caretIndex = _local3; } else { _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); }; }; }; dispatchEvent(new Event(Event.CHANGE)); invalidate(InvalidationType.DATA); } public function get length():uint{ return (_dataProvider.length); } public function get allowMultipleSelection():Boolean{ return (_allowMultipleSelection); } protected function onPreChange(_arg1:DataChangeEvent):void{ switch (_arg1.changeType){ case DataChangeType.REMOVE: case DataChangeType.ADD: case DataChangeType.INVALIDATE: case DataChangeType.REMOVE_ALL: case DataChangeType.REPLACE: case DataChangeType.INVALIDATE_ALL: break; default: preChangeItems = selectedItems; break; }; } public function getRendererStyle(_arg1:String, _arg2:int=-1):Object{ return (rendererStyles[_arg1]); } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; if (_arg1 == _verticalScrollPosition){ return; }; _local3 = (_arg1 - _verticalScrollPosition); _verticalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _local3, _arg1)); }; } protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } public function set selectedIndices(_arg1:Array):void{ if (!_selectable){ return; }; _selectedIndices = ((_arg1)==null) ? [] : _arg1.concat(); invalidate(InvalidationType.SELECTED); } public function get selectedIndex():int{ return (((_selectedIndices.length)==0) ? -1 : _selectedIndices[(_selectedIndices.length - 1)]); } override protected function draw():void{ super.draw(); } override protected function configUI():void{ super.configUI(); listHolder = new Sprite(); addChild(listHolder); listHolder.scrollRect = contentScrollRect; list = new Sprite(); listHolder.addChild(list); } public function addItem(_arg1:Object):void{ _dataProvider.addItem(_arg1); invalidateList(); } protected function handleCellRendererMouseEvent(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:String; _local2 = (_arg1.target as ICellRenderer); _local3 = ((_arg1.type)==MouseEvent.ROLL_OVER) ? ListEvent.ITEM_ROLL_OVER : ListEvent.ITEM_ROLL_OUT; dispatchEvent(new ListEvent(_local3, false, false, _local2.listData.column, _local2.listData.row, _local2.listData.index, _local2.data)); } public function clearRendererStyle(_arg1:String, _arg2:int=-1):void{ delete rendererStyles[_arg1]; updatedRendererStyles[_arg1] = null; invalidate(InvalidationType.RENDERER_STYLES); } protected function handleCellRendererDoubleClick(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:uint; if (!_enabled){ return; }; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; dispatchEvent(new ListEvent(ListEvent.ITEM_DOUBLE_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)); } public function get rowCount():uint{ return (0); } public function isItemSelected(_arg1:Object):Boolean{ return ((selectedItems.indexOf(_arg1) > -1)); } public function set dataProvider(_arg1:DataProvider):void{ if (_dataProvider != null){ _dataProvider.removeEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange); _dataProvider.removeEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange); }; _dataProvider = _arg1; _dataProvider.addEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange, false, 0, true); _dataProvider.addEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange, false, 0, true); clearSelection(); invalidateList(); } override protected function drawLayout():void{ super.drawLayout(); contentScrollRect = listHolder.scrollRect; contentScrollRect.width = availableWidth; contentScrollRect.height = availableHeight; listHolder.scrollRect = contentScrollRect; } public function getItemAt(_arg1:uint):Object{ return (_dataProvider.getItemAt(_arg1)); } override protected function initializeAccessibility():void{ if (SelectableList.createAccessibilityImplementation != null){ SelectableList.createAccessibilityImplementation(this); }; } public function scrollToIndex(_arg1:int):void{ } public function removeItem(_arg1:Object):Object{ return (_dataProvider.removeItem(_arg1)); } public function get dataProvider():DataProvider{ return (_dataProvider); } public function set maxHorizontalScrollPosition(_arg1:Number):void{ _maxHorizontalScrollPosition = _arg1; invalidate(InvalidationType.SIZE); } public function setRendererStyle(_arg1:String, _arg2:Object, _arg3:uint=0):void{ if (rendererStyles[_arg1] == _arg2){ return; }; updatedRendererStyles[_arg1] = _arg2; rendererStyles[_arg1] = _arg2; invalidate(InvalidationType.RENDERER_STYLES); } public function invalidateItemAt(_arg1:uint):void{ var _local2:Object; _local2 = _dataProvider.getItemAt(_arg1); if (_local2 != null){ invalidateItem(_local2); }; } public function set selectedItems(_arg1:Array):void{ var _local2:Array; var _local3:uint; var _local4:int; if (_arg1 == null){ selectedIndices = null; return; }; _local2 = []; _local3 = 0; while (_local3 < _arg1.length) { _local4 = _dataProvider.getItemIndex(_arg1[_local3]); if (_local4 != -1){ _local2.push(_local4); }; _local3++; }; selectedIndices = _local2; } public function clearSelection():void{ selectedIndex = -1; } override public function get maxHorizontalScrollPosition():Number{ return (_maxHorizontalScrollPosition); } public function get selectedItems():Array{ var _local1:Array; var _local2:uint; _local1 = []; _local2 = 0; while (_local2 < _selectedIndices.length) { _local1.push(_dataProvider.getItemAt(_selectedIndices[_local2])); _local2++; }; return (_local1); } public function set selectedIndex(_arg1:int):void{ selectedIndices = ((_arg1)==-1) ? null : [_arg1]; } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseScrollPane.getStyleDefinition())); } } }//package fl.controls
Section 25
//UIScrollBar (fl.controls.UIScrollBar) package fl.controls { import fl.core.*; import flash.events.*; import fl.events.*; import flash.text.*; public class UIScrollBar extends ScrollBar { protected var inScroll:Boolean;// = false protected var _scrollTarget:TextField; protected var inEdit:Boolean;// = false private static var defaultStyles:Object = {}; public function UIScrollBar(){ inEdit = false; inScroll = false; super(); } protected function handleTargetScroll(_arg1:Event):void{ if (inDrag){ return; }; if (!enabled){ return; }; inEdit = true; updateScrollTargetProperties(); scrollPosition = ((direction)==ScrollBarDirection.HORIZONTAL) ? _scrollTarget.scrollH : _scrollTarget.scrollV; inEdit = false; } override public function set minScrollPosition(_arg1:Number):void{ super.minScrollPosition = ((_arg1)<0) ? 0 : _arg1; } override public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{ super.setScrollPosition(_arg1, _arg2); if (!_scrollTarget){ inScroll = false; return; }; updateTargetScroll(); } override public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{ var _local5:Number; var _local6:Number; _local5 = _arg3; _local6 = ((_arg2)<0) ? 0 : _arg2; if (_scrollTarget != null){ if (direction == ScrollBarDirection.HORIZONTAL){ _local5 = ((_arg3)>_scrollTarget.maxScrollH) ? _scrollTarget.maxScrollH : _local5; } else { _local5 = ((_arg3)>_scrollTarget.maxScrollV) ? _scrollTarget.maxScrollV : _local5; }; }; super.setScrollProperties(_arg1, _local6, _local5, _arg4); } public function get scrollTargetName():String{ return (_scrollTarget.name); } public function get scrollTarget():TextField{ return (_scrollTarget); } protected function updateScrollTargetProperties():void{ var _local1:Boolean; var _local2:Number; if (_scrollTarget == null){ setScrollProperties(pageSize, minScrollPosition, maxScrollPosition, pageScrollSize); scrollPosition = 0; } else { _local1 = (direction == ScrollBarDirection.HORIZONTAL); _local2 = (_local1) ? _scrollTarget.width : 10; setScrollProperties(_local2, (_local1) ? 0 : 1, (_local1) ? _scrollTarget.maxScrollH : _scrollTarget.maxScrollV, pageScrollSize); scrollPosition = (_local1) ? _scrollTarget.scrollH : _scrollTarget.scrollV; }; } public function update():void{ inEdit = true; updateScrollTargetProperties(); inEdit = false; } public function set scrollTargetName(_arg1:String):void{ var target = _arg1; try { scrollTarget = (parent.getChildByName(target) as TextField); } catch(error:Error) { throw (new Error("ScrollTarget not found, or is not a TextField")); }; } override public function set direction(_arg1:String):void{ if (isLivePreview){ return; }; super.direction = _arg1; updateScrollTargetProperties(); } protected function handleTargetChange(_arg1:Event):void{ inEdit = true; setScrollPosition(((direction)==ScrollBarDirection.HORIZONTAL) ? _scrollTarget.scrollH : _scrollTarget.scrollV, true); updateScrollTargetProperties(); inEdit = false; } override public function set maxScrollPosition(_arg1:Number):void{ var _local2:Number; _local2 = _arg1; if (_scrollTarget != null){ if (direction == ScrollBarDirection.HORIZONTAL){ _local2 = ((_local2)>_scrollTarget.maxScrollH) ? _scrollTarget.maxScrollH : _local2; } else { _local2 = ((_local2)>_scrollTarget.maxScrollV) ? _scrollTarget.maxScrollV : _local2; }; }; super.maxScrollPosition = _local2; } protected function updateTargetScroll(_arg1:ScrollEvent=null):void{ if (inEdit){ return; }; if (direction == ScrollBarDirection.HORIZONTAL){ _scrollTarget.scrollH = scrollPosition; } else { _scrollTarget.scrollV = scrollPosition; }; } override protected function draw():void{ if (isInvalid(InvalidationType.DATA)){ updateScrollTargetProperties(); }; super.draw(); } public function set scrollTarget(_arg1:TextField):void{ if (_scrollTarget != null){ _scrollTarget.removeEventListener(Event.CHANGE, handleTargetChange, false); _scrollTarget.removeEventListener(TextEvent.TEXT_INPUT, handleTargetChange, false); _scrollTarget.removeEventListener(Event.SCROLL, handleTargetScroll, false); removeEventListener(ScrollEvent.SCROLL, updateTargetScroll, false); }; _scrollTarget = _arg1; if (_scrollTarget != null){ _scrollTarget.addEventListener(Event.CHANGE, handleTargetChange, false, 0, true); _scrollTarget.addEventListener(TextEvent.TEXT_INPUT, handleTargetChange, false, 0, true); _scrollTarget.addEventListener(Event.SCROLL, handleTargetScroll, false, 0, true); addEventListener(ScrollEvent.SCROLL, updateTargetScroll, false, 0, true); }; invalidate(InvalidationType.DATA); } override public function get direction():String{ return (super.direction); } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.controls
Section 26
//ComponentShim (fl.core.ComponentShim) package fl.core { import flash.display.*; public dynamic class ComponentShim extends MovieClip { } }//package fl.core
Section 27
//InvalidationType (fl.core.InvalidationType) package fl.core { public class InvalidationType { public static const SIZE:String = "size"; public static const ALL:String = "all"; public static const DATA:String = "data"; public static const SCROLL:String = "scroll"; public static const STATE:String = "state"; public static const STYLES:String = "styles"; public static const SELECTED:String = "selected"; public static const RENDERER_STYLES:String = "rendererStyles"; } }//package fl.core
Section 28
//UIComponent (fl.core.UIComponent) package fl.core { import flash.display.*; import flash.events.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.utils.*; import flash.system.*; public class UIComponent extends Sprite { protected var _enabled:Boolean;// = true private var _mouseFocusEnabled:Boolean;// = true protected var startHeight:Number; protected var _height:Number; protected var _oldIMEMode:String;// = null protected var startWidth:Number; public var focusTarget:IFocusManagerComponent; protected var errorCaught:Boolean;// = false protected var uiFocusRect:DisplayObject; protected var _width:Number; public var version:String;// = "3.0.0.15" protected var isFocused:Boolean;// = false protected var callLaterMethods:Dictionary; private var _focusEnabled:Boolean;// = true private var tempText:TextField; protected var invalidateFlag:Boolean;// = false protected var _inspector:Boolean;// = false protected var sharedStyles:Object; protected var invalidHash:Object; protected var isLivePreview:Boolean;// = false protected var _imeMode:String;// = null protected var instanceStyles:Object; protected var _x:Number; protected var _y:Number; public static var inCallLaterPhase:Boolean = false; private static var defaultStyles:Object = {focusRectSkin:"focusRectSkin", focusRectPadding:2, textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), disabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultTextFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultDisabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)}; public static var createAccessibilityImplementation:Function; private static var focusManagers:Dictionary = new Dictionary(false); public function UIComponent(){ version = "3.0.0.15"; isLivePreview = false; invalidateFlag = false; _enabled = true; isFocused = false; _focusEnabled = true; _mouseFocusEnabled = true; _imeMode = null; _oldIMEMode = null; errorCaught = false; _inspector = false; super(); instanceStyles = {}; sharedStyles = {}; invalidHash = {}; callLaterMethods = new Dictionary(); StyleManager.registerInstance(this); configUI(); invalidate(InvalidationType.ALL); tabEnabled = (this is IFocusManagerComponent); focusRect = false; if (tabEnabled){ addEventListener(FocusEvent.FOCUS_IN, focusInHandler); addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler); addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); }; initializeFocusManager(); addEventListener(Event.ENTER_FRAME, hookAccessibility, false, 0, true); } public function drawFocus(_arg1:Boolean):void{ var _local2:Number; isFocused = _arg1; if (((!((uiFocusRect == null))) && (contains(uiFocusRect)))){ removeChild(uiFocusRect); uiFocusRect = null; }; if (_arg1){ uiFocusRect = (getDisplayObjectInstance(getStyleValue("focusRectSkin")) as Sprite); if (uiFocusRect == null){ return; }; _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.x = -(_local2); uiFocusRect.y = -(_local2); uiFocusRect.width = (width + (_local2 * 2)); uiFocusRect.height = (height + (_local2 * 2)); addChildAt(uiFocusRect, 0); }; } private function callLaterDispatcher(_arg1:Event):void{ var _local2:Dictionary; var _local3:Object; if (_arg1.type == Event.ADDED_TO_STAGE){ removeEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher); stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); return; }; _arg1.target.removeEventListener(Event.RENDER, callLaterDispatcher); if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); return; }; inCallLaterPhase = true; _local2 = callLaterMethods; for (_local3 in _local2) { _local3(); delete _local2[_local3]; }; inCallLaterPhase = false; } private function addedHandler(_arg1:Event):void{ removeEventListener("addedToStage", addedHandler); initializeFocusManager(); } protected function getStyleValue(_arg1:String):Object{ return (((instanceStyles[_arg1])==null) ? sharedStyles[_arg1] : instanceStyles[_arg1]); } protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((_arg1 == this)); } override public function get scaleX():Number{ return ((width / startWidth)); } override public function get scaleY():Number{ return ((height / startHeight)); } override public function set height(_arg1:Number):void{ if (_height == _arg1){ return; }; setSize(width, _arg1); } protected function keyDownHandler(_arg1:KeyboardEvent):void{ } protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (isOurFocus((_arg1.target as DisplayObject))){ _local2 = focusManager; if (((_local2) && (_local2.showFocusIndicator))){ drawFocus(true); isFocused = true; }; }; } public function setStyle(_arg1:String, _arg2:Object):void{ if ((((instanceStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; instanceStyles[_arg1] = _arg2; invalidate(InvalidationType.STYLES); } override public function get visible():Boolean{ return (super.visible); } public function get componentInspectorSetting():Boolean{ return (_inspector); } override public function get x():Number{ return ((isNaN(_x)) ? super.x : _x); } override public function get y():Number{ return ((isNaN(_y)) ? super.y : _y); } protected function setIMEMode(_arg1:Boolean){ var enabled = _arg1; if (_imeMode != null){ if (enabled){ IME.enabled = true; _oldIMEMode = IME.conversionMode; try { if (((!(errorCaught)) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _imeMode; }; errorCaught = false; } catch(e:Error) { errorCaught = true; throw (new Error(("IME mode not supported: " + _imeMode))); }; } else { if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!((_oldIMEMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _oldIMEMode; }; IME.enabled = false; }; }; } public function set enabled(_arg1:Boolean):void{ if (_arg1 == _enabled){ return; }; _enabled = _arg1; invalidate(InvalidationType.STATE); } public function setSharedStyle(_arg1:String, _arg2:Object):void{ if ((((sharedStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; sharedStyles[_arg1] = _arg2; if (instanceStyles[_arg1] == null){ invalidate(InvalidationType.STYLES); }; } protected function keyUpHandler(_arg1:KeyboardEvent):void{ } public function set focusEnabled(_arg1:Boolean):void{ _focusEnabled = _arg1; } override public function set scaleX(_arg1:Number):void{ setSize((startWidth * _arg1), height); } public function get mouseFocusEnabled():Boolean{ return (_mouseFocusEnabled); } override public function set scaleY(_arg1:Number):void{ setSize(width, (startHeight * _arg1)); } protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{ var classDef:Object; var skin = _arg1; classDef = null; if ((skin is Class)){ return ((new (skin) as DisplayObject)); }; if ((skin is DisplayObject)){ (skin as DisplayObject).x = 0; (skin as DisplayObject).y = 0; return ((skin as DisplayObject)); }; try { classDef = getDefinitionByName(skin.toString()); } catch(e:Error) { try { classDef = (loaderInfo.applicationDomain.getDefinition(skin.toString()) as Object); } catch(e:Error) { }; }; if (classDef == null){ return (null); }; return ((new (classDef) as DisplayObject)); } protected function copyStylesToChild(_arg1:UIComponent, _arg2:Object):void{ var _local3:String; for (_local3 in _arg2) { _arg1.setStyle(_local3, getStyleValue(_arg2[_local3])); }; } protected function beforeComponentParameters():void{ } protected function callLater(_arg1:Function):void{ if (inCallLaterPhase){ return; }; callLaterMethods[_arg1] = true; if (stage != null){ stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); } else { addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); }; } protected function createFocusManager():void{ if (focusManagers[stage] == null){ focusManagers[stage] = new FocusManager(stage); }; } override public function set visible(_arg1:Boolean):void{ var _local2:String; if (super.visible == _arg1){ return; }; super.visible = _arg1; _local2 = (_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE; dispatchEvent(new ComponentEvent(_local2, true)); } protected function hookAccessibility(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, hookAccessibility); initializeAccessibility(); } public function set componentInspectorSetting(_arg1:Boolean):void{ _inspector = _arg1; if (_inspector){ beforeComponentParameters(); } else { afterComponentParameters(); }; } override public function set x(_arg1:Number):void{ move(_arg1, _y); } public function drawNow():void{ draw(); } override public function set y(_arg1:Number):void{ move(_x, _arg1); } protected function checkLivePreview():Boolean{ var className:String; if (parent == null){ return (false); }; try { className = getQualifiedClassName(parent); } catch(e:Error) { }; return ((className == "fl.livepreview::LivePreviewParent")); } protected function focusOutHandler(_arg1:FocusEvent):void{ if (isOurFocus((_arg1.target as DisplayObject))){ drawFocus(false); isFocused = false; }; } public function set mouseFocusEnabled(_arg1:Boolean):void{ _mouseFocusEnabled = _arg1; } public function getFocus():InteractiveObject{ if (stage){ return (stage.focus); }; return (null); } protected function validate():void{ invalidHash = {}; } override public function get height():Number{ return (_height); } public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{ invalidHash[_arg1] = true; if (_arg2){ this.callLater(draw); }; } public function get enabled():Boolean{ return (_enabled); } protected function getScaleX():Number{ return (super.scaleX); } protected function getScaleY():Number{ return (super.scaleY); } public function get focusEnabled():Boolean{ return (_focusEnabled); } protected function afterComponentParameters():void{ } protected function draw():void{ if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } protected function configUI():void{ var _local1:Number; var _local2:Number; var _local3:Number; isLivePreview = checkLivePreview(); _local1 = rotation; rotation = 0; _local2 = super.width; _local3 = super.height; var _local4 = 1; super.scaleY = _local4; super.scaleX = _local4; setSize(_local2, _local3); move(super.x, super.y); rotation = _local1; startWidth = _local2; startHeight = _local3; if (numChildren > 0){ removeChildAt(0); }; } protected function setScaleX(_arg1:Number):void{ super.scaleX = _arg1; } protected function setScaleY(_arg1:Number):void{ super.scaleY = _arg1; } private function initializeFocusManager():void{ if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, addedHandler, false, 0, true); } else { createFocusManager(); }; } public function set focusManager(_arg1:IFocusManager):void{ UIComponent.focusManagers[this] = _arg1; } public function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } protected function isInvalid(_arg1:String, ... _args):Boolean{ if (((invalidHash[_arg1]) || (invalidHash[InvalidationType.ALL]))){ return (true); }; while (_args.length > 0) { if (invalidHash[_args.pop()]){ return (true); }; }; return (false); } public function setSize(_arg1:Number, _arg2:Number):void{ _width = _arg1; _height = _arg2; invalidate(InvalidationType.SIZE); dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false)); } override public function set width(_arg1:Number):void{ if (_width == _arg1){ return; }; setSize(_arg1, height); } public function setFocus():void{ if (stage){ stage.focus = this; }; } protected function initializeAccessibility():void{ if (UIComponent.createAccessibilityImplementation != null){ UIComponent.createAccessibilityImplementation(this); }; } public function get focusManager():IFocusManager{ var _local1:DisplayObject; _local1 = this; while (_local1) { if (UIComponent.focusManagers[_local1] != null){ return (IFocusManager(UIComponent.focusManagers[_local1])); }; _local1 = _local1.parent; }; return (null); } override public function get width():Number{ return (_width); } public function move(_arg1:Number, _arg2:Number):void{ _x = _arg1; _y = _arg2; super.x = Math.round(_arg1); super.y = Math.round(_arg2); dispatchEvent(new ComponentEvent(ComponentEvent.MOVE)); } public function validateNow():void{ invalidate(InvalidationType.ALL, false); draw(); } public function getStyle(_arg1:String):Object{ return (instanceStyles[_arg1]); } public static function getStyleDefinition():Object{ return (defaultStyles); } public static function mergeStyles(... _args):Object{ var _local2:Object; var _local3:uint; var _local4:uint; var _local5:Object; var _local6:String; _local2 = {}; _local3 = _args.length; _local4 = 0; while (_local4 < _local3) { _local5 = _args[_local4]; for (_local6 in _local5) { if (_local2[_local6] != null){ } else { _local2[_local6] = _args[_local4][_local6]; }; }; _local4++; }; return (_local2); } } }//package fl.core
Section 29
//DataProvider (fl.data.DataProvider) package fl.data { import flash.events.*; import fl.events.*; public class DataProvider extends EventDispatcher { protected var data:Array; public function DataProvider(_arg1:Object=null){ if (_arg1 == null){ data = []; } else { data = getDataFromObject(_arg1); }; } protected function dispatchPreChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.PRE_DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } public function invalidateItemAt(_arg1:int):void{ checkIndex(_arg1, (data.length - 1)); dispatchChangeEvent(DataChangeType.INVALIDATE, [data[_arg1]], _arg1, _arg1); } public function getItemIndex(_arg1:Object):int{ return (data.indexOf(_arg1)); } protected function getDataFromObject(_arg1:Object):Array{ var _local2:Array; var _local3:Array; var _local4:uint; var _local5:Object; var _local6:XML; var _local7:XMLList; var _local8:XML; var _local9:XMLList; var _local10:XML; var _local11:XMLList; var _local12:XML; if ((_arg1 is Array)){ _local3 = (_arg1 as Array); if (_local3.length > 0){ if ((((_local3[0] is String)) || ((_local3[0] is Number)))){ _local2 = []; _local4 = 0; while (_local4 < _local3.length) { _local5 = {label:String(_local3[_local4]), data:_local3[_local4]}; _local2.push(_local5); _local4++; }; return (_local2); }; }; return (_arg1.concat()); //unresolved jump }; if ((_arg1 is DataProvider)){ return (_arg1.toArray()); }; if ((_arg1 is XML)){ _local6 = (_arg1 as XML); _local2 = []; _local7 = _local6.*; for each (_local8 in _local7) { _arg1 = {}; _local9 = _local8.attributes(); for each (_local10 in _local9) { _arg1[_local10.localName()] = _local10.toString(); }; _local11 = _local8.*; for each (_local12 in _local11) { if (_local12.hasSimpleContent()){ _arg1[_local12.localName()] = _local12.toString(); }; }; _local2.push(_arg1); }; return (_local2); //unresolved jump }; throw (new TypeError((("Error: Type Coercion failed: cannot convert " + _arg1) + " to Array or DataProvider."))); } public function removeItemAt(_arg1:uint):Object{ var _local2:Array; checkIndex(_arg1, (data.length - 1)); dispatchPreChangeEvent(DataChangeType.REMOVE, data.slice(_arg1, (_arg1 + 1)), _arg1, _arg1); _local2 = data.splice(_arg1, 1); dispatchChangeEvent(DataChangeType.REMOVE, _local2, _arg1, _arg1); return (_local2[0]); } public function addItem(_arg1:Object):void{ dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); data.push(_arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); } public function sortOn(_arg1:Object, _arg2:Object=null){ var _local3:Array; dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); _local3 = data.sortOn(_arg1, _arg2); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local3); } public function sort(... _args){ var _local2:Array; dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); _local2 = data.sort.apply(data, _args); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local2); } public function addItems(_arg1:Object):void{ addItemsAt(_arg1, data.length); } public function concat(_arg1:Object):void{ addItems(_arg1); } public function clone():DataProvider{ return (new DataProvider(data)); } public function toArray():Array{ return (data.concat()); } public function get length():uint{ return (data.length); } public function addItemAt(_arg1:Object, _arg2:uint):void{ checkIndex(_arg2, data.length); dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); data.splice(_arg2, 0, _arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); } public function getItemAt(_arg1:uint):Object{ checkIndex(_arg1, (data.length - 1)); return (data[_arg1]); } override public function toString():String{ return ((("DataProvider [" + data.join(" , ")) + "]")); } public function invalidateItem(_arg1:Object):void{ var _local2:uint; _local2 = getItemIndex(_arg1); if (_local2 == -1){ return; }; invalidateItemAt(_local2); } protected function dispatchChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } protected function checkIndex(_arg1:int, _arg2:int):void{ if ((((_arg1 > _arg2)) || ((_arg1 < 0)))){ throw (new RangeError((((("DataProvider index (" + _arg1) + ") is not in acceptable range (0 - ") + _arg2) + ")"))); }; } public function addItemsAt(_arg1:Object, _arg2:uint):void{ var _local3:Array; checkIndex(_arg2, data.length); _local3 = getDataFromObject(_arg1); dispatchPreChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); data.splice.apply(data, [_arg2, 0].concat(_local3)); dispatchChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); } public function replaceItem(_arg1:Object, _arg2:Object):Object{ var _local3:int; _local3 = getItemIndex(_arg2); if (_local3 != -1){ return (replaceItemAt(_arg1, _local3)); }; return (null); } public function removeItem(_arg1:Object):Object{ var _local2:int; _local2 = getItemIndex(_arg1); if (_local2 != -1){ return (removeItemAt(_local2)); }; return (null); } public function merge(_arg1:Object):void{ var _local2:Array; var _local3:uint; var _local4:uint; var _local5:uint; var _local6:Object; _local2 = getDataFromObject(_arg1); _local3 = _local2.length; _local4 = data.length; dispatchPreChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); _local5 = 0; while (_local5 < _local3) { _local6 = _local2[_local5]; if (getItemIndex(_local6) == -1){ data.push(_local6); }; _local5++; }; if (data.length > _local4){ dispatchChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); } else { dispatchChangeEvent(DataChangeType.ADD, [], -1, -1); }; } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ var _local3:Array; checkIndex(_arg2, (data.length - 1)); _local3 = [data[_arg2]]; dispatchPreChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); data[_arg2] = _arg1; dispatchChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); return (_local3[0]); } public function invalidate():void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, DataChangeType.INVALIDATE_ALL, data.concat(), 0, data.length)); } public function removeAll():void{ var _local1:Array; _local1 = data.concat(); dispatchPreChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); data = []; dispatchChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); } } }//package fl.data
Section 30
//SimpleCollectionItem (fl.data.SimpleCollectionItem) package fl.data { public dynamic class SimpleCollectionItem { public var label:String; public var data:String; public function toString():String{ return ((((("[SimpleCollectionItem: " + label) + ",") + data) + "]")); } } }//package fl.data
Section 31
//ComponentEvent (fl.events.ComponentEvent) package fl.events { import flash.events.*; public class ComponentEvent extends Event { public static const HIDE:String = "hide"; public static const BUTTON_DOWN:String = "buttonDown"; public static const MOVE:String = "move"; public static const RESIZE:String = "resize"; public static const ENTER:String = "enter"; public static const LABEL_CHANGE:String = "labelChange"; public static const SHOW:String = "show"; public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("ComponentEvent", "type", "bubbles", "cancelable")); } override public function clone():Event{ return (new ComponentEvent(type, bubbles, cancelable)); } } }//package fl.events
Section 32
//DataChangeEvent (fl.events.DataChangeEvent) package fl.events { import flash.events.*; public class DataChangeEvent extends Event { protected var _items:Array; protected var _endIndex:uint; protected var _changeType:String; protected var _startIndex:uint; public static const PRE_DATA_CHANGE:String = "preDataChange"; public static const DATA_CHANGE:String = "dataChange"; public function DataChangeEvent(_arg1:String, _arg2:String, _arg3:Array, _arg4:int=-1, _arg5:int=-1):void{ super(_arg1); _changeType = _arg2; _startIndex = _arg4; _items = _arg3; _endIndex = ((_arg5)==-1) ? _startIndex : _arg5; } public function get changeType():String{ return (_changeType); } public function get startIndex():uint{ return (_startIndex); } public function get items():Array{ return (_items); } override public function clone():Event{ return (new DataChangeEvent(type, _changeType, _items, _startIndex, _endIndex)); } override public function toString():String{ return (formatToString("DataChangeEvent", "type", "changeType", "startIndex", "endIndex", "bubbles", "cancelable")); } public function get endIndex():uint{ return (_endIndex); } } }//package fl.events
Section 33
//DataChangeType (fl.events.DataChangeType) package fl.events { public class DataChangeType { public static const ADD:String = "add"; public static const REMOVE:String = "remove"; public static const REMOVE_ALL:String = "removeAll"; public static const CHANGE:String = "change"; public static const REPLACE:String = "replace"; public static const INVALIDATE:String = "invalidate"; public static const INVALIDATE_ALL:String = "invalidateAll"; public static const SORT:String = "sort"; } }//package fl.events
Section 34
//ListEvent (fl.events.ListEvent) package fl.events { import flash.events.*; public class ListEvent extends Event { protected var _index:int; protected var _item:Object; protected var _columnIndex:int; protected var _rowIndex:int; public static const ITEM_DOUBLE_CLICK:String = "itemDoubleClick"; public static const ITEM_ROLL_OUT:String = "itemRollOut"; public static const ITEM_ROLL_OVER:String = "itemRollOver"; public static const ITEM_CLICK:String = "itemClick"; public function ListEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:int=-1, _arg5:int=-1, _arg6:int=-1, _arg7:Object=null){ super(_arg1, _arg2, _arg3); _rowIndex = _arg5; _columnIndex = _arg4; _index = _arg6; _item = _arg7; } public function get rowIndex():Object{ return (_rowIndex); } public function get index():int{ return (_index); } public function get item():Object{ return (_item); } public function get columnIndex():int{ return (_columnIndex); } override public function clone():Event{ return (new ListEvent(type, bubbles, cancelable, _columnIndex, _rowIndex)); } override public function toString():String{ return (formatToString("ListEvent", "type", "bubbles", "cancelable", "columnIndex", "rowIndex", "index", "item")); } } }//package fl.events
Section 35
//ScrollEvent (fl.events.ScrollEvent) package fl.events { import flash.events.*; public class ScrollEvent extends Event { private var _position:Number; private var _direction:String; private var _delta:Number; public static const SCROLL:String = "scroll"; public function ScrollEvent(_arg1:String, _arg2:Number, _arg3:Number){ super(ScrollEvent.SCROLL, false, false); _direction = _arg1; _delta = _arg2; _position = _arg3; } override public function clone():Event{ return (new ScrollEvent(_direction, _delta, _position)); } public function get position():Number{ return (_position); } override public function toString():String{ return (formatToString("ScrollEvent", "type", "bubbles", "cancelable", "direction", "delta", "position")); } public function get delta():Number{ return (_delta); } public function get direction():String{ return (_direction); } } }//package fl.events
Section 36
//FocusManager (fl.managers.FocusManager) package fl.managers { import fl.controls.*; import flash.display.*; import fl.core.*; import flash.events.*; import flash.text.*; import flash.utils.*; import flash.ui.*; public class FocusManager implements IFocusManager { private var focusableObjects:Dictionary; private var _showFocusIndicator:Boolean;// = true private var defButton:Button; private var focusableCandidates:Array; private var _form:DisplayObjectContainer; private var _defaultButtonEnabled:Boolean;// = true private var activated:Boolean;// = false private var _defaultButton:Button; private var calculateCandidates:Boolean;// = true private var lastFocus:InteractiveObject; private var lastAction:String; public function FocusManager(_arg1:DisplayObjectContainer){ activated = false; calculateCandidates = true; _showFocusIndicator = true; _defaultButtonEnabled = true; super(); focusableObjects = new Dictionary(true); if (_arg1 != null){ _form = _arg1; addFocusables(DisplayObject(_arg1)); _arg1.addEventListener(Event.ADDED, addedHandler); _arg1.addEventListener(Event.REMOVED, removedHandler); activate(); }; } public function get showFocusIndicator():Boolean{ return (_showFocusIndicator); } private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{ var _local5:int; var _local6:int; var _local7:DisplayObject; var _local8:IFocusManagerGroup; var _local9:int; var _local10:DisplayObject; var _local11:IFocusManagerGroup; _local5 = focusableCandidates.length; _local6 = _arg1; while (true) { if (_arg2){ _arg1--; } else { _arg1++; }; if (_arg3){ if (((_arg2) && ((_arg1 < 0)))){ break; }; if (((!(_arg2)) && ((_arg1 == _local5)))){ break; }; } else { _arg1 = ((_arg1 + _local5) % _local5); if (_local6 == _arg1){ break; }; }; if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){ _local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1])); if ((_local7 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local7); _local9 = 0; while (_local9 < focusableCandidates.length) { _local10 = focusableCandidates[_local9]; if ((_local10 is IFocusManagerGroup)){ _local11 = IFocusManagerGroup(_local10); if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){ _arg1 = _local9; break; }; }; _local9++; }; }; return (_arg1); }; }; return (_arg1); } public function set form(_arg1:DisplayObjectContainer):void{ _form = _arg1; } private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{ var focusable:IFocusManagerComponent; var io:InteractiveObject; var doc:DisplayObjectContainer; var i:int; var child:DisplayObject; var o = _arg1; var skipTopLevel = _arg2; if (!skipTopLevel){ if ((o is IFocusManagerComponent)){ focusable = IFocusManagerComponent(o); if (focusable.focusEnabled){ if (((focusable.tabEnabled) && (isTabVisible(o)))){ focusableObjects[o] = true; calculateCandidates = true; }; o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; } else { if ((o is InteractiveObject)){ io = (o as InteractiveObject); if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){ focusableObjects[io] = true; calculateCandidates = true; }; io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; }; }; if ((o is DisplayObjectContainer)){ doc = DisplayObjectContainer(o); o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){ i = 0; while (i < doc.numChildren) { try { child = doc.getChildAt(i); if (child != null){ addFocusables(doc.getChildAt(i)); }; } catch(error:SecurityError) { }; i = (i + 1); }; }; }; } private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{ return (_arg1.getChildIndex(_arg2)); } private function mouseFocusChangeHandler(_arg1:FocusEvent):void{ if ((_arg1.relatedObject is TextField)){ return; }; _arg1.preventDefault(); } private function focusOutHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; _local2 = (_arg1.target as InteractiveObject); } private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{ var _local3:IFocusManagerGroup; if (!isEnabledAndVisible(_arg1)){ return (false); }; if ((_arg1 is IFocusManagerGroup)){ _local3 = IFocusManagerGroup(_arg1); if (_arg2 == _local3.groupName){ return (false); }; }; return (true); } public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{ var _local2:InteractiveObject; _local2 = _arg1; while (_arg1) { if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){ return (_arg1); }; _arg1 = _arg1.parent; }; return (_local2); } private function sortFocusableObjectsTabIndex():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){ focusableCandidates.push(_local2); }; }; focusableCandidates.sort(sortByTabIndex); } private function removeFocusables(_arg1:DisplayObject):void{ var _local2:Object; var _local3:DisplayObject; if ((_arg1 is DisplayObjectContainer)){ _arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); _arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); for (_local2 in focusableObjects) { _local3 = DisplayObject(_local2); if (DisplayObjectContainer(_arg1).contains(_local3)){ if (_local3 == lastFocus){ lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local2]; calculateCandidates = true; }; }; }; } private function addedHandler(_arg1:Event):void{ var _local2:DisplayObject; _local2 = DisplayObject(_arg1.target); if (_local2.stage){ addFocusables(DisplayObject(_arg1.target)); }; } private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{ while (_arg1 != InteractiveObject(form)) { if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){ return (_arg1); }; _arg1 = _arg1.parent; if (_arg1 == null){ break; }; }; return (null); } private function tabChildrenChangeHandler(_arg1:Event):void{ var _local2:DisplayObjectContainer; if (_arg1.target != _arg1.currentTarget){ return; }; calculateCandidates = true; _local2 = DisplayObjectContainer(_arg1.target); if (_local2.tabChildren){ addFocusables(_local2, true); } else { removeFocusables(_local2); }; } public function sendDefaultButtonEvent():void{ defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); } public function getFocus():InteractiveObject{ var _local1:InteractiveObject; _local1 = form.stage.focus; return (findFocusManagerComponent(_local1)); } private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; var _local3:TextField; var _local4:SimpleButton; _local2 = DisplayObject(form).parent; while (_arg1 != _local2) { if ((_arg1 is UIComponent)){ if (!UIComponent(_arg1).enabled){ return (false); }; } else { if ((_arg1 is TextField)){ _local3 = TextField(_arg1); if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){ return (false); }; } else { if ((_arg1 is SimpleButton)){ _local4 = SimpleButton(_arg1); if (!_local4.enabled){ return (false); }; }; }; }; if (!_arg1.visible){ return (false); }; _arg1 = _arg1.parent; }; return (true); } public function set defaultButton(_arg1:Button):void{ var _local2:Button; _local2 = (_arg1) ? Button(_arg1) : null; if (_local2 != _defaultButton){ if (_defaultButton){ _defaultButton.emphasized = false; }; if (defButton){ defButton.emphasized = false; }; _defaultButton = _local2; defButton = _local2; if (_local2){ _local2.emphasized = true; }; }; } private function deactivateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); } public function setFocus(_arg1:InteractiveObject):void{ if ((_arg1 is IFocusManagerComponent)){ IFocusManagerComponent(_arg1).setFocus(); } else { form.stage.focus = _arg1; }; } private function setFocusToNextObject(_arg1:FocusEvent):void{ var _local2:InteractiveObject; if (!hasFocusableObjects()){ return; }; _local2 = getNextFocusManagerComponent(_arg1.shiftKey); if (_local2){ setFocus(_local2); }; } private function hasFocusableObjects():Boolean{ var _local1:Object; for (_local1 in focusableObjects) { return (true); }; return (false); } private function tabIndexChangeHandler(_arg1:Event):void{ calculateCandidates = true; } private function sortFocusableObjects():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){ sortFocusableObjectsTabIndex(); return; }; focusableCandidates.push(_local2); }; focusableCandidates.sort(sortByDepth); } private function keyFocusChangeHandler(_arg1:FocusEvent):void{ showFocusIndicator = true; if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){ setFocusToNextObject(_arg1); _arg1.preventDefault(); }; } private function getIndexOfFocusedObject(_arg1:DisplayObject):int{ var _local2:int; var _local3:int; _local2 = focusableCandidates.length; _local3 = 0; _local3 = 0; while (_local3 < _local2) { if (focusableCandidates[_local3] == _arg1){ return (_local3); }; _local3++; }; return (-1); } public function hideFocus():void{ } private function removedHandler(_arg1:Event):void{ var _local2:int; var _local3:DisplayObject; var _local4:InteractiveObject; _local3 = DisplayObject(_arg1.target); if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){ if (_local3 == lastFocus){ IFocusManagerComponent(lastFocus).drawFocus(false); lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local3]; calculateCandidates = true; } else { if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){ _local4 = (_local3 as InteractiveObject); if (_local4){ if (_local4 == lastFocus){ lastFocus = null; }; delete focusableObjects[_local4]; calculateCandidates = true; }; _local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); }; }; removeFocusables(_local3); } private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{ var _local3:String; var _local4:String; var _local5:int; var _local6:String; var _local7:String; var _local8:String; var _local9:DisplayObject; var _local10:DisplayObject; _local3 = ""; _local4 = ""; _local8 = "0000"; _local9 = DisplayObject(_arg1); _local10 = DisplayObject(_arg2); while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) { _local5 = getChildIndex(_local9.parent, _local9); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local3 = (_local7 + _local3); _local9 = _local9.parent; }; while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) { _local5 = getChildIndex(_local10.parent, _local10); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local4 = (_local7 + _local4); _local10 = _local10.parent; }; return (((_local3 > _local4)) ? 1 : ((_local3 < _local4)) ? -1 : 0); } public function get defaultButton():Button{ return (_defaultButton); } private function activateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); if (lastFocus){ if ((lastFocus is IFocusManagerComponent)){ IFocusManagerComponent(lastFocus).setFocus(); } else { form.stage.focus = lastFocus; }; }; lastAction = "ACTIVATE"; } public function showFocus():void{ } public function set defaultButtonEnabled(_arg1:Boolean):void{ _defaultButtonEnabled = _arg1; } public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{ var _local2:DisplayObject; var _local3:String; var _local4:int; var _local5:Boolean; var _local6:int; var _local7:int; var _local8:IFocusManagerGroup; if (!hasFocusableObjects()){ return (null); }; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; _local2 = form.stage.focus; _local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2))); _local3 = ""; if ((_local2 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local2); _local3 = _local8.groupName; }; _local4 = getIndexOfFocusedObject(_local2); _local5 = false; _local6 = _local4; if (_local4 == -1){ if (_arg1){ _local4 = focusableCandidates.length; }; _local5 = true; }; _local7 = getIndexOfNextObject(_local4, _arg1, _local5, _local3); return (findFocusManagerComponent(focusableCandidates[_local7])); } private function mouseDownHandler(_arg1:MouseEvent):void{ var _local2:InteractiveObject; if (_arg1.isDefaultPrevented()){ return; }; _local2 = getTopLevelFocusTarget(InteractiveObject(_arg1.target)); if (!_local2){ return; }; showFocusIndicator = false; if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){ setFocus(_local2); }; lastAction = "MOUSEDOWN"; } private function isTabVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; _local2 = _arg1.parent; while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) { if (!_local2.tabChildren){ return (false); }; _local2 = _local2.parent; }; return (true); } public function get nextTabIndex():int{ return (0); } private function keyDownHandler(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.TAB){ lastAction = "KEY"; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; }; if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){ sendDefaultButtonEvent(); }; } private function focusInHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; var _local3:Button; _local2 = InteractiveObject(_arg1.target); if (form.contains(_local2)){ lastFocus = findFocusManagerComponent(InteractiveObject(_local2)); if ((lastFocus is Button)){ _local3 = Button(lastFocus); if (defButton){ defButton.emphasized = false; defButton = _local3; _local3.emphasized = true; }; } else { if (((defButton) && (!((defButton == _defaultButton))))){ defButton.emphasized = false; defButton = _defaultButton; _defaultButton.emphasized = true; }; }; }; } private function tabEnabledChangeHandler(_arg1:Event):void{ var _local2:InteractiveObject; var _local3:Boolean; calculateCandidates = true; _local2 = InteractiveObject(_arg1.target); _local3 = (focusableObjects[_local2] == true); if (_local2.tabEnabled){ if (((!(_local3)) && (isTabVisible(_local2)))){ if (!(_local2 is IFocusManagerComponent)){ _local2.focusRect = false; }; focusableObjects[_local2] = true; }; } else { if (_local3){ delete focusableObjects[_local2]; }; }; } public function set showFocusIndicator(_arg1:Boolean):void{ _showFocusIndicator = _arg1; } public function get form():DisplayObjectContainer{ return (_form); } private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{ return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2)); } public function activate():void{ if (activated){ return; }; form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true); form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true); form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true); form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true); form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = true; if (lastFocus){ setFocus(lastFocus); }; } public function deactivate():void{ form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler); form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler); form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.removeEventListener(Event.ACTIVATE, activateHandler); form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler); form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = false; } public function get defaultButtonEnabled():Boolean{ return (_defaultButtonEnabled); } } }//package fl.managers
Section 37
//IFocusManager (fl.managers.IFocusManager) package fl.managers { import fl.controls.*; import flash.display.*; public interface IFocusManager { function getFocus():InteractiveObject; function deactivate():void; function set defaultButton(_arg1:Button):void; function set showFocusIndicator(_arg1:Boolean):void; function get defaultButtonEnabled():Boolean; function get nextTabIndex():int; function get defaultButton():Button; function get showFocusIndicator():Boolean; function setFocus(_arg1:InteractiveObject):void; function activate():void; function showFocus():void; function set defaultButtonEnabled(_arg1:Boolean):void; function hideFocus():void; function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject; function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject; } }//package fl.managers
Section 38
//IFocusManagerComponent (fl.managers.IFocusManagerComponent) package fl.managers { public interface IFocusManagerComponent { function set focusEnabled(_arg1:Boolean):void; function drawFocus(_arg1:Boolean):void; function setFocus():void; function get focusEnabled():Boolean; function get tabEnabled():Boolean; function get tabIndex():int; function get mouseFocusEnabled():Boolean; } }//package fl.managers
Section 39
//IFocusManagerGroup (fl.managers.IFocusManagerGroup) package fl.managers { public interface IFocusManagerGroup { function set groupName(_arg1:String):void; function set selected(_arg1:Boolean):void; function get groupName():String; function get selected():Boolean; } }//package fl.managers
Section 40
//StyleManager (fl.managers.StyleManager) package fl.managers { import fl.core.*; import flash.text.*; import flash.utils.*; public class StyleManager { private var globalStyles:Object; private var classToDefaultStylesDict:Dictionary; private var styleToClassesHash:Object; private var classToStylesDict:Dictionary; private var classToInstancesDict:Dictionary; private static var _instance:StyleManager; public function StyleManager(){ styleToClassesHash = {}; classToInstancesDict = new Dictionary(true); classToStylesDict = new Dictionary(true); classToDefaultStylesDict = new Dictionary(true); globalStyles = UIComponent.getStyleDefinition(); } public static function clearComponentStyle(_arg1:Object, _arg2:String):void{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){ delete _local4[_arg2]; invalidateComponentStyle(_local3, _arg2); }; } private static function getClassDef(_arg1:Object):Class{ var component = _arg1; if ((component is Class)){ return ((component as Class)); }; try { return ((getDefinitionByName(getQualifiedClassName(component)) as Class)); } catch(e:Error) { if ((component is UIComponent)){ try { return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class)); } catch(e:Error) { }; }; }; return (null); } public static function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Class; var _local5:Object; _local4 = getClassDef(_arg1); _local5 = getInstance().classToStylesDict[_local4]; if (_local5 == null){ _local5 = (getInstance().classToStylesDict[_local4] = {}); }; if (_local5 == _arg3){ return; }; _local5[_arg2] = _arg3; invalidateComponentStyle(_local4, _arg2); } private static function setSharedStyles(_arg1:UIComponent):void{ var _local2:StyleManager; var _local3:Class; var _local4:Object; var _local5:String; _local2 = getInstance(); _local3 = getClassDef(_arg1); _local4 = _local2.classToDefaultStylesDict[_local3]; for (_local5 in _local4) { _arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5)); }; } public static function getComponentStyle(_arg1:Object, _arg2:String):Object{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; return (((_local4)==null) ? null : _local4[_arg2]); } private static function getInstance(){ if (_instance == null){ _instance = new (StyleManager); }; return (_instance); } private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{ var _local3:Dictionary; var _local4:Object; var _local5:UIComponent; _local3 = getInstance().classToInstancesDict[_arg1]; if (_local3 == null){ return; }; for (_local4 in _local3) { _local5 = (_local4 as UIComponent); if (_local5 == null){ } else { _local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2)); }; }; } private static function invalidateStyle(_arg1:String):void{ var _local2:Dictionary; var _local3:Object; _local2 = getInstance().styleToClassesHash[_arg1]; if (_local2 == null){ return; }; for (_local3 in _local2) { invalidateComponentStyle(Class(_local3), _arg1); }; } public static function registerInstance(_arg1:UIComponent):void{ var inst:StyleManager; var classDef:Class; var target:Class; var defaultStyles:Object; var styleToClasses:Object; var n:String; var instance = _arg1; inst = getInstance(); classDef = getClassDef(instance); if (classDef == null){ return; }; if (inst.classToInstancesDict[classDef] == null){ inst.classToInstancesDict[classDef] = new Dictionary(true); target = classDef; while (defaultStyles == null) { if (target["getStyleDefinition"] != null){ defaultStyles = target["getStyleDefinition"](); break; }; try { target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class); } catch(err:Error) { try { target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class); } catch(e:Error) { defaultStyles = UIComponent.getStyleDefinition(); break; }; }; }; styleToClasses = inst.styleToClassesHash; for (n in defaultStyles) { if (styleToClasses[n] == null){ styleToClasses[n] = new Dictionary(true); }; styleToClasses[n][classDef] = true; }; inst.classToDefaultStylesDict[classDef] = defaultStyles; inst.classToStylesDict[classDef] = {}; }; inst.classToInstancesDict[classDef][instance] = true; setSharedStyles(instance); } public static function getStyle(_arg1:String):Object{ return (getInstance().globalStyles[_arg1]); } private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{ var _local3:Class; var _local4:StyleManager; var _local5:Object; _local3 = getClassDef(_arg1); _local4 = getInstance(); _local5 = _local4.classToStylesDict[_local3][_arg2]; if (_local5 != null){ return (_local5); }; _local5 = _local4.globalStyles[_arg2]; if (_local5 != null){ return (_local5); }; return (_local4.classToDefaultStylesDict[_local3][_arg2]); } public static function setStyle(_arg1:String, _arg2:Object):void{ var _local3:Object; _local3 = getInstance().globalStyles; if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; _local3[_arg1] = _arg2; invalidateStyle(_arg1); } } }//package fl.managers
Section 41
//BasicBackground (BasicBackground) package { import flash.display.*; public dynamic class BasicBackground extends MovieClip { } }//package
Section 42
//Boss (Boss) package { import flash.display.*; import flash.events.*; import flash.utils.*; public dynamic class Boss extends MovieClip { public var paused:Boolean; private var range:int; private var timer:Timer; private var initX:Number; private var initY:Number; private var moving:Boolean;// = false public var health:Number; private var startTime:Number; public var holder:EffectsHolder; private var dir:int; private var inPain:Boolean;// = false private var difficulty:Number; private var vr:int; private var timeInPain:Number; public function Boss(_arg1:Number, _arg2:Number){ inPain = false; moving = false; super(); x = _arg1; y = _arg2; initX = _arg1; initY = _arg2; difficulty = 0; setupTimer(); holder = new EffectsHolder(); addChild(holder); addEventListener(Event.ENTER_FRAME, manageMovement); timeInPain = 1500; health = 5; range = 150; dir = (int((Math.random() * 10)) + 1); if (dir <= 5){ dir = -1; } else { dir = 1; }; vr = 1; } public function hurt(){ startTime = getTimer(); inPain = true; this.alpha = 0.75; difficulty = (difficulty + 1500); timeInPain = (timeInPain - 200); health--; if (health == 2){ moving = true; }; vr++; holder.vr--; } public function reedem(){ inPain = false; this.alpha = 1; } public function manageMovement(_arg1:Event){ var _local2:*; if (!paused){ this.rotation = (this.rotation + vr); if (moving){ if (this.x < (initX - range)){ x = (initX - range); dir = 1; } else { if (this.x > (initX + range)){ x = (initX + range); dir = -1; }; }; x = (x + dir); }; _local2 = (getTimer() - startTime); if ((((_local2 >= timeInPain)) && (inPain))){ reedem(); }; } else { startTime = (startTime + (getTimer() - startTime)); }; } public function dispose(){ var _local1:*; _local1 = (numChildren - 1); while (_local1 > 0) { MovieClip(getChildAt(_local1)).dispose(); removeChild(getChildAt(_local1)); _local1--; }; } public function reset(){ } public function isInPain(){ return (inPain); } public function starAttack(_arg1:int){ var _local2:*; var _local3:*; var _local4:Number; var _local5:Number; var _local6:*; _local2 = 0; while (_local2 < _arg1) { _local3 = ((((360 / _arg1) * _local2) * Math.PI) / 180); _local4 = Math.cos(_local3); _local5 = Math.sin(_local3); _local6 = new Bullet((_local4 * 50), (_local5 * 50), (_local4 * 2), (_local5 * 2)); holder.bullets.push(_local6); holder.addChild(_local6); _local2++; }; } public function spawnAttack(_arg1:TimerEvent){ timer.removeEventListener(TimerEvent.TIMER, spawnAttack); if (!inPain){ if (!paused){ starAttack(Math.round(((Math.random() * 5) + 4))); }; }; setupTimer(); } public function setupTimer(){ var _local1:Number; _local1 = Math.ceil((((Math.random() * 1000) + 10000) - difficulty)); timer = new Timer(_local1, 0); timer.addEventListener(TimerEvent.TIMER, spawnAttack); timer.start(); } } }//package
Section 43
//Bullet (Bullet) package { import flash.display.*; import flash.events.*; public dynamic class Bullet extends MovieClip { private var vx:Number; private var vy:Number; private var xDistAwayBeforeDisposal:Number; private var yDistAwayBeforeDisposal:Number; public function Bullet(_arg1:Number, _arg2:Number, _arg3, _arg4){ x = _arg1; y = _arg2; vx = _arg3; vy = _arg4; addEventListener(Event.ENTER_FRAME, manageMovement); xDistAwayBeforeDisposal = 400; yDistAwayBeforeDisposal = 400; } public function dispose(){ removeEventListener(Event.ENTER_FRAME, manageMovement); MovieClip(parent).removeBullet(this); parent.removeChild(this); } public function manageMovement(_arg1:Event){ this.rotation = (this.rotation + 1); x = (x + vx); y = (y + vy); if ((((x > xDistAwayBeforeDisposal)) || ((x < -(xDistAwayBeforeDisposal))))){ dispose(); } else { if ((((y > yDistAwayBeforeDisposal)) || ((y < -(yDistAwayBeforeDisposal))))){ dispose(); }; }; } } }//package
Section 44
//CellRenderer_disabledSkin (CellRenderer_disabledSkin) package { import flash.display.*; public dynamic class CellRenderer_disabledSkin extends MovieClip { } }//package
Section 45
//CellRenderer_downSkin (CellRenderer_downSkin) package { import flash.display.*; public dynamic class CellRenderer_downSkin extends MovieClip { } }//package
Section 46
//CellRenderer_overSkin (CellRenderer_overSkin) package { import flash.display.*; public dynamic class CellRenderer_overSkin extends MovieClip { } }//package
Section 47
//CellRenderer_selectedDisabledSkin (CellRenderer_selectedDisabledSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDisabledSkin extends MovieClip { } }//package
Section 48
//CellRenderer_selectedDownSkin (CellRenderer_selectedDownSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDownSkin extends MovieClip { } }//package
Section 49
//CellRenderer_selectedOverSkin (CellRenderer_selectedOverSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedOverSkin extends MovieClip { } }//package
Section 50
//CellRenderer_selectedUpSkin (CellRenderer_selectedUpSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedUpSkin extends MovieClip { } }//package
Section 51
//CellRenderer_upSkin (CellRenderer_upSkin) package { import flash.display.*; public dynamic class CellRenderer_upSkin extends MovieClip { } }//package
Section 52
//DeleteButton (DeleteButton) package { import flash.display.*; public dynamic class DeleteButton extends SimpleButton { } }//package
Section 53
//EffectsHolder (EffectsHolder) package { import flash.display.*; import flash.events.*; public class EffectsHolder extends MovieClip { public var bullets:Array; private var vx:Number; private var vy:Number; public var vr:int; public function EffectsHolder(){ bullets = new Array(); addEventListener(Event.ENTER_FRAME, manageMovement); vr = -1; } public function dispose(){ var _local1:*; _local1 = (numChildren - 1); while (_local1 > 0) { MovieClip(getChildAt(_local1)).dispose(); _local1--; }; } public function manageMovement(_arg1:Event){ this.rotation = (this.rotation + vr); } public function removeBullet(_arg1:Bullet){ var _local2:Number; var _local3:*; _local3 = 0; while (_local3 < bullets.length) { if (bullets[_local3] == _arg1){ _local2 = _local3; break; }; _local3++; }; bullets.splice(_local2, 1); } } }//package
Section 54
//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { } }//package
Section 55
//Game (Game) package { import flash.display.*; import flash.events.*; import flash.text.*; import flash.utils.*; import com.gamersgarden.bg.*; import com.gamersgarden.map.*; import com.gamersgarden.ball.*; import flash.ui.*; public class Game extends Sprite { public var resets:int; private var window:PausedWindow; public var counter:int; public var relY:Number; private var left:Boolean; private var right:Boolean; private var follower; private var counterDisplay:TextField; private var paused:Boolean; private var maxXSpeed:int;// = 6 private var mvyGravity:Number; private var bg:Background; private var timer:Timer; private var increaseXAmount:Number;// = 0.2 private var map:Map; private var gravity:Number;// = 0.1 public var custom:Boolean; private var boss:Boss; public var p; public var windowExists:Boolean; private var lastTime:Number; private var falling:Boolean; private var bossAdded:Boolean;// = false private var decreaseXAmount:Number;// = 0.1 private var levelOn:String; private var bounceThreshold:Number;// = 2.5 private var maxYSpeed:int;// = 30 private var form; public var relX:Number; private var mvx:Number; private var mvy:Number; private var ball:Ball; public function Game(_arg1:String){ maxXSpeed = 6; maxYSpeed = 30; increaseXAmount = 0.2; decreaseXAmount = 0.1; gravity = 0.1; bounceThreshold = 2.5; form = new TextFormat("Helvetica", 15, 0xFF00FF); bossAdded = false; super(); form.align = "right"; lastTime = getTimer(); levelOn = _arg1; bg = new Background(50, 650, 450); addChild(bg); map = new Map(_arg1); map.p = this; addChild(map); ball = new Ball(325, 200); ball.mass = 10; addChild(ball); mvx = 0; mvy = 0; mvyGravity = 0; addEventListener(Event.ENTER_FRAME, manageMovement); falling = true; window = new PausedWindow(); window.x = 325; window.y = 200; window.alpha = 0; addChild(window); setTimer(); counter = 0; resets = 0; counterDisplay = new TextField(); counterDisplay.text = ("" + counter); counterDisplay.x = 610; counterDisplay.y = 5; counterDisplay.width = 35; counterDisplay.setTextFormat(form); counterDisplay.selectable = false; addChild(counterDisplay); relY = (ball.y - map.y); } public function setTimer(){ timer = new Timer(1000, 999); timer.addEventListener(TimerEvent.TIMER, addSecondToCounter); timer.start(); } public function addSecondToCounter(_arg1:TimerEvent){ if (!paused){ counter++; setCounterDisplay(); }; } public function unpauseThis(){ paused = false; map.paused = false; bg.paused = false; if (bossAdded){ boss.paused = false; boss.visible = true; }; } public function finishGame(){ map.dispose(); removeChild(map); dispose(); if (custom){ p.gotoAndStop(23); } else { if (p.levelSelected == 9){ p.startTimerGo(); p.transit(24); } else { p.gotoAndStop(20); }; }; } public function keyIsDown(_arg1:KeyboardEvent){ if (_arg1.keyCode == Keyboard.LEFT){ left = true; }; if (_arg1.keyCode == Keyboard.RIGHT){ right = true; }; if (_arg1.keyCode == 82){ resetGame(); }; } public function gravitate(_arg1:MovieClip, _arg2:MovieClip){ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; _local3 = (_arg2.x - relX); _local4 = (_arg2.y - relY); _local5 = ((_local3 * _local3) + (_local4 * _local4)); _local6 = Math.sqrt(_local5); _local7 = ((_arg1.mass * _arg2.mass) / _local5); _local8 = ((_local7 * _local3) / _local6); _local9 = ((_local7 * _local4) / _local6); mvx = (mvx - (_local8 / _arg1.mass)); mvy = (mvy - (_local9 / _arg1.mass)); } public function setCounterDisplay(){ removeChild(counterDisplay); counterDisplay = new TextField(); counterDisplay.text = ("" + counter); counterDisplay.setTextFormat(form); counterDisplay.selectable = false; counterDisplay.x = 610; counterDisplay.width = 35; counterDisplay.y = 5; addChild(counterDisplay); } public function dispose(){ map.dispose(); bg.dispose(); removeChild(counterDisplay); removeBall(); removeEventListener(Event.ENTER_FRAME, manageMovement); timer.removeEventListener(TimerEvent.TIMER, addSecondToCounter); } public function manageMovement(_arg1:Event){ var _local2:*; var _local3:Boolean; var _local4:*; var _local5:Boolean; var _local6:*; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; relX = (ball.x - map.x); relY = (ball.y - map.y); if (((!(bossAdded)) && ((p.levelSelected == 9)))){ map.addChild(new Boss(330, 0)); boss = Boss(map.getChildAt((map.numChildren - 1))); bossAdded = true; }; _local2 = (getTimer() - lastTime); lastTime = (lastTime + _local2); if (!paused){ if (int(((Math.random() * 10) + 1)) == 10){ bg.twinkle(325, 200); }; if (left){ mvx = (mvx + ((increaseXAmount * _local2) * 0.08)); }; if (right){ mvx = (mvx - ((increaseXAmount * _local2) * 0.08)); }; if (((!(right)) && (!(left)))){ if (mvx > 0){ mvx = (mvx - ((decreaseXAmount * _local2) * 0.08)); }; if (mvx < 0){ mvx = (mvx + ((decreaseXAmount * _local2) * 0.08)); }; if ((((mvx < increaseXAmount)) && ((mvx > 0)))){ mvx = 0; } else { if ((((mvx > -(increaseXAmount))) && ((mvx < 0)))){ mvx = 0; }; }; }; if (falling){ mvy = (mvy - ((gravity * _local2) * 0.1)); }; if (mvy < -(maxYSpeed)){ mvy = -(maxYSpeed); }; if (mvx > maxXSpeed){ mvx = maxXSpeed; } else { if (mvx < -(maxXSpeed)){ mvx = -(maxXSpeed); }; }; bg.setVX((mvx / 3)); bg.setVY((mvy / 3)); map.setVX(mvx); map.setVY(mvy); if (p.levelSelected == 9){ _local5 = false; _local6 = 0; while (_local6 < boss.holder.bullets.length) { if (boss.holder.bullets[_local6].hitTestObject(ball)){ resetGame(); _local5 = true; }; _local6++; }; if (((boss.hitTestPoint(ball.x, ball.y, true)) && (!(_local5)))){ if ((((mvy < 0)) && (!(boss.isInPain())))){ if (boss.health <= 0){ pauseThis(); explode(); } else { mvy = (mvy * -0.5); mvx = 0; boss.hurt(); }; } else { if ((((mvy > 0)) && (!(boss.isInPain())))){ resetGame(); }; }; }; }; _local3 = (((mvy < (-1 * bounceThreshold))) || ((mvy > bounceThreshold))); _local4 = 0; while (_local4 < map.platforms.length) { if (map.platforms[_local4].type != 3){ if ((((((map.platforms[_local4].type == 4)) && ((mvy < 0)))) && (map.platforms[_local4].hitTestObject(ball)))){ resetGame(); } else { if (((map.platforms[_local4].hitTestObject(ball)) && ((mvy < 0)))){ if (map.platforms[_local4].type != 2){ if (((_local3) || ((map.platforms[_local4].type == 3)))){ mvy = map.platforms[_local4].setYAfterCollision(mvy, map.y); mvx = map.platforms[_local4].setXAfterCollision(mvx, map.x); map.platforms[_local4].toggleOn(); map.y = (map.y + mvy); break; }; }; }; }; } else { if (map.platforms[_local4].type == 3){ if (((map.platforms[_local4].hitTestObject(ball)) && (falling))){ _local7 = (map.platforms[_local4].y - (map.platforms[_local4].height / 2)); _local8 = (map.platforms[_local4].y + (map.platforms[_local4].height / 2)); _local9 = (map.platforms[_local4].x - (map.platforms[_local4].width / 2)); _local10 = (map.platforms[_local4].x + (map.platforms[_local4].width / 2)); if ((((((relX > (_local10 - 2))) && ((relY > _local7)))) && ((relY < _local8)))){ map.x = (((ball.x - map.platforms[_local4].x) - (map.platforms[_local4].width / 2)) - (ball.width / 2)); mvx = (mvx * -1); } else { if ((((((relX < (_local9 + 2))) && ((relY > _local7)))) && ((relY < _local8)))){ map.x = (((ball.x - map.platforms[_local4].x) + (map.platforms[_local4].width / 2)) + (ball.width / 2)); mvx = (mvx * -1); } else { if (relY < map.platforms[_local4].y){ map.y = (((ball.y - map.platforms[_local4].y) + (map.platforms[_local4].height / 2)) + (ball.height / 2)); mvy = 0; falling = false; } else { if (relY > map.platforms[_local4].y){ map.y = ((((ball.y - map.platforms[_local4].y) - (map.platforms[_local4].height / 2)) - (ball.height / 2)) - 1); mvy = map.platforms[_local4].setYAfterCollision(mvy, map.y); falling = true; }; }; }; }; break; } else { if (!map.platforms[_local4].hitTestObject(ball)){ falling = true; }; }; }; }; if (map.platforms[_local4].type == 2){ gravitate(ball, map.platforms[_local4]); if ((((relX < (map.platforms[_local4].x + (map.platforms[_local4].width / 4)))) && ((relX > (map.platforms[_local4].x - (map.platforms[_local4].width / 4)))))){ if ((((relY < (map.platforms[_local4].y + (map.platforms[_local4].height / 4)))) && ((relY > (map.platforms[_local4].y - (map.platforms[_local4].height / 4)))))){ resetGame(); }; }; }; _local4++; }; }; } public function showWindow(){ window.alpha = 1; } public function keyIsUp(_arg1:KeyboardEvent){ if (_arg1.keyCode == Keyboard.LEFT){ left = false; }; if (_arg1.keyCode == Keyboard.RIGHT){ right = false; }; } public function pauseThis(){ paused = true; map.paused = true; bg.paused = true; if (bossAdded){ boss.paused = true; boss.visible = false; }; } public function finBoss(_arg1:TimerEvent){ _arg1.currentTarget.removeEventListener(TimerEvent.TIMER, finBoss); finishGame(); } public function removeBall(){ ball.dispose(); ball = null; } public function keyP(_arg1:KeyboardEvent){ if (_arg1.keyCode == 80){ if (paused){ hideWindow(); unpauseThis(); } else { showWindow(); pauseThis(); }; }; } public function hideWindow(){ window.alpha = 0; } public function resetGame(){ resets++; map.x = map.xStart; map.y = map.yStart; map.dispose(); bossAdded = false; map.drawLevel(levelOn); if (p.levelSelected == 9){ boss.reset(); }; relX = 0; relY = 0; counter = 0; setCounterDisplay(); timer.removeEventListener(TimerEvent.TIMER, addSecondToCounter); setTimer(); mvx = 0; mvy = 0; bg.setVY(mvy); bg.setVX(mvx); } public function explode(){ var _local1:*; var _local2:*; var _local3:*; var _local4:*; var _local5:*; _local1 = 0; while (_local1 < 360) { _local3 = 0; while (_local3 < 151) { _local4 = (ball.x + (Math.cos(_local1) * _local3)); _local5 = (ball.y + (Math.sin(_local1) * _local3)); addChild(new Particle(_local4, _local5)); _local3 = (_local3 + 50); }; _local1 = (_local1 + 2); }; boss.visible = false; _local2 = new Timer(3000, 0); _local2.start(); _local2.addEventListener(TimerEvent.TIMER, finBoss); } } }//package
Section 56
//LevelEditor (LevelEditor) package { import flash.display.*; import flash.events.*; import flash.text.*; import com.gamersgarden.ball.*; import flash.ui.*; import com.gamersgarden.platforms.*; import com.gamersgarden.windows.*; public class LevelEditor extends MovieClip { private var SPIKY:int;// = 4 private var ball:Ball; private var follower; private var platformSelected;// = null private var gravityForNext:TextField; private var dpArray:Array; private var STAR:int;// = 5 public var windowExists:Boolean; private var save:SaveButton; private var platformsOnLevel:Array; private var BOUNCE:int;// = 1 private var PLANET:int;// = 2 private var controlDown:Boolean;// = false private var levelWidth:int;// = 1295 private var ratioX; private var ratioY; private var STANDARD:int;// = 0 private var WALL:int;// = 3 private var planetMassRatio:int;// = 80 private var levelHeight:int; private var onStageX:int;// = 650 private var onStageY:int;// = 420 private var displayBall:Ball; private var BALL:int;// = 15 public function LevelEditor(){ var _local1:StandardPlatform; var _local2:BouncePlatform; var _local3:Planet; var _local4:Wall; var _local5:SpikyPlatform; var _local6:TextFormat; var _local7:TextField; STANDARD = 0; BOUNCE = 1; PLANET = 2; WALL = 3; SPIKY = 4; STAR = 5; BALL = 15; onStageX = 650; onStageY = 420; levelWidth = 1295; levelHeight = (levelWidth * (onStageY / onStageX)); ratioX = (levelWidth / onStageX); ratioY = (levelHeight / onStageY); platformSelected = null; planetMassRatio = 80; controlDown = false; super(); save = new SaveButton(); save.x = 48; save.y = 5; addChild(save); ball = new Ball((325 / ratioX), (225 / ratioY)); ball.width = (ball.width / ratioX); ball.height = (ball.height / ratioY); addChild(ball); platformsOnLevel = new Array(); dpArray = new Array(); displayBall = new Ball(100, 15); displayBall.display = true; displayBall.buttonMode = true; addChild(displayBall); _local1 = new StandardPlatform(135, 15); _local1.width = (_local1.width / 2); _local1.height = (_local1.height / 2); _local1.display = true; _local1.buttonMode = true; addChild(_local1); dpArray.push(_local1); _local2 = new BouncePlatform(180, 15); _local2.width = (_local2.width / 2); _local2.height = (_local2.height / 2); _local2.display = true; _local2.buttonMode = true; addChild(_local2); dpArray.push(_local2); _local3 = new Planet(265, 13, 500); _local3.width = (_local3.width / 4); _local3.height = (_local3.height / 4); _local3.display = true; _local3.buttonMode = true; addChild(_local3); dpArray.push(_local3); _local4 = new Wall(225, 15); new Wall(225, 15).width = (_local4.width / 2); _local4.height = (_local4.height / 2); _local4.display = true; _local4.buttonMode = true; addChild(_local4); dpArray.push(_local4); _local5 = new SpikyPlatform(305, 15); new SpikyPlatform(305, 15).width = (_local5.width / 2); _local5.height = (_local5.height / 2); _local5.display = true; _local5.buttonMode = true; addChild(_local5); dpArray.push(_local5); _local6 = new TextFormat("Verdana", 10, 0xFFFFFF); gravityForNext = new TextField(); gravityForNext.text = "0"; gravityForNext.y = 5; gravityForNext.x = 595; gravityForNext.width = 50; gravityForNext.height = 15; gravityForNext.border = true; gravityForNext.type = "input"; gravityForNext.setTextFormat(_local6); addChild(gravityForNext); _local6.align = "right"; _local7 = new TextField(); _local7.text = "Black hole mass (0-100)"; _local7.y = 5; _local7.x = 445; _local7.width = 150; _local7.height = 15; _local7.setTextFormat(_local6); addChild(_local7); dpArray[STANDARD].addEventListener(MouseEvent.CLICK, mouseClicked); dpArray[BOUNCE].addEventListener(MouseEvent.CLICK, mouseClicked); dpArray[PLANET].addEventListener(MouseEvent.CLICK, mouseClicked); dpArray[WALL].addEventListener(MouseEvent.CLICK, mouseClicked); dpArray[SPIKY].addEventListener(MouseEvent.CLICK, mouseClicked); displayBall.addEventListener(MouseEvent.CLICK, mouseClicked); save.addEventListener(MouseEvent.CLICK, mouseClicked); addEventListener(Event.ENTER_FRAME, manageMovement); } public function unpause(){ stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseClickedOnThis); dpArray[STANDARD].addEventListener(MouseEvent.CLICK, mouseClicked); dpArray[BOUNCE].addEventListener(MouseEvent.CLICK, mouseClicked); dpArray[PLANET].addEventListener(MouseEvent.CLICK, mouseClicked); dpArray[WALL].addEventListener(MouseEvent.CLICK, mouseClicked); dpArray[SPIKY].addEventListener(MouseEvent.CLICK, mouseClicked); displayBall.addEventListener(MouseEvent.CLICK, mouseClicked); save.addEventListener(MouseEvent.CLICK, mouseClicked); } public function checkLength(_arg1:Number):String{ var _local2:String; _local2 = ""; if (_arg1 <= parseInt("zz", 36)){ if (_arg1 <= parseInt("z", 36)){ _local2 = (_local2 + ("00" + _arg1.toString(36))); } else { _local2 = (_local2 + ("0" + _arg1.toString(36))); }; } else { _local2 = (_local2 + _arg1.toString(36)); }; return (_local2); } public function keyIsDown(_arg1:KeyboardEvent){ if (_arg1.keyCode == Keyboard.CONTROL){ controlDown = true; }; } public function manageMovement(_arg1:Event){ if (follower != null){ follower.x = mouseX; follower.y = mouseY; if (mouseY < 30){ follower.visible = false; } else { if (!windowExists){ follower.visible = true; }; }; }; } public function inRange(_arg1, _arg2):Boolean{ if ((((((((_arg1 > 0)) && ((_arg1 < onStageX)))) && ((_arg2 > 25)))) && ((_arg2 < onStageY)))){ return (true); }; return (false); } public function dispose(){ pause(); } public function getMassInTextField():int{ var _local1:int; _local1 = 0; if ((((parseInt(gravityForNext.text, 10) >= 0)) && ((parseInt(gravityForNext.text, 10) <= 100)))){ _local1 = parseInt(gravityForNext.text, 10); }; return (_local1); } public function mouseClickedOnThis(_arg1:MouseEvent):void{ var _local2:*; var _local3:*; var _local4:StandardPlatform; var _local5:BouncePlatform; var _local6:Planet; var _local7:Wall; var _local8:SpikyPlatform; _local2 = true; _local3 = 0; while (_local3 < platformsOnLevel.length) { if (follower.hitTestObject(platformsOnLevel[_local3])){ _local2 = false; }; _local3++; }; if (_local2){ if ((((platformSelected == STANDARD)) && (inRange(_arg1.localX, _arg1.localY)))){ _local4 = new StandardPlatform(_arg1.localX, _arg1.localY); addChild(_local4); _local4.width = (_local4.width / ratioX); _local4.height = (_local4.height / ratioY); if (controlDown){ _local4.moves = true; } else { _local4.moves = false; }; platformsOnLevel.push(_local4); } else { if ((((platformSelected == BOUNCE)) && (inRange(_arg1.localX, _arg1.localY)))){ _local5 = new BouncePlatform(_arg1.localX, _arg1.localY); addChild(_local5); _local5.width = (_local5.width / ratioX); _local5.height = (_local5.height / ratioY); if (controlDown){ _local5.moves = true; } else { _local5.moves = false; }; platformsOnLevel.push(_local5); } else { if ((((platformSelected == PLANET)) && (inRange(_arg1.localX, _arg1.localY)))){ _local6 = new Planet(_arg1.localX, _arg1.localY, 500); addChild(_local6); _local6.width = (_local6.width / ratioX); _local6.height = (_local6.height / ratioY); _local6.mass = (getMassInTextField() * planetMassRatio); platformsOnLevel.push(_local6); } else { if ((((platformSelected == WALL)) && (inRange(_arg1.localX, _arg1.localY)))){ _local7 = new Wall(_arg1.localX, _arg1.localY); addChild(_local7); _local7.width = (_local7.width / ratioX); _local7.height = (_local7.height / ratioY); platformsOnLevel.push(_local7); } else { if ((((platformSelected == SPIKY)) && (inRange(_arg1.localX, _arg1.localY)))){ _local8 = new SpikyPlatform(_arg1.localX, _arg1.localY); addChild(_local8); _local8.width = (_local8.width / ratioX); _local8.height = (_local8.height / ratioY); if (controlDown){ _local8.moves = true; } else { _local8.moves = false; }; platformsOnLevel.push(_local8); } else { if ((((platformSelected == BALL)) && (inRange(_arg1.localX, _arg1.localY)))){ ball.x = _arg1.localX; ball.y = _arg1.localY; }; }; }; }; }; }; }; } public function keyIsUp(_arg1:KeyboardEvent){ if (_arg1.keyCode == Keyboard.CONTROL){ controlDown = false; }; } public function removeWindow(){ unpause(); } public function mouseClicked(_arg1:MouseEvent):void{ var _local2:String; var _local3:Number; var _local4:Number; var _local5:*; var _local6:Number; var _local7:Number; var _local8:Window; if (_arg1.currentTarget == displayBall){ if (displayBall.display){ platformSelected = BALL; removeFollower(); follower = new Ball(_arg1.localX, _arg1.localY); }; }; if (_arg1.currentTarget == dpArray[STANDARD]){ if (dpArray[STANDARD].display){ platformSelected = STANDARD; removeFollower(); follower = new StandardPlatform(_arg1.localX, _arg1.localY); }; }; if (_arg1.currentTarget == dpArray[BOUNCE]){ if (dpArray[BOUNCE].display){ platformSelected = BOUNCE; removeFollower(); follower = new BouncePlatform(_arg1.localX, _arg1.localY); }; }; if (_arg1.currentTarget == dpArray[PLANET]){ if (dpArray[PLANET].display){ platformSelected = PLANET; removeFollower(); follower = new Planet(_arg1.localX, _arg1.localY, 500); }; }; if (_arg1.currentTarget == dpArray[WALL]){ if (dpArray[WALL].display){ platformSelected = WALL; removeFollower(); follower = new Wall(_arg1.localX, _arg1.localY); }; }; if (_arg1.currentTarget == dpArray[SPIKY]){ if (dpArray[SPIKY].display){ platformSelected = SPIKY; removeFollower(); follower = new SpikyPlatform(_arg1.localX, _arg1.localY); }; }; if (follower != null){ follower.mouseEnabled = false; addChild(follower); follower.height = (follower.height / ratioY); follower.width = (follower.width / ratioX); }; if (_arg1.currentTarget == save){ _local2 = ""; _local3 = (ball.x * ratioX); _local4 = (ball.y * ratioY); _local2 = (_local2 + (checkLength(_local3) + checkLength(_local4))); _local5 = 0; while (_local5 < platformsOnLevel.length) { _local6 = (platformsOnLevel[_local5].x * ratioX); _local7 = (platformsOnLevel[_local5].y * ratioY); _local2 = (_local2 + (checkLength(_local6) + checkLength(_local7))); _local2 = (_local2 + platformsOnLevel[_local5].type.toString(36)); if (platformsOnLevel[_local5].type == PLANET){ _local2 = (_local2 + checkLength(platformsOnLevel[_local5].mass)); }; if ((((((platformsOnLevel[_local5].type == STANDARD)) || ((platformsOnLevel[_local5].type == BOUNCE)))) || ((platformsOnLevel[_local5].type == SPIKY)))){ trace("STANDARD OR BOUNCE"); trace(platformsOnLevel[_local5].moves); if (platformsOnLevel[_local5].moves){ _local2 = (_local2 + 1); trace("MOVE"); } else { _local2 = (_local2 + 0); trace("NO MOVE"); }; }; _local5++; }; if (!windowExists){ _local8 = new Window("LEVEL CODE", _local2, removeWindow); _local8.x = 325; _local8.y = 200; pause(); addChild(_local8); }; }; } public function removeFollower(){ if (follower != null){ removeChild(follower); follower = null; }; } public function pause(){ stage.removeEventListener(MouseEvent.MOUSE_DOWN, mouseClickedOnThis); dpArray[STANDARD].removeEventListener(MouseEvent.CLICK, mouseClicked); dpArray[BOUNCE].removeEventListener(MouseEvent.CLICK, mouseClicked); dpArray[PLANET].removeEventListener(MouseEvent.CLICK, mouseClicked); dpArray[WALL].removeEventListener(MouseEvent.CLICK, mouseClicked); dpArray[SPIKY].removeEventListener(MouseEvent.CLICK, mouseClicked); displayBall.removeEventListener(MouseEvent.CLICK, mouseClicked); save.removeEventListener(MouseEvent.CLICK, mouseClicked); } } }//package
Section 57
//List_skin (List_skin) package { import flash.display.*; public dynamic class List_skin extends MovieClip { } }//package
Section 58
//LoaderBar (LoaderBar) package { import flash.display.*; public dynamic class LoaderBar extends MovieClip { } }//package
Section 59
//LoaderMask (LoaderMask) package { import flash.display.*; public dynamic class LoaderMask extends MovieClip { } }//package
Section 60
//Main (Main) package { import flash.display.*; import flash.events.*; import flash.text.*; import flash.utils.*; import com.gamersgarden.bg.*; import com.gamersgarden.map.*; import flash.net.*; import flash.ui.*; public class Main extends MovieClip { public var tf2:TextField; public var error:TextField; public var hasPlayed:Boolean; public var levelEditor; public var replayButton:MovieClip; public var lvleditorButton:MovieClip; public var lvl:Game; public var scorez:Number; public var levelName:TextField; public var levelSelected:int; public var percent:TextField; public var bg; public var lvldisplay:TextField; public var so:SharedObject; public var f:TextFormat; public var i; private var cm:ContextMenu; public var m:BasicBackground; public var creditsButton:MovieClip; private var t:Transition; public var playmore:MovieClip; public var tf:TextField; public var score:Number; public var f2:TextFormat; private var time:Timer; public var cLvl; public var bestTime:TextField; public var backButton:MovieClip; public var nextlevelButton:MovieClip; private var customCode:String; public var sponsor:URLRequest; public var instructionsButton:MovieClip; public var names:Array; public var playGame:MovieClip; private var soundIsPlaying:Boolean; public var map:Map; public var color; public var levels:Array; public var menuButton:MovieClip; public var custom:MovieClip; public var currentLevel:int; public var congratsDisplay:TextField; public var logo:MovieClip; public var difficulty:TextField; public var sponsorlogo:MovieClip; public var customCodeDisplay:TextField; private var tExists:Boolean;// = false public var levelCodeDisplay:TextField; public var playgameButton:MovieClip; public function Main(){ tExists = false; time = new Timer(3000, 0); super(); addFrameScript(1, frame2, 2, frame3, 14, frame15, 15, frame16, 16, frame17, 17, frame18, 18, frame19, 19, frame20, 20, frame21, 21, frame22, 22, frame23, 24, frame25); sponsor = new URLRequest("http://www.gamegarage.co.uk"); so = SharedObject.getLocal("bouncev1.0f"); stage.quality = "high"; cm = new ContextMenu(); cm.hideBuiltInItems(); this.contextMenu = cm; stage.addEventListener(KeyboardEvent.KEY_DOWN, keyIsDown); if (so.size == 0){ so.data.currentLevel = 0; so.data.hasPlayed = false; so.data.levels = new Array(new Array("09006809808g000bo08i30bo07u4006r07u4006r08k30e608i0004908i00", "Simple Bounce", "Easy", false, 0), new Array("0gp0am0gt0bp000fb0cn400i50cn400ea0dp000j50dr000di0er000k30er000cg0fz400l70fz400b20h7000mk0h900", "Pyramid", "Easy", false, 0), new Array("0hr0ls0hv0n2000k70n2100ff0n2100ht0ka010ms0k8100cu0ka100hr0hg100ms0hg010cu0hf010hr0e3000k30e1100ff0e1100hp0a4010hn07q410hl04v01", "The climb", "Easy", false, 0), new Array("03f07e03j08u0005x0a41008a0a4400aq0a4400d40a4400fj0a4400hz0a4400kd0a4400mq0a4400p40a4400ri0a4400tv0a4400w508u000yh0a600", "Leap Of Faith", "Easy", false, 0), new Array("0hn0je0hp0n4000hn0ky100m00kw30du0ky30fp0h1400jj0h1400iv0fn400fp0fp400h50ej00", "Gappy", "Easy", false, 0), new Array("03f06a03b07g0008407g000cy07g000hx07g000my07g000ro07g000w508y30pi0a0000kl0a2000ff0a2000ak0a00005r09y000370c330860df000d00df000hz0dh000mw0dl000qy0fl30n20hf010fh0hf010880hf010570jw30920lk000cg0m620m80fh0lk000jb0mc20m80ng0lo00", "Platforms", "Hard", false, 0), new Array("0gz0l60h10mg000jf0me100h10jm100gz0gp400it0f1400f90f1400gz0d7400f50bp400it0br400gz0aa100fh06s30i906s30ff066400ib066400gx057000l506k000co06i000gz08g41", "Spikey Climb", "Moderate", false, 0), new Array("0610d705x0fx0009o0fr20b40cy0fx000g70fp20b40jf0fx000mu0fr20b40q00hy000sq0fj100py0b4000mu0b420b40jh0ay000gj0ay100d40ao20b409k0aw1007m05530b2055307506u20b40bs06u20b409a03t00", "Dodgem", "Hard", false, 0), new Array("0g30is0g50k2000ir0ky000lb0m2000o80mu000r60ms100r20jk30u50l0100u70hm010sg0et30vj0ev30se0e5400vl0e7400tx0cr100tz076010rg086000os08w400m6086000jd08w400gf084000dm08y400au0820008608w4005l07q0003b09s4103b0b8305r0cn0103b0dz305r0fd0103b0gv305p0ia01", "Traveller", "Hard", false, 0), new Array("09006809607e100c206g306506i30ex05l1003705n10", "Frightfully Round", "Insane", false, 0)); }; currentLevel = so.data.currentLevel; levels = so.data.levels; hasPlayed = so.data.hasPlayed; so.flush(); } public function startSoundLoop(){ } public function keyIsDown(_arg1:KeyboardEvent){ if (_arg1.keyCode == 81){ if (stage.quality == "HIGH"){ stage.quality = "LOW"; trace(stage.quality); } else { if (stage.quality == "LOW"){ stage.quality = "MEDIUM"; } else { if (stage.quality == "MEDIUM"){ stage.quality = "HIGH"; }; }; }; }; if (_arg1.keyCode == 77){ }; } public function startTimerGo(){ time.start(); time.addEventListener(TimerEvent.TIMER, go); } function frame15(){ bg = new Background(100, 650, 450); bg.setVY(2); bg.setVX(5); addChild(bg); playmore.buttonMode = true; playmore.addEventListener(MouseEvent.CLICK, mouseIsDown); sponsorlogo.buttonMode = true; sponsorlogo.addEventListener(MouseEvent.CLICK, mouseIsDown); playGame.buttonMode = true; playGame.addEventListener(MouseEvent.CLICK, mouseIsDown); creditsButton.buttonMode = true; creditsButton.addEventListener(MouseEvent.CLICK, mouseIsDown); lvleditorButton.buttonMode = true; lvleditorButton.addEventListener(MouseEvent.CLICK, mouseIsDown); instructionsButton.buttonMode = true; instructionsButton.addEventListener(MouseEvent.CLICK, mouseIsDown); this.setChildIndex(lvleditorButton, (getChildIndex(lvleditorButton) + 1)); moveToTop(); } function frame16(){ stop(); levelSelected = so.data.currentLevel; map = new Map(so.data.levels[levelSelected][0]); names = new Array(); backButton.addEventListener(MouseEvent.CLICK, mouseClickered); backButton.buttonMode = true; map.x = 258; map.y = 100; map.scaleX = (305 / 1295); map.scaleY = (205 / 896); addChild(map); map.isDisplay = true; map.addEventListener(MouseEvent.MOUSE_OVER, mouseOver); levelName.text = (("\"" + so.data.levels[currentLevel][1]) + "\""); difficulty.text = (("Difficulty: " + so.data.levels[currentLevel][2]) + "."); bestTime.text = (("Best score: " + so.data.levels[currentLevel][4]) + "."); trace(bestTime.text); i = 0; while (i < so.data.levels.length) { if (i <= currentLevel){ m = new BasicBackground(); m.id = i; m.x = 120; m.y = ((25 * i) + 100); if (i <= so.data.currentLevel){ m.buttonMode = true; m.addEventListener(MouseEvent.MOUSE_OVER, mouseOver); m.addEventListener(MouseEvent.CLICK, mouseClickered); }; addChild(m); names.push(m); color = 0xFFFFFF; f = new TextFormat("Helvetica", 15, color); tf = new TextField(); tf.type = "dynamic"; tf.text = ("Level " + (i + 1)); tf.selectable = false; tf.setTextFormat(f); tf.width = 60; tf.height = 20; tf.x = -25; tf.y = -10; m.addChild(tf); }; i++; }; custom = new BasicBackground(); custom.x = 120; custom.y = ((20 * 10) + 170); custom.buttonMode = true; custom.addEventListener(MouseEvent.CLICK, mouseClickered); addChild(custom); f2 = new TextFormat("Helvetica", 15, 0xFFFFFF); tf2 = new TextField(); tf2.text = "Custom"; tf2.width = 120; tf2.height = 20; tf2.setTextFormat(f2); tf2.x = -25; tf2.y = -10; tf2.selectable = false; custom.addChild(tf2); moveToTop(); } function frame18(){ bg.dispose(); trace(bg); removeChild(bg); lvl = new Game(levels[levelSelected][0]); lvl.p = this; addChild(lvl); stage.addEventListener(KeyboardEvent.KEY_DOWN, lvl.keyIsDown); stage.addEventListener(KeyboardEvent.KEY_UP, lvl.keyIsUp); stage.addEventListener(KeyboardEvent.KEY_DOWN, lvl.keyP); stage.addEventListener(KeyboardEvent.KEY_DOWN, lvl.keyIsDown); stage.addEventListener(KeyboardEvent.KEY_DOWN, keySpace); stage.focus = stage; lvldisplay.text = ("Level " + (levelSelected + 1)); moveToTop(); } function frame17(){ backButton.addEventListener(MouseEvent.CLICK, mouseClicked); backButton.buttonMode = true; } function frame20(){ bg = new Background(100, 650, 450); bg.setVY(2); bg.setVX(2); addChild(bg); stage.removeEventListener(KeyboardEvent.KEY_DOWN, lvl.keyIsDown); stage.removeEventListener(KeyboardEvent.KEY_UP, lvl.keyIsUp); stage.removeEventListener(KeyboardEvent.KEY_DOWN, lvl.keyP); stage.removeEventListener(KeyboardEvent.KEY_DOWN, lvl.keyIsDown); stage.removeEventListener(KeyboardEvent.KEY_DOWN, keySpace); menuButton.buttonMode = true; menuButton.addEventListener(MouseEvent.CLICK, mouseClick); nextlevelButton.buttonMode = true; nextlevelButton.addEventListener(MouseEvent.CLICK, mouseClick); score = Math.ceil((((100000 - (lvl.counter * 1000)) / (lvl.resets + 1)) + (Math.random() * 1000))); if (score < 0){ score = 0; }; if (score >= so.data.levels[levelSelected][4]){ so.data.levels[levelSelected][4] = score; levels = so.data.levels; }; if ((((levelSelected == currentLevel)) && ((levelSelected < (levels.length - 1))))){ currentLevel++; so.data.currentLevel = currentLevel; }; so.flush(); congratsDisplay.text = (((((("You Completed \"" + so.data.levels[levelSelected][1]) + "\"(Level ") + (levelSelected + 1)) + "). \n\nYou got a score of ") + score) + ". Your score is based on how long the level took you, and how many retries you had."); removeChild(lvl); } public function mouseClickered(_arg1:MouseEvent){ var _local2:*; var _local3:*; var _local4:*; map.dispose(); removeChild(map); if (((((((!((_arg1.currentTarget == map))) && ((_arg1.currentTarget.id <= currentLevel)))) && (!((_arg1.currentTarget == backButton))))) && (!((_arg1.currentTarget == custom))))){ _local2 = 0; while (_local2 < names.length) { removeChild(names[_local2]); _local2++; }; names = new Array(); levelSelected = _arg1.currentTarget.id; removeChild(custom); transit(18); }; if (_arg1.currentTarget == custom){ _local3 = 0; while (_local3 < names.length) { removeChild(names[_local3]); _local3++; }; names = new Array(); removeChild(custom); transit(21); }; if (_arg1.currentTarget == backButton){ _local4 = 0; while (_local4 < names.length) { removeChild(names[_local4]); _local4++; }; names = new Array(); removeChild(custom); bg.dispose(); removeChild(bg); gotoAndStop(15); }; } function frame25(){ backButton.addEventListener(MouseEvent.CLICK, gotostart); backButton.buttonMode = true; } public function stopSoundLoop(){ } function frame3(){ gotoAndStop("main"); } function frame19(){ levelEditor = new LevelEditor(); addChild(levelEditor); stage.addEventListener(MouseEvent.MOUSE_DOWN, levelEditor.mouseClickedOnThis); stage.addEventListener(KeyboardEvent.KEY_DOWN, levelEditor.keyIsDown); stage.addEventListener(KeyboardEvent.KEY_UP, levelEditor.keyIsUp); menuButton.addEventListener(MouseEvent.MOUSE_DOWN, gotoStart); menuButton.buttonMode = true; } function frame21(){ menuButton.buttonMode = true; menuButton.addEventListener(MouseEvent.CLICK, mC); playgameButton.buttonMode = true; playgameButton.addEventListener(MouseEvent.CLICK, mC); } function frame22(){ bg.dispose(); removeChild(bg); levelSelected = 0; cLvl = null; cLvl = new Game(customCode); cLvl.p = this; cLvl.custom = true; addChild(cLvl); stage.addEventListener(KeyboardEvent.KEY_DOWN, cLvl.keyIsDown); stage.addEventListener(KeyboardEvent.KEY_UP, cLvl.keyIsUp); stage.addEventListener(KeyboardEvent.KEY_DOWN, cLvl.keyP); stage.addEventListener(KeyboardEvent.KEY_DOWN, cLvl.keyIsDown); stage.addEventListener(KeyboardEvent.KEY_DOWN, keySpace2); stage.focus = stage; moveToTop(); } function frame23(){ bg = new Background(100, 650, 450); bg.setVY(2); bg.setVX(2); addChild(bg); stage.removeEventListener(KeyboardEvent.KEY_DOWN, cLvl.keyIsDown); stage.removeEventListener(KeyboardEvent.KEY_UP, cLvl.keyIsUp); stage.removeEventListener(KeyboardEvent.KEY_DOWN, cLvl.keyP); stage.removeEventListener(KeyboardEvent.KEY_DOWN, cLvl.keyIsDown); menuButton.buttonMode = true; menuButton.addEventListener(MouseEvent.CLICK, mouseClicks); replayButton.buttonMode = true; replayButton.addEventListener(MouseEvent.CLICK, mouseClicks); scorez = Math.ceil(((10000 - (cLvl.counter * 100)) / (cLvl.resets + 1))); congratsDisplay.text = (("You have completed this level with a score of " + scorez) + ". Do you think your friends stand a chance of beating this score? Challenge them and find out!"); levelCodeDisplay.text = customCode; removeChild(cLvl); } function frame2(){ percent.text = (Math.round(((framesLoaded / totalFrames) * 100)) + "%"); logo.addEventListener(MouseEvent.CLICK, gotoLogo); if (framesLoaded == totalFrames){ gotoAndStop("intro"); } else { gotoAndPlay("loading"); }; } public function tracking(){ var _local1:URLRequest; var _local2:URLVariables; var _local3:URLLoader; _local1 = new URLRequest("http://www.gamegarage.co.uk/scripts/tracking.php"); _local1.method = URLRequestMethod.POST; _local2 = new URLVariables(); _local2.game_id = LoaderInfo(this.root.loaderInfo).parameters["game_id"]; _local2.user_id = LoaderInfo(this.root.loaderInfo).parameters["user_id"]; _local1.data = _local2; _local3 = new URLLoader(_local1); _local3.dataFormat = URLLoaderDataFormat.VARIABLES; _local3.load(_local1); } public function gotoStart(_arg1:MouseEvent){ removeChild(levelEditor); if (_arg1.currentTarget == menuButton){ gotoAndStop(15); }; } public function scoring(_arg1){ var _local2:URLRequest; var _local3:URLVariables; var _local4:URLLoader; _local2 = new URLRequest("http://www.gamegarage.co.uk/scripts/score.php"); _local2.method = URLRequestMethod.POST; _local3 = new URLVariables(); _local3.game_id = LoaderInfo(this.root.loaderInfo).parameters["game_id"]; _local3.user_id = LoaderInfo(this.root.loaderInfo).parameters["user_id"]; _local3.score = _arg1; _local3.alg = (((_local3.game_id + _local3.user_id) + _arg1) + "a83l9xj"); _local2.data = _local3; _local4 = new URLLoader(_local2); _local4.dataFormat = URLLoaderDataFormat.VARIABLES; _local4.load(_local2); } public function gotostart(_arg1:MouseEvent){ gotoAndStop(15); } public function go(_arg1:TimerEvent){ time.removeEventListener(TimerEvent.TIMER, go); transit(17); } public function mouseClicks(_arg1:MouseEvent){ if (_arg1.currentTarget == menuButton){ gotoAndStop(16); } else { if (_arg1.currentTarget == replayButton){ transit(22); }; }; } public function removeTransition(){ if (tExists){ removeChild(t); tExists = false; }; } public function mouseOver(_arg1:MouseEvent){ if (((((((!((_arg1.currentTarget == map))) && ((_arg1.currentTarget.id <= currentLevel)))) && (!((_arg1.currentTarget == backButton))))) && (!((_arg1.currentTarget == custom))))){ map.dispose(); map.drawLevel(levels[_arg1.currentTarget.id][0]); levelName.text = (("\"" + levels[_arg1.currentTarget.id][1]) + "\""); difficulty.text = (("Difficulty: " + levels[_arg1.currentTarget.id][2]) + "."); bestTime.text = (("Best score: " + levels[_arg1.currentTarget.id][4]) + "."); }; } public function keySpace2(_arg1:KeyboardEvent){ if (_arg1.keyCode == Keyboard.SPACE){ stage.removeEventListener(KeyboardEvent.KEY_DOWN, cLvl.keyIsDown); stage.removeEventListener(KeyboardEvent.KEY_UP, cLvl.keyIsUp); stage.removeEventListener(KeyboardEvent.KEY_DOWN, cLvl.keyP); stage.removeEventListener(KeyboardEvent.KEY_DOWN, cLvl.keyIsDown); stage.removeEventListener(KeyboardEvent.KEY_DOWN, keySpace2); cLvl.dispose(); removeChild(cLvl); gotoAndStop(15); }; } public function mC(_arg1:MouseEvent){ var _local2:*; error.text = ""; if (_arg1.currentTarget == menuButton){ menuButton.removeEventListener(MouseEvent.CLICK, mC); gotoAndStop(15); } else { if (_arg1.currentTarget == playgameButton){ _local2 = (customCodeDisplay.text.length >= 6); trace(_local2); if (!_local2){ error.appendText("Invalid length."); }; i = 0; while (i < customCodeDisplay.text.length) { if (customCodeDisplay.text.charAt(i) == "!"){ _local2 = false; }; i++; }; if (_local2){ playgameButton.removeEventListener(MouseEvent.CLICK, mC); customCode = customCodeDisplay.text; gotoAndStop(22); }; }; }; } public function moveToTop(){ if (tExists){ this.setChildIndex(t, (this.numChildren - 1)); }; } public function gotoLogo(_arg1:MouseEvent){ navigateToURL(new URLRequest("http://www.gamegarage.co.uk"), "_blank"); } public function disposeOnFrame(){ var _local1:*; _local1 = (numChildren - 1); while (_local1 >= 0) { if (getChildAt(_local1) != bg){ this.removeChildAt(_local1); }; _local1--; }; } public function mouseClicked(_arg1:MouseEvent){ if (_arg1.currentTarget == backButton){ gotoAndStop(15); backButton.removeEventListener(MouseEvent.CLICK, mouseClicked); }; } public function transit(_arg1:int){ t = new Transition(_arg1); t.x = 325; t.y = 225; tExists = true; addChild(t); } public function mouseClick(_arg1:MouseEvent){ if (_arg1.currentTarget == menuButton){ gotoAndStop(16); } else { if (_arg1.currentTarget == nextlevelButton){ levelSelected++; gotoAndStop(18); }; }; } public function keySpace(_arg1:KeyboardEvent){ if (_arg1.keyCode == Keyboard.SPACE){ stage.removeEventListener(KeyboardEvent.KEY_DOWN, lvl.keyIsDown); stage.removeEventListener(KeyboardEvent.KEY_UP, lvl.keyIsUp); stage.removeEventListener(KeyboardEvent.KEY_DOWN, lvl.keyP); stage.removeEventListener(KeyboardEvent.KEY_DOWN, lvl.keyIsDown); stage.removeEventListener(KeyboardEvent.KEY_DOWN, keySpace); lvl.dispose(); removeChild(lvl); gotoAndStop(15); }; } public function mouseIsDown(_arg1:MouseEvent){ if (_arg1.currentTarget == playGame){ disposeOnFrame(); if (so.data.hasPlayed){ transit(16); } else { so.data.hasPlayed = true; currentLevel = 0; transit(18); }; } else { if (_arg1.currentTarget == creditsButton){ disposeOnFrame(); transit(17); } else { if (_arg1.currentTarget == lvleditorButton){ disposeOnFrame(); transit(19); } else { if (_arg1.currentTarget == instructionsButton){ disposeOnFrame(); transit(25); } else { if (_arg1.currentTarget == playmore){ navigateToURL(sponsor, "_blank"); } else { if (_arg1.currentTarget == sponsorlogo){ navigateToURL(sponsor, "_blank"); }; }; }; }; }; }; } } }//package
Section 61
//Particle (Particle) package { import flash.display.*; import flash.events.*; public class Particle extends MovieClip { private var myColor; private var rgbValue; private var vx; private var vy; private var vr; public function Particle(_arg1, _arg2){ var _local3:*; super(); x = _arg1; y = _arg2; addEventListener(Event.ENTER_FRAME, manageMovement); _local3 = (((Math.random() * 180) * Math.PI) / 180); vx = Math.cos(_local3); vy = Math.sin(_local3); vr = ((Math.random() * 10) - 5); width = ((Math.random() * 10) + 5); height = width; } public function manageMovement(_arg1:Event){ x = (x + vx); y = (y + vy); vy = (vy + 0.25); alpha = (alpha - 0.05); rotation = (rotation + vr); if (alpha <= 0){ dispose(); }; } public function dispose(){ removeEventListener(Event.ENTER_FRAME, manageMovement); parent.removeChild(this); } } }//package
Section 62
//PausedWindow (PausedWindow) package { import flash.display.*; public dynamic class PausedWindow extends MovieClip { } }//package
Section 63
//PlainCursorButton (PlainCursorButton) package { import flash.display.*; public dynamic class PlainCursorButton extends MovieClip { } }//package
Section 64
//SaveButton (SaveButton) package { import flash.display.*; public dynamic class SaveButton extends SimpleButton { } }//package
Section 65
//ScrollArrowDown_disabledSkin (ScrollArrowDown_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_disabledSkin extends MovieClip { } }//package
Section 66
//ScrollArrowDown_downSkin (ScrollArrowDown_downSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_downSkin extends MovieClip { } }//package
Section 67
//ScrollArrowDown_overSkin (ScrollArrowDown_overSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_overSkin extends MovieClip { } }//package
Section 68
//ScrollArrowDown_upSkin (ScrollArrowDown_upSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_upSkin extends MovieClip { } }//package
Section 69
//ScrollArrowUp_disabledSkin (ScrollArrowUp_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_disabledSkin extends MovieClip { } }//package
Section 70
//ScrollArrowUp_downSkin (ScrollArrowUp_downSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_downSkin extends MovieClip { } }//package
Section 71
//ScrollArrowUp_overSkin (ScrollArrowUp_overSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_overSkin extends MovieClip { } }//package
Section 72
//ScrollArrowUp_upSkin (ScrollArrowUp_upSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_upSkin extends MovieClip { } }//package
Section 73
//ScrollBar_thumbIcon (ScrollBar_thumbIcon) package { import flash.display.*; public dynamic class ScrollBar_thumbIcon extends MovieClip { } }//package
Section 74
//ScrollThumb_downSkin (ScrollThumb_downSkin) package { import flash.display.*; public dynamic class ScrollThumb_downSkin extends MovieClip { } }//package
Section 75
//ScrollThumb_overSkin (ScrollThumb_overSkin) package { import flash.display.*; public dynamic class ScrollThumb_overSkin extends MovieClip { } }//package
Section 76
//ScrollThumb_upSkin (ScrollThumb_upSkin) package { import flash.display.*; public dynamic class ScrollThumb_upSkin extends MovieClip { } }//package
Section 77
//ScrollTrack_skin (ScrollTrack_skin) package { import flash.display.*; public dynamic class ScrollTrack_skin extends MovieClip { } }//package
Section 78
//soundLoop (soundLoop) package { import flash.media.*; public class soundLoop extends Sound { public function soundLoop(){ trace(length); } } }//package
Section 79
//Transition (Transition) package { import flash.display.*; public class Transition extends MovieClip { public var f:int; public function Transition(_arg1:int){ addFrameScript(29, frame30, 30, frame31, 69, frame70); f = _arg1; } function frame70(){ stop(); MovieClip(parent).removeTransition(); } function frame30(){ MovieClip(parent).gotoAndStop(this.f); MovieClip(parent).moveToTop(); } function frame31(){ MovieClip(parent).moveToTop(); } } }//package

Library Items

Symbol 1 GraphicUsed by:2
Symbol 2 MovieClipUses:1Used by:54 72
Symbol 3 MovieClip {fl.core.ComponentShim}Used by:22 53 54 72
Symbol 4 GraphicUsed by:5
Symbol 5 MovieClip {List_skin}Uses:4Used by:54
Symbol 6 GraphicUsed by:7
Symbol 7 MovieClip {CellRenderer_upSkin}Uses:6Used by:22
Symbol 8 GraphicUsed by:9
Symbol 9 MovieClip {CellRenderer_disabledSkin}Uses:8Used by:22
Symbol 10 GraphicUsed by:11
Symbol 11 MovieClip {CellRenderer_downSkin}Uses:10Used by:22
Symbol 12 GraphicUsed by:13
Symbol 13 MovieClip {CellRenderer_overSkin}Uses:12Used by:22
Symbol 14 GraphicUsed by:15
Symbol 15 MovieClip {CellRenderer_selectedDisabledSkin}Uses:14Used by:22
Symbol 16 GraphicUsed by:17
Symbol 17 MovieClip {CellRenderer_selectedDownSkin}Uses:16Used by:22
Symbol 18 GraphicUsed by:19
Symbol 19 MovieClip {CellRenderer_selectedOverSkin}Uses:18Used by:22
Symbol 20 GraphicUsed by:21
Symbol 21 MovieClip {CellRenderer_selectedUpSkin}Uses:20Used by:22
Symbol 22 MovieClip {fl.controls.listClasses.CellRenderer}Uses:7 3 9 11 13 15 17 19 21Used by:54
Symbol 23 GraphicUsed by:24
Symbol 24 MovieClip {focusRectSkin}Uses:23Used by:53 54 72
Symbol 25 GraphicUsed by:26
Symbol 26 MovieClip {ScrollTrack_skin}Uses:25Used by:53 72
Symbol 27 GraphicUsed by:30
Symbol 28 GraphicUsed by:29 32 36 46
Symbol 29 MovieClipUses:28Used by:30 40 42
Symbol 30 MovieClip {ScrollArrowUp_downSkin}Uses:27 29Used by:53 72
Symbol 31 GraphicUsed by:32
Symbol 32 MovieClip {ScrollArrowDown_downSkin}Uses:31 28Used by:53 72
Symbol 33 GraphicUsed by:34
Symbol 34 MovieClip {ScrollThumb_downSkin}Uses:33Used by:53 72
Symbol 35 GraphicUsed by:36
Symbol 36 MovieClip {ScrollArrowDown_overSkin}Uses:35 28Used by:53 72
Symbol 37 GraphicUsed by:38
Symbol 38 MovieClip {ScrollThumb_overSkin}Uses:37Used by:53 72
Symbol 39 GraphicUsed by:40
Symbol 40 MovieClip {ScrollArrowUp_overSkin}Uses:39 29Used by:53 72
Symbol 41 GraphicUsed by:42
Symbol 42 MovieClip {ScrollArrowUp_upSkin}Uses:41 29Used by:53 72
Symbol 43 GraphicUsed by:44
Symbol 44 MovieClip {ScrollThumb_upSkin}Uses:43Used by:53 72
Symbol 45 GraphicUsed by:46
Symbol 46 MovieClip {ScrollArrowDown_upSkin}Uses:45 28Used by:53 72
Symbol 47 GraphicUsed by:48
Symbol 48 MovieClip {ScrollArrowDown_disabledSkin}Uses:47Used by:53 72
Symbol 49 GraphicUsed by:50
Symbol 50 MovieClip {ScrollArrowUp_disabledSkin}Uses:49Used by:53 72
Symbol 51 GraphicUsed by:52
Symbol 52 MovieClip {ScrollBar_thumbIcon}Uses:51Used by:53 72
Symbol 53 MovieClip {fl.controls.ScrollBar}Uses:26 3 24 30 32 34 36 38 40 42 44 46 48 50 52Used by:54
Symbol 54 MovieClip {fl.controls.List}Uses:2 3 5 22 24 53
Symbol 55 GraphicUsed by:56
Symbol 56 MovieClipUses:55
Symbol 57 BitmapUsed by:58
Symbol 58 GraphicUses:57Used by:61  Timeline
Symbol 59 BitmapUsed by:60
Symbol 60 GraphicUses:59Used by:61  Timeline
Symbol 61 MovieClipUses:58 60
Symbol 62 GraphicUsed by:65
Symbol 63 FontUsed by:64 158
Symbol 64 TextUses:63Used by:65
Symbol 65 ButtonUses:62 64
Symbol 66 BitmapUsed by:67
Symbol 67 GraphicUses:66Used by:68  Timeline
Symbol 68 MovieClipUses:67
Symbol 69 BitmapUsed by:70 181
Symbol 70 GraphicUses:69Used by:71
Symbol 71 MovieClipUses:70
Symbol 72 MovieClip {fl.controls.UIScrollBar}Uses:2 3 24 26 30 32 34 36 38 40 42 44 46 48 50 52Used by:85
Symbol 73 GraphicUsed by:85
Symbol 74 GraphicUsed by:77
Symbol 75 GraphicUsed by:77
Symbol 76 GraphicUsed by:77
Symbol 77 ButtonUses:74 75 76Used by:85
Symbol 78 GraphicUsed by:79
Symbol 79 ButtonUses:78Used by:85
Symbol 80 GraphicUsed by:85
Symbol 81 FontUsed by:82 98 99 127 128 130 132 134 137 142 143 144 145 148 149 150 171 172 174
Symbol 82 EditableTextUses:81Used by:85
Symbol 83 FontUsed by:84 97 119 120 147 151 157 162 163 164 165 166 167 175 176 177 178 179 180 182 183 184
Symbol 84 EditableTextUses:83Used by:85
Symbol 85 MovieClipUses:73 77 79 80 82 84 72
Symbol 86 GraphicUsed by:87
Symbol 87 MovieClipUses:86
Symbol 88 BitmapUsed by:89
Symbol 89 GraphicUses:88Used by:90  Timeline
Symbol 90 MovieClipUses:89
Symbol 91 GraphicUsed by:92
Symbol 92 MovieClip {PlainCursorButton}Uses:91
Symbol 93 GraphicUsed by:95
Symbol 94 GraphicUsed by:95
Symbol 95 Button {DeleteButton}Uses:93 94
Symbol 96 GraphicUsed by:100
Symbol 97 TextUses:83Used by:100
Symbol 98 TextUses:81Used by:100
Symbol 99 TextUses:81Used by:100
Symbol 100 MovieClipUses:96 97 98 99
Symbol 101 GraphicUsed by:102
Symbol 102 MovieClip {LoaderMask}Uses:101
Symbol 103 GraphicUsed by:104
Symbol 104 MovieClip {LoaderBar}Uses:103
Symbol 105 GraphicUsed by:106  Timeline
Symbol 106 MovieClipUses:105Used by:107
Symbol 107 MovieClipUses:106
Symbol 108 GraphicUsed by:109
Symbol 109 MovieClipUses:108
Symbol 110 BitmapUsed by:111 181
Symbol 111 GraphicUses:110Used by:112
Symbol 112 MovieClipUses:111
Symbol 113 GraphicUsed by:114
Symbol 114 MovieClipUses:113
Symbol 115 GraphicUsed by:116
Symbol 116 MovieClipUses:115
Symbol 117 GraphicUsed by:118
Symbol 118 MovieClipUses:117Used by:129 131 133 135 146
Symbol 119 TextUses:83Used by:Timeline
Symbol 120 EditableTextUses:83Used by:Timeline
Symbol 121 GraphicUsed by:122
Symbol 122 MovieClipUses:121Used by:Timeline
Symbol 123 BitmapUsed by:124
Symbol 124 GraphicUses:123Used by:Timeline
Symbol 125 Sound {soundLoop}Used by:Timeline
Symbol 126 GraphicUsed by:Timeline
Symbol 127 TextUses:81Used by:Timeline
Symbol 128 TextUses:81Used by:129
Symbol 129 MovieClipUses:118 128Used by:Timeline
Symbol 130 TextUses:81Used by:131
Symbol 131 MovieClipUses:118 130Used by:Timeline
Symbol 132 TextUses:81Used by:133
Symbol 133 MovieClipUses:118 132Used by:Timeline
Symbol 134 TextUses:81Used by:135
Symbol 135 MovieClipUses:118 134Used by:Timeline
Symbol 136 GraphicUsed by:138
Symbol 137 TextUses:81Used by:138
Symbol 138 MovieClipUses:136 137Used by:Timeline
Symbol 139 GraphicUsed by:140
Symbol 140 MovieClipUses:139Used by:Timeline
Symbol 141 GraphicUsed by:Timeline
Symbol 142 EditableTextUses:81Used by:Timeline
Symbol 143 EditableTextUses:81Used by:Timeline
Symbol 144 EditableTextUses:81Used by:Timeline
Symbol 145 TextUses:81Used by:146
Symbol 146 MovieClipUses:118 145Used by:Timeline
Symbol 147 TextUses:83Used by:Timeline
Symbol 148 TextUses:81Used by:Timeline
Symbol 149 EditableTextUses:81Used by:Timeline
Symbol 150 EditableTextUses:81Used by:Timeline
Symbol 151 EditableTextUses:83Used by:Timeline
Symbol 152 GraphicUsed by:Timeline
Symbol 153 GraphicUsed by:156
Symbol 154 FontUsed by:155 160 169
Symbol 155 TextUses:154Used by:156
Symbol 156 MovieClipUses:153 155Used by:Timeline
Symbol 157 TextUses:83Used by:Timeline
Symbol 158 EditableTextUses:63Used by:Timeline
Symbol 159 GraphicUsed by:161
Symbol 160 TextUses:154Used by:161
Symbol 161 MovieClipUses:159 160Used by:Timeline
Symbol 162 TextUses:83Used by:Timeline
Symbol 163 EditableTextUses:83Used by:Timeline
Symbol 164 EditableTextUses:83Used by:Timeline
Symbol 165 EditableTextUses:83Used by:Timeline
Symbol 166 TextUses:83Used by:Timeline
Symbol 167 EditableTextUses:83Used by:Timeline
Symbol 168 GraphicUsed by:170
Symbol 169 TextUses:154Used by:170
Symbol 170 MovieClipUses:168 169Used by:Timeline
Symbol 171 TextUses:81Used by:Timeline
Symbol 172 TextUses:81Used by:Timeline
Symbol 173 GraphicUsed by:Timeline
Symbol 174 TextUses:81Used by:Timeline
Symbol 175 TextUses:83Used by:Timeline
Symbol 176 TextUses:83Used by:Timeline
Symbol 177 TextUses:83Used by:Timeline
Symbol 178 TextUses:83Used by:Timeline
Symbol 179 TextUses:83Used by:Timeline
Symbol 180 TextUses:83Used by:Timeline
Symbol 181 GraphicUses:69 110Used by:Timeline
Symbol 182 TextUses:83Used by:Timeline
Symbol 183 TextUses:83Used by:Timeline
Symbol 184 EditableTextUses:83Used by:Timeline

Instance Names

"percent"Frame 1Symbol 120 EditableText
"logo"Frame 1Symbol 122 MovieClip
"creditsButton"Frame 15Symbol 129 MovieClip
"lvleditorButton"Frame 15Symbol 131 MovieClip
"playGame"Frame 15Symbol 133 MovieClip
"instructionsButton"Frame 15Symbol 135 MovieClip
"playmore"Frame 15Symbol 138 MovieClip
"sponsorlogo"Frame 15Symbol 140 MovieClip
"levelName"Frame 16Symbol 142 EditableText
"difficulty"Frame 16Symbol 143 EditableText
"bestTime"Frame 16Symbol 144 EditableText
"backButton"Frame 16Symbol 146 MovieClip
"backButton"Frame 17Symbol 146 MovieClip
"lvldisplay"Frame 18Symbol 151 EditableText
"menuButton"Frame 19Symbol 156 MovieClip
"congratsDisplay"Frame 20Symbol 158 EditableText
"nextlevelButton"Frame 20Symbol 161 MovieClip
"menuButton"Frame 21Symbol 156 MovieClip
"playgameButton"Frame 21Symbol 133 MovieClip
"customCodeDisplay"Frame 21Symbol 163 EditableText
"error"Frame 21Symbol 164 EditableText
"congratsDisplay"Frame 23Symbol 165 EditableText
"menuButton"Frame 23Symbol 156 MovieClip
"levelCodeDisplay"Frame 23Symbol 167 EditableText
"replayButton"Frame 23Symbol 170 MovieClip
"backButton"Frame 25Symbol 146 MovieClip
"close"Symbol 85 MovieClip Frame 1Symbol 77 Button
"dragger"Symbol 85 MovieClip Frame 1Symbol 79 Button
"titleText"Symbol 85 MovieClip Frame 1Symbol 82 EditableText
"displayText"Symbol 85 MovieClip Frame 1Symbol 84 EditableText
"__id0_"Symbol 85 MovieClip Frame 1Symbol 72 MovieClip {fl.controls.UIScrollBar}

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.

Labels

"loading"Frame 1
"intro"Frame 3
"main"Frame 15
"levelselection"Frame 16
"credits"Frame 17
"game"Frame 18
"leveleditor"Frame 19




http://swfchan.com/7/30277/info.shtml
Created: 19/5 -2019 11:39:22 Last modified: 19/5 -2019 11:39:22 Server time: 11/05 -2024 20:05:48