Section 1
//BaseScrollPane (fl.containers.BaseScrollPane)
package fl.containers {
import fl.core.*;
import fl.controls.*;
import flash.display.*;
import flash.events.*;
import fl.events.*;
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 2
//DataGridCellEditor (fl.controls.dataGridClasses.DataGridCellEditor)
package fl.controls.dataGridClasses {
import fl.controls.listClasses.*;
import fl.controls.*;
public class DataGridCellEditor extends TextInput implements ICellRenderer {
protected var _data:Object;
protected var _listData:ListData;
private static var defaultStyles:Object = {textPadding:1, textFormat:null, upSkin:"DataGridCellEditor_skin"};
public function DataGridCellEditor():void{
}
public function get selected():Boolean{
return (false);
}
public function set listData(_arg1:ListData):void{
_listData = _arg1;
text = _listData.label;
}
public function setMouseState(_arg1:String):void{
}
public function set selected(_arg1:Boolean):void{
}
public function set data(_arg1:Object):void{
_data = _arg1;
}
public function get listData():ListData{
return (_listData);
}
public function get data():Object{
return (_data);
}
public static function getStyleDefinition():Object{
return (defaultStyles);
}
}
}//package fl.controls.dataGridClasses
Section 3
//DataGridColumn (fl.controls.dataGridClasses.DataGridColumn)
package fl.controls.dataGridClasses {
import fl.core.*;
import fl.controls.*;
public class DataGridColumn {
private var _headerText:String;
public var editorDataField:String;// = "text"
private var forceImport:DataGridCellEditor;
private var _headerRenderer:Object;
public var sortOptions:uint;// = 0
private var _cellRenderer:Object;
private var _columnName:String;
public var resizable:Boolean;// = true
private var _sortCompareFunction:Function;
private var _visible:Boolean;// = true
public var sortDescending:Boolean;// = false
public var owner:DataGrid;
private var _imeMode:String;
private var _width:Number;// = 100
public var editable:Boolean;// = true
public var itemEditor:Object;// = "fl.controls.dataGridClasses.DataGridCellEditor"
public var explicitWidth:Number;
private var _minWidth:Number;// = 20
private var _labelFunction:Function;
public var sortable:Boolean;// = true
public var colNum:Number;
public var dataField:String;
public function DataGridColumn(_arg1:String=null){
_minWidth = 20;
_width = 100;
_visible = true;
sortable = true;
resizable = true;
editable = true;
itemEditor = "fl.controls.dataGridClasses.DataGridCellEditor";
editorDataField = "text";
sortDescending = false;
sortOptions = 0;
super();
if (_arg1){
dataField = _arg1;
headerText = _arg1;
};
}
public function set headerRenderer(_arg1:Object):void{
_headerRenderer = _arg1;
if (owner){
owner.invalidate(InvalidationType.DATA);
};
}
public function get imeMode():String{
return (_imeMode);
}
public function setWidth(_arg1:Number):void{
_width = _arg1;
}
public function set width(_arg1:Number):void{
var _local2:Boolean;
explicitWidth = _arg1;
if (owner != null){
_local2 = resizable;
resizable = false;
owner.resizeColumn(colNum, _arg1);
resizable = _local2;
} else {
_width = _arg1;
};
}
public function set cellRenderer(_arg1:Object):void{
_cellRenderer = _arg1;
if (owner){
owner.invalidate(InvalidationType.DATA);
};
}
public function get minWidth():Number{
return (_minWidth);
}
public function set imeMode(_arg1:String):void{
_imeMode = _arg1;
}
public function toString():String{
return ("[object DataGridColumn]");
}
public function get visible():Boolean{
return (_visible);
}
public function itemToLabel(_arg1:Object):String{
var data = _arg1;
if (!data){
return (" ");
};
if (labelFunction != null){
return (labelFunction(data));
};
if (owner.labelFunction != null){
return (owner.labelFunction(data, this));
};
if ((((typeof(data) == "object")) || ((typeof(data) == "xml")))){
try {
data = data[dataField];
} catch(e:Error) {
data = null;
};
};
if ((data is String)){
return (String(data));
};
try {
return (data.toString());
} catch(e:Error) {
};
return (" ");
}
public function set minWidth(_arg1:Number):void{
_minWidth = _arg1;
if (_width < _arg1){
_width = _arg1;
};
if (owner){
owner.invalidate(InvalidationType.SIZE);
};
}
public function set headerText(_arg1:String):void{
_headerText = _arg1;
if (owner){
owner.invalidate(InvalidationType.DATA);
};
}
public function set sortCompareFunction(_arg1:Function):void{
_sortCompareFunction = _arg1;
}
public function get width():Number{
return (_width);
}
public function get cellRenderer():Object{
return (_cellRenderer);
}
public function set labelFunction(_arg1:Function):void{
if (_labelFunction == _arg1){
return;
};
_labelFunction = _arg1;
if (owner){
owner.invalidate(InvalidationType.DATA);
};
}
public function get headerText():String{
return (((_headerText)!=null) ? _headerText : dataField);
}
public function get sortCompareFunction():Function{
return (_sortCompareFunction);
}
public function get headerRenderer():Object{
return (_headerRenderer);
}
public function get labelFunction():Function{
return (_labelFunction);
}
public function set visible(_arg1:Boolean):void{
if (_visible != _arg1){
_visible = _arg1;
if (owner){
owner.invalidate(InvalidationType.SIZE);
};
};
}
}
}//package fl.controls.dataGridClasses
Section 4
//HeaderRenderer (fl.controls.dataGridClasses.HeaderRenderer)
package fl.controls.dataGridClasses {
import fl.controls.*;
public class HeaderRenderer extends LabelButton {
public var _column:uint;
private static var defaultStyles:Object = {upSkin:"HeaderRenderer_upSkin", downSkin:"HeaderRenderer_downSkin", overSkin:"HeaderRenderer_overSkin", disabledSkin:"HeaderRenderer_disabledSkin", selectedDisabledSkin:"HeaderRenderer_selectedDisabledSkin", selectedUpSkin:"HeaderRenderer_selectedUpSkin", selectedDownSkin:"HeaderRenderer_selectedDownSkin", selectedOverSkin:"HeaderRenderer_selectedOverSkin", textFormat:null, disabledTextFormat:null, textPadding:5};
public function HeaderRenderer():void{
focusEnabled = false;
}
public function set column(_arg1:uint):void{
_column = _arg1;
}
public function get column():uint{
return (_column);
}
override protected function drawLayout():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local1 = Number(getStyleValue("textPadding"));
textField.height = (textField.textHeight + 4);
textField.visible = (label.length > 0);
_local2 = (textField.textWidth + 4);
_local3 = (textField.textHeight + 4);
_local4 = ((icon)==null) ? 0 : (icon.width + 4);
_local5 = Math.max(0, Math.min(_local2, ((width - (2 * _local1)) - _local4)));
if (icon != null){
icon.x = (((width - _local1) - icon.width) - 2);
icon.y = Math.round(((height - icon.height) / 2));
};
textField.width = _local5;
textField.x = _local1;
textField.y = Math.round(((height - textField.height) / 2));
background.width = width;
background.height = height;
}
public static function getStyleDefinition():Object{
return (defaultStyles);
}
}
}//package fl.controls.dataGridClasses
Section 5
//CellRenderer (fl.controls.listClasses.CellRenderer)
package fl.controls.listClasses {
import fl.controls.*;
import flash.events.*;
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 6
//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 7
//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 8
//BaseButton (fl.controls.BaseButton)
package fl.controls {
import fl.core.*;
import flash.display.*;
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 9
//Button (fl.controls.Button)
package fl.controls {
import fl.core.*;
import flash.display.*;
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 10
//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 11
//ComboBox (fl.controls.ComboBox)
package fl.controls {
import fl.controls.listClasses.*;
import fl.core.*;
import flash.display.*;
import flash.events.*;
import fl.data.*;
import fl.managers.*;
import fl.events.*;
import flash.text.*;
import flash.geom.*;
import flash.ui.*;
public class ComboBox extends UIComponent implements IFocusManagerComponent {
protected var _dropdownWidth:Number;
protected var highlightedCell:int;// = -1
protected var _prompt:String;
protected var isOpen:Boolean;// = false
protected var list:List;
protected var _rowCount:uint;// = 5
protected var currentIndex:int;
protected var isKeyDown:Boolean;// = false
protected var _labels:Array;
protected var background:BaseButton;
protected var inputField:TextInput;
protected var listOverIndex:uint;
protected var editableValue:String;
protected var _editable:Boolean;// = false
private var collectionItemImport:SimpleCollectionItem;
protected static const BACKGROUND_STYLES:Object = {overSkin:"overSkin", downSkin:"downSkin", upSkin:"upSkin", disabledSkin:"disabledSkin", repeatInterval:"repeatInterval"};
protected static const LIST_STYLES:Object = {upSkin:"comboListUpSkin", overSkin:"comboListOverSkin", downSkin:"comobListDownSkin", disabledSkin:"comboListDisabledSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval", textFormat:"textFormat", disabledAlpha:"disabledAlpha", skin:"listSkin"};
private static var defaultStyles:Object = {upSkin:"ComboBox_upSkin", downSkin:"ComboBox_downSkin", overSkin:"ComboBox_overSkin", disabledSkin:"ComboBox_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:3, buttonWidth:24, disabledAlpha:null, listSkin:null};
public static var createAccessibilityImplementation:Function;
public function ComboBox(){
_rowCount = 5;
_editable = false;
isOpen = false;
highlightedCell = -1;
isKeyDown = false;
super();
}
protected function drawList():void{
list.rowCount = Math.max(0, Math.min(_rowCount, list.dataProvider.length));
}
public function set imeMode(_arg1:String):void{
inputField.imeMode = _arg1;
}
public function get dropdown():List{
return (list);
}
public function get dropdownWidth():Number{
return (list.width);
}
public function sortItemsOn(_arg1:String, _arg2:Object=null){
return (list.sortItemsOn(_arg1, _arg2));
}
protected function onEnter(_arg1:ComponentEvent):void{
_arg1.stopPropagation();
}
public function removeItemAt(_arg1:uint):void{
list.removeItemAt(_arg1);
invalidate(InvalidationType.DATA);
}
public function open():void{
currentIndex = selectedIndex;
if (((isOpen) || ((length == 0)))){
return;
};
dispatchEvent(new Event(Event.OPEN));
isOpen = true;
addEventListener(Event.ENTER_FRAME, addCloseListener, false, 0, true);
positionList();
list.scrollToSelected();
stage.addChild(list);
}
public function get selectedItem():Object{
return (list.selectedItem);
}
public function set text(_arg1:String):void{
if (!editable){
return;
};
inputField.text = _arg1;
}
public function get labelField():String{
return (list.labelField);
}
override protected function keyDownHandler(_arg1:KeyboardEvent):void{
var _local2:int;
var _local3:uint;
var _local4:Number;
var _local5:int;
isKeyDown = true;
if (_arg1.ctrlKey){
switch (_arg1.keyCode){
case Keyboard.UP:
if (highlightedCell > -1){
selectedIndex = highlightedCell;
dispatchEvent(new Event(Event.CHANGE));
};
close();
break;
case Keyboard.DOWN:
open();
break;
};
return;
};
_arg1.stopPropagation();
_local2 = Math.max(((calculateAvailableHeight() / list.rowHeight) << 0), 1);
_local3 = selectedIndex;
_local4 = ((highlightedCell)==-1) ? selectedIndex : highlightedCell;
_local5 = -1;
switch (_arg1.keyCode){
case Keyboard.SPACE:
if (isOpen){
close();
} else {
open();
};
return;
case Keyboard.ESCAPE:
if (isOpen){
if (highlightedCell > -1){
selectedIndex = selectedIndex;
};
close();
};
return;
case Keyboard.UP:
_local5 = Math.max(0, (_local4 - 1));
break;
case Keyboard.DOWN:
_local5 = Math.min((length - 1), (_local4 + 1));
break;
case Keyboard.PAGE_UP:
_local5 = Math.max((_local4 - _local2), 0);
break;
case Keyboard.PAGE_DOWN:
_local5 = Math.min((_local4 + _local2), (length - 1));
break;
case Keyboard.HOME:
_local5 = 0;
break;
case Keyboard.END:
_local5 = (length - 1);
break;
case Keyboard.ENTER:
if (((_editable) && ((highlightedCell == -1)))){
editableValue = inputField.text;
selectedIndex = -1;
} else {
if (((isOpen) && ((highlightedCell > -1)))){
editableValue = null;
selectedIndex = highlightedCell;
dispatchEvent(new Event(Event.CHANGE));
};
};
dispatchEvent(new ComponentEvent(ComponentEvent.ENTER));
close();
return;
default:
if (editable){
break;
};
_local5 = list.getNextIndexAtLetter(String.fromCharCode(_arg1.keyCode), _local4);
break;
};
if (_local5 > -1){
if (isOpen){
highlightCell(_local5);
inputField.text = list.itemToLabel(getItemAt(_local5));
} else {
highlightCell();
selectedIndex = _local5;
dispatchEvent(new Event(Event.CHANGE));
};
};
}
public function set dropdownWidth(_arg1:Number):void{
_dropdownWidth = _arg1;
invalidate(InvalidationType.SIZE);
}
public function get editable():Boolean{
return (_editable);
}
override protected function focusInHandler(_arg1:FocusEvent):void{
super.focusInHandler(_arg1);
if (editable){
stage.focus = inputField.textField;
};
}
protected function onStageClick(_arg1:MouseEvent):void{
if (!isOpen){
return;
};
if (((!(contains((_arg1.target as DisplayObject)))) && (!(list.contains((_arg1.target as DisplayObject)))))){
if (highlightedCell != -1){
selectedIndex = highlightedCell;
dispatchEvent(new Event(Event.CHANGE));
};
close();
};
}
protected function handleDataChange(_arg1:DataChangeEvent):void{
invalidate(InvalidationType.DATA);
}
override protected function keyUpHandler(_arg1:KeyboardEvent):void{
isKeyDown = false;
}
protected function onListItemUp(_arg1:MouseEvent):void{
var _local2:*;
stage.removeEventListener(MouseEvent.MOUSE_UP, onListItemUp);
if (((!((_arg1.target is ICellRenderer))) || (!(list.contains((_arg1.target as DisplayObject)))))){
return;
};
editableValue = null;
_local2 = selectedIndex;
selectedIndex = _arg1.target.listData.index;
if (_local2 != selectedIndex){
dispatchEvent(new Event(Event.CHANGE));
};
close();
}
public function removeAll():void{
list.removeAll();
inputField.text = "";
invalidate(InvalidationType.DATA);
}
public function set selectedItem(_arg1:Object):void{
list.selectedItem = _arg1;
invalidate(InvalidationType.SELECTED);
}
protected function highlightCell(_arg1:int=-1):void{
var _local2:ICellRenderer;
if (highlightedCell > -1){
_local2 = list.itemToCellRenderer(getItemAt(highlightedCell));
if (_local2 != null){
_local2.setMouseState("up");
};
};
if (_arg1 == -1){
return;
};
list.scrollToIndex(_arg1);
list.drawNow();
_local2 = list.itemToCellRenderer(getItemAt(_arg1));
if (_local2 != null){
_local2.setMouseState("over");
highlightedCell = _arg1;
};
}
public function itemToLabel(_arg1:Object):String{
if (_arg1 == null){
return ("");
};
return (list.itemToLabel(_arg1));
}
public function addItemAt(_arg1:Object, _arg2:uint):void{
list.addItemAt(_arg1, _arg2);
invalidate(InvalidationType.DATA);
}
public function replaceItemAt(_arg1:Object, _arg2:uint):Object{
return (list.replaceItemAt(_arg1, _arg2));
}
protected function showPrompt():void{
inputField.text = _prompt;
}
public function set rowCount(_arg1:uint):void{
_rowCount = _arg1;
invalidate(InvalidationType.SIZE);
}
public function get restrict():String{
return (inputField.restrict);
}
protected function setEmbedFonts():void{
var _local1:Object;
_local1 = getStyleValue("embedFonts");
if (_local1 != null){
inputField.textField.embedFonts = _local1;
};
}
public function sortItems(... _args){
return (list.sortItems.apply(list, _args));
}
public function set labelField(_arg1:String):void{
list.labelField = _arg1;
invalidate(InvalidationType.DATA);
}
public function set editable(_arg1:Boolean):void{
_editable = _arg1;
drawTextField();
}
public function set prompt(_arg1:String):void{
if (_arg1 == ""){
_prompt = null;
} else {
_prompt = _arg1;
};
invalidate(InvalidationType.STATE);
}
public function get length():int{
return (list.length);
}
protected function drawTextField():void{
inputField.setStyle("upSkin", "");
inputField.setStyle("disabledSkin", "");
inputField.enabled = enabled;
inputField.editable = _editable;
inputField.textField.selectable = ((enabled) && (_editable));
inputField.mouseEnabled = (inputField.mouseChildren = ((enabled) && (_editable)));
inputField.focusEnabled = false;
if (_editable){
inputField.addEventListener(FocusEvent.FOCUS_IN, onInputFieldFocus, false, 0, true);
inputField.addEventListener(FocusEvent.FOCUS_OUT, onInputFieldFocusOut, false, 0, true);
} else {
inputField.removeEventListener(FocusEvent.FOCUS_IN, onInputFieldFocus);
inputField.removeEventListener(FocusEvent.FOCUS_OUT, onInputFieldFocusOut);
};
}
protected function onInputFieldFocusOut(_arg1:FocusEvent):void{
inputField.removeEventListener(ComponentEvent.ENTER, onEnter);
selectedIndex = selectedIndex;
}
protected function passEvent(_arg1:Event):void{
dispatchEvent(_arg1);
}
public function get imeMode():String{
return (inputField.imeMode);
}
public function get labelFunction():Function{
return (list.labelFunction);
}
protected function calculateAvailableHeight():Number{
var _local1:Number;
_local1 = Number(getStyleValue("contentPadding"));
return ((list.height - (_local1 * 2)));
}
public function get selectedIndex():int{
return (list.selectedIndex);
}
override protected function focusOutHandler(_arg1:FocusEvent):void{
isKeyDown = false;
if (isOpen){
if (((!(_arg1.relatedObject)) || (!(list.contains(_arg1.relatedObject))))){
if (((!((highlightedCell == -1))) && (!((highlightedCell == selectedIndex))))){
selectedIndex = highlightedCell;
dispatchEvent(new Event(Event.CHANGE));
};
close();
};
};
super.focusOutHandler(_arg1);
}
public function get selectedLabel():String{
if (editableValue != null){
return (editableValue);
};
if (selectedIndex == -1){
return (null);
};
return (itemToLabel(selectedItem));
}
public function get text():String{
return (inputField.text);
}
protected function onListChange(_arg1:Event):void{
editableValue = null;
dispatchEvent(_arg1);
invalidate(InvalidationType.SELECTED);
if (isKeyDown){
return;
};
close();
}
protected function onToggleListVisibility(_arg1:MouseEvent):void{
_arg1.stopPropagation();
dispatchEvent(_arg1);
if (isOpen){
close();
} else {
open();
stage.addEventListener(MouseEvent.MOUSE_UP, onListItemUp, false, 0, true);
};
}
override protected function draw():void{
var _local1:*;
_local1 = selectedIndex;
if ((((_local1 == -1)) && (((((!((prompt == null))) || (editable))) || ((length == 0)))))){
_local1 = Math.max(-1, Math.min(_local1, (length - 1)));
} else {
editableValue = null;
_local1 = Math.max(0, Math.min(_local1, (length - 1)));
};
if (list.selectedIndex != _local1){
list.selectedIndex = _local1;
invalidate(InvalidationType.SELECTED, false);
};
if (isInvalid(InvalidationType.STYLES)){
setStyles();
setEmbedFonts();
invalidate(InvalidationType.SIZE, false);
};
if (isInvalid(InvalidationType.SIZE, InvalidationType.DATA, InvalidationType.STATE)){
drawTextFormat();
drawLayout();
invalidate(InvalidationType.DATA);
};
if (isInvalid(InvalidationType.DATA)){
drawList();
invalidate(InvalidationType.SELECTED, true);
};
if (isInvalid(InvalidationType.SELECTED)){
if ((((_local1 == -1)) && (!((editableValue == null))))){
inputField.text = editableValue;
} else {
if (_local1 > -1){
if (length > 0){
inputField.horizontalScrollPosition = 0;
inputField.text = itemToLabel(list.selectedItem);
};
} else {
if ((((_local1 == -1)) && (!((_prompt == null))))){
showPrompt();
} else {
inputField.text = "";
};
};
};
if (((((editable) && ((selectedIndex > -1)))) && ((stage.focus == inputField.textField)))){
inputField.setSelection(0, inputField.length);
};
};
drawTextField();
super.draw();
}
public function addItem(_arg1:Object):void{
list.addItem(_arg1);
invalidate(InvalidationType.DATA);
}
public function get rowCount():uint{
return (_rowCount);
}
override protected function configUI():void{
super.configUI();
background = new BaseButton();
background.focusEnabled = false;
copyStylesToChild(background, BACKGROUND_STYLES);
background.addEventListener(MouseEvent.MOUSE_DOWN, onToggleListVisibility, false, 0, true);
addChild(background);
inputField = new TextInput();
inputField.focusTarget = (this as IFocusManagerComponent);
inputField.focusEnabled = false;
inputField.addEventListener(Event.CHANGE, onTextInput, false, 0, true);
addChild(inputField);
list = new List();
list.focusEnabled = false;
copyStylesToChild(list, LIST_STYLES);
list.addEventListener(Event.CHANGE, onListChange, false, 0, true);
list.addEventListener(ListEvent.ITEM_CLICK, onListChange, false, 0, true);
list.addEventListener(ListEvent.ITEM_ROLL_OUT, passEvent, false, 0, true);
list.addEventListener(ListEvent.ITEM_ROLL_OVER, passEvent, false, 0, true);
list.verticalScrollBar.addEventListener(Event.SCROLL, passEvent, false, 0, true);
}
protected function positionList():void{
var _local1:Point;
_local1 = localToGlobal(new Point(0, 0));
list.x = _local1.x;
if (((_local1.y + height) + list.height) > stage.stageHeight){
list.y = (_local1.y - list.height);
} else {
list.y = (_local1.y + height);
};
}
public function get value():String{
var _local1:Object;
if (editableValue != null){
return (editableValue);
};
_local1 = selectedItem;
if (((!(_editable)) && (!((_local1.data == null))))){
return (_local1.data);
};
return (itemToLabel(_local1));
}
public function get prompt():String{
return (_prompt);
}
public function set dataProvider(_arg1:DataProvider):void{
_arg1.addEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange, false, 0, true);
list.dataProvider = _arg1;
invalidate(InvalidationType.DATA);
}
public function set restrict(_arg1:String):void{
if (((componentInspectorSetting) && ((_arg1 == "")))){
_arg1 = null;
};
if (!_editable){
return;
};
inputField.restrict = _arg1;
}
protected function onTextInput(_arg1:Event):void{
_arg1.stopPropagation();
if (!_editable){
return;
};
editableValue = inputField.text;
selectedIndex = -1;
dispatchEvent(new Event(Event.CHANGE));
}
protected function onInputFieldFocus(_arg1:FocusEvent):void{
inputField.addEventListener(ComponentEvent.ENTER, onEnter, false, 0, true);
close();
}
public function getItemAt(_arg1:uint):Object{
return (list.getItemAt(_arg1));
}
override protected function initializeAccessibility():void{
if (ComboBox.createAccessibilityImplementation != null){
ComboBox.createAccessibilityImplementation(this);
};
}
protected function drawLayout():void{
var _local1:Number;
var _local2:Number;
_local1 = (getStyleValue("buttonWidth") as Number);
_local2 = (getStyleValue("textPadding") as Number);
background.setSize(width, height);
inputField.x = (inputField.y = _local2);
inputField.setSize(((width - _local1) - _local2), (height - _local2));
list.width = (isNaN(_dropdownWidth)) ? width : _dropdownWidth;
background.enabled = enabled;
background.drawNow();
}
public function removeItem(_arg1:Object):Object{
return (list.removeItem(_arg1));
}
private function addCloseListener(_arg1:Event){
removeEventListener(Event.ENTER_FRAME, addCloseListener);
if (!isOpen){
return;
};
stage.addEventListener(MouseEvent.MOUSE_DOWN, onStageClick, false, 0, true);
}
public function get dataProvider():DataProvider{
return (list.dataProvider);
}
public function get textField():TextInput{
return (inputField);
}
protected function setStyles():void{
copyStylesToChild(background, BACKGROUND_STYLES);
copyStylesToChild(list, LIST_STYLES);
}
public function set labelFunction(_arg1:Function):void{
list.labelFunction = _arg1;
invalidate(InvalidationType.DATA);
}
protected function drawTextFormat():void{
var _local1:TextFormat;
_local1 = (getStyleValue((_enabled) ? "textFormat" : "disabledTextFormat") as TextFormat);
if (_local1 == null){
_local1 = new TextFormat();
};
inputField.textField.defaultTextFormat = _local1;
inputField.textField.setTextFormat(_local1);
setEmbedFonts();
}
public function set selectedIndex(_arg1:int):void{
list.selectedIndex = _arg1;
highlightCell();
invalidate(InvalidationType.SELECTED);
}
public function close():void{
highlightCell();
highlightedCell = -1;
if (!isOpen){
return;
};
dispatchEvent(new Event(Event.CLOSE));
stage.removeEventListener(MouseEvent.MOUSE_DOWN, onStageClick);
isOpen = false;
stage.removeChild(list);
}
public static function getStyleDefinition():Object{
return (mergeStyles(defaultStyles, List.getStyleDefinition()));
}
}
}//package fl.controls
Section 12
//DataGrid (fl.controls.DataGrid)
package fl.controls {
import fl.controls.listClasses.*;
import fl.core.*;
import flash.display.*;
import flash.events.*;
import fl.data.*;
import fl.managers.*;
import fl.events.*;
import fl.controls.dataGridClasses.*;
import flash.utils.*;
import flash.geom.*;
import flash.ui.*;
public class DataGrid extends SelectableList implements IFocusManagerComponent {
protected var _showHeaders:Boolean;// = true
protected var _sortIndex:int;// = -1
protected var _minColumnWidth:Number;
protected var _headerRenderer:Object;
public var sortableColumns:Boolean;// = true
protected var activeCellRenderersMap:Dictionary;
protected var _labelFunction:Function;
protected var headerSortArrow:Sprite;
protected var _sortDescending:Boolean;// = false
protected var losingFocus:Boolean;// = false
protected var maxHeaderHeight:Number;// = 25
protected var minColumnWidthInvalid:Boolean;// = false
protected var _rowHeight:Number;// = 20
protected var _cellRenderer:Object;
protected var proposedEditedItemPosition;
public var editable:Boolean;// = false
protected var dragHandlesMap:Dictionary;
protected var header:Sprite;
protected var availableCellRenderersMap:Dictionary;
protected var _columns:Array;
public var resizableColumns:Boolean;// = true
protected var columnStretchStartWidth:Number;
protected var actualRowIndex:int;
protected var _editedItemPosition:Object;
protected var editedItemPositionChanged:Boolean;// = false
protected var actualColIndex:int;
protected var columnStretchCursor:Sprite;
protected var visibleColumns:Array;
protected var headerMask:Sprite;
public var itemEditorInstance:Object;
protected var displayableColumns:Array;
protected var columnStretchIndex:Number;// = -1
protected var columnsInvalid:Boolean;// = true
protected var currentHoveredRow:int;// = -1
protected var isPressed:Boolean;// = false
protected var lastSortIndex:int;// = -1
protected var columnStretchStartX:Number;
protected var _headerHeight:Number;// = 25
protected static const HEADER_STYLES:Object = {disabledSkin:"headerDisabledSkin", downSkin:"headerDownSkin", overSkin:"headerOverSkin", upSkin:"headerUpSkin", textFormat:"headerTextFormat", disabledTextFormat:"headerDisabledTextFormat", textPadding:"headerTextPadding"};
private static var defaultStyles:Object = {headerUpSkin:"HeaderRenderer_upSkin", headerDownSkin:"HeaderRenderer_downSkin", headerOverSkin:"HeaderRenderer_overSkin", headerDisabledSkin:"HeaderRenderer_disabledSkin", headerSortArrowDescSkin:"HeaderSortArrow_descIcon", headerSortArrowAscSkin:"HeaderSortArrow_ascIcon", columnStretchCursorSkin:"ColumnStretch_cursor", columnDividerSkin:null, headerTextFormat:null, headerDisabledTextFormat:null, headerTextPadding:5, headerRenderer:HeaderRenderer, focusRectSkin:null, focusRectPadding:null, skin:"DataGrid_skin"};
public static var createAccessibilityImplementation:Function;
public function DataGrid(){
_rowHeight = 20;
_headerHeight = 25;
_showHeaders = true;
columnsInvalid = true;
minColumnWidthInvalid = false;
columnStretchIndex = -1;
_sortIndex = -1;
lastSortIndex = -1;
_sortDescending = false;
editedItemPositionChanged = false;
isPressed = false;
losingFocus = false;
maxHeaderHeight = 25;
currentHoveredRow = -1;
editable = false;
resizableColumns = true;
sortableColumns = true;
super();
if (_columns == null){
_columns = [];
};
_horizontalScrollPolicy = ScrollPolicy.OFF;
activeCellRenderersMap = new Dictionary(true);
availableCellRenderersMap = new Dictionary(true);
addEventListener(DataGridEvent.ITEM_EDIT_BEGINNING, itemEditorItemEditBeginningHandler, false, -50);
addEventListener(DataGridEvent.ITEM_EDIT_BEGIN, itemEditorItemEditBeginHandler, false, -50);
addEventListener(DataGridEvent.ITEM_EDIT_END, itemEditorItemEditEndHandler, false, -50);
addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
}
override protected function drawList():void{
var _local1:uint;
var _local2:uint;
var _local3:Number;
var _local4:Number;
var _local5:uint;
var _local6:Object;
var _local7:ICellRenderer;
var _local8:Array;
var _local9:DataGridColumn;
var _local10:Boolean;
var _local11:Dictionary;
var _local12:DataGridColumn;
var _local13:Sprite;
var _local14:UIComponent;
var _local15:Array;
var _local16:uint;
var _local17:uint;
var _local18:Number;
var _local19:DataGridColumn;
var _local20:Object;
var _local21:Array;
var _local22:Dictionary;
var _local23:Object;
var _local24:HeaderRenderer;
var _local25:Sprite;
var _local26:Graphics;
var _local27:Boolean;
var _local28:String;
if (showHeaders){
header.visible = true;
header.x = (contentPadding - _horizontalScrollPosition);
header.y = contentPadding;
listHolder.y = (contentPadding + headerHeight);
_local18 = Math.floor((availableHeight - headerHeight));
_verticalScrollBar.setScrollProperties(_local18, 0, (contentHeight - _local18), _verticalScrollBar.pageScrollSize);
} else {
header.visible = false;
listHolder.y = contentPadding;
};
listHolder.x = contentPadding;
contentScrollRect = listHolder.scrollRect;
contentScrollRect.x = _horizontalScrollPosition;
contentScrollRect.y = (vOffset + (Math.floor(_verticalScrollPosition) % rowHeight));
listHolder.scrollRect = contentScrollRect;
listHolder.cacheAsBitmap = useBitmapScrolling;
_local1 = Math.min(Math.max((length - 1), 0), Math.floor((_verticalScrollPosition / rowHeight)));
_local2 = Math.min(Math.max((length - 1), 0), ((_local1 + rowCount) + 1));
_local10 = list.hitTestPoint(stage.mouseX, stage.mouseY);
calculateColumnSizes();
_local11 = (renderedItems = new Dictionary(true));
if (length > 0){
_local5 = _local1;
while (_local5 <= _local2) {
_local11[_dataProvider.getItemAt(_local5)] = true;
_local5++;
};
};
_local3 = 0;
_local12 = (visibleColumns[0] as DataGridColumn);
_local5 = 0;
while (_local5 < displayableColumns.length) {
_local19 = (displayableColumns[_local5] as DataGridColumn);
if (_local19 != _local12){
_local3 = (_local3 + _local19.width);
} else {
break;
};
_local5++;
};
while (header.numChildren > 0) {
header.removeChildAt(0);
};
dragHandlesMap = new Dictionary(true);
_local15 = [];
_local16 = visibleColumns.length;
_local17 = 0;
while (_local17 < _local16) {
_local9 = (visibleColumns[_local17] as DataGridColumn);
_local15.push(_local9.colNum);
if (showHeaders){
_local23 = ((_local9.headerRenderer)!=null) ? _local9.headerRenderer : _headerRenderer;
_local24 = (getDisplayObjectInstance(_local23) as HeaderRenderer);
if (_local24 != null){
_local24.addEventListener(MouseEvent.CLICK, handleHeaderRendererClick, false, 0, true);
_local24.x = _local3;
_local24.y = 0;
_local24.setSize(_local9.width, headerHeight);
_local24.column = _local9.colNum;
_local24.label = _local9.headerText;
header.addChildAt(_local24, _local17);
copyStylesToChild(_local24, HEADER_STYLES);
if ((((((sortIndex == -1)) && ((lastSortIndex == -1)))) || (!((_local9.colNum == sortIndex))))){
_local24.setStyle("icon", null);
} else {
_local24.setStyle("icon", (sortDescending) ? getStyleValue("headerSortArrowAscSkin") : getStyleValue("headerSortArrowDescSkin"));
};
if ((((((_local17 < (_local16 - 1))) && (resizableColumns))) && (_local9.resizable))){
_local25 = new Sprite();
_local26 = _local25.graphics;
_local26.beginFill(0, 0);
_local26.drawRect(0, 0, 3, headerHeight);
_local26.endFill();
_local25.x = ((_local3 + _local9.width) - 2);
_local25.y = 0;
_local25.alpha = 0;
_local25.addEventListener(MouseEvent.MOUSE_OVER, handleHeaderResizeOver, false, 0, true);
_local25.addEventListener(MouseEvent.MOUSE_OUT, handleHeaderResizeOut, false, 0, true);
_local25.addEventListener(MouseEvent.MOUSE_DOWN, handleHeaderResizeDown, false, 0, true);
header.addChild(_local25);
dragHandlesMap[_local25] = _local9.colNum;
};
if ((((((_local17 == (_local16 - 1))) && ((_horizontalScrollPosition == 0)))) && ((availableWidth > (_local3 + _local9.width))))){
_local4 = Math.floor((availableWidth - _local3));
_local24.setSize(_local4, headerHeight);
} else {
_local4 = _local9.width;
};
_local24.drawNow();
};
};
_local20 = ((_local9.cellRenderer)!=null) ? _local9.cellRenderer : _cellRenderer;
_local21 = availableCellRenderersMap[_local9];
_local8 = activeCellRenderersMap[_local9];
if (_local8 == null){
_local8 = [];
activeCellRenderersMap[_local9] = _local8;
};
if (_local21 == null){
_local21 = [];
availableCellRenderersMap[_local9] = _local21;
};
_local22 = new Dictionary(true);
while (_local8.length > 0) {
_local7 = _local8.pop();
_local6 = _local7.data;
if ((((_local11[_local6] == null)) || ((invalidItems[_local6] == true)))){
_local21.push(_local7);
} else {
_local22[_local6] = _local7;
invalidItems[_local6] = true;
};
list.removeChild((_local7 as DisplayObject));
};
if (length > 0){
_local5 = _local1;
while (_local5 <= _local2) {
_local27 = false;
_local6 = _dataProvider.getItemAt(_local5);
if (_local22[_local6] != null){
_local27 = true;
_local7 = _local22[_local6];
delete _local22[_local6];
} else {
if (_local21.length > 0){
_local7 = (_local21.pop() as ICellRenderer);
} else {
_local7 = (getDisplayObjectInstance(_local20) as ICellRenderer);
_local13 = (_local7 as Sprite);
if (_local13 != null){
_local13.addEventListener(MouseEvent.CLICK, handleCellRendererClick, false, 0, true);
_local13.addEventListener(MouseEvent.ROLL_OVER, handleCellRendererMouseEvent, false, 0, true);
_local13.addEventListener(MouseEvent.ROLL_OUT, handleCellRendererMouseEvent, false, 0, true);
_local13.addEventListener(Event.CHANGE, handleCellRendererChange, false, 0, true);
_local13.doubleClickEnabled = true;
_local13.addEventListener(MouseEvent.DOUBLE_CLICK, handleCellRendererDoubleClick, false, 0, true);
if (_local13["setStyle"] != null){
for (_local28 in rendererStyles) {
var _local31 = _local13;
_local31["setStyle"](_local28, rendererStyles[_local28]);
};
};
};
};
};
list.addChild((_local7 as Sprite));
_local8.push(_local7);
_local7.x = _local3;
_local7.y = (rowHeight * (_local5 - _local1));
_local7.setSize(((_local17)==(_local16 - 1)) ? _local4 : _local9.width, rowHeight);
if (!_local27){
_local7.data = _local6;
};
_local7.listData = new ListData(columnItemToLabel(_local9.colNum, _local6), null, this, _local5, _local5, _local17);
if (((_local10) && (isHovered(_local7)))){
_local7.setMouseState("over");
currentHoveredRow = _local5;
} else {
_local7.setMouseState("up");
};
_local7.selected = !((_selectedIndices.indexOf(_local5) == -1));
if ((_local7 is UIComponent)){
_local14 = (_local7 as UIComponent);
_local14.drawNow();
};
_local5++;
};
};
_local3 = (_local3 + _local9.width);
_local17++;
};
_local5 = 0;
while (_local5 < _columns.length) {
if (_local15.indexOf(_local5) == -1){
removeCellRenderersByColumn((_columns[_local5] as DataGridColumn));
};
_local5++;
};
if (editedItemPositionChanged){
editedItemPositionChanged = false;
commitEditedItemPosition(proposedEditedItemPosition);
proposedEditedItemPosition = undefined;
};
invalidItems = new Dictionary(true);
}
protected function itemEditorItemEditBeginningHandler(_arg1:DataGridEvent):void{
if (!_arg1.isDefaultPrevented()){
setEditedItemPosition({columnIndex:_arg1.columnIndex, rowIndex:uint(_arg1.rowIndex)});
} else {
if (!itemEditorInstance){
_editedItemPosition = null;
editable = false;
setFocus();
editable = true;
};
};
}
protected function itemEditorItemEditEndHandler(_arg1:DataGridEvent):void{
var _local2:Boolean;
var _local3:Object;
var _local4:String;
var _local5:Object;
var _local6:String;
var _local7:XML;
var _local8:IFocusManager;
if (!_arg1.isDefaultPrevented()){
_local2 = false;
if (((itemEditorInstance) && (!((_arg1.reason == DataGridEventReason.CANCELLED))))){
_local3 = itemEditorInstance[_columns[_arg1.columnIndex].editorDataField];
_local4 = _columns[_arg1.columnIndex].dataField;
_local5 = _arg1.itemRenderer.data;
_local6 = "";
for each (_local7 in describeType(_local5).variable) {
if (_local4 == _local7.@name.toString()){
_local6 = _local7.@type.toString();
break;
};
};
switch (_local6){
case "String":
if (!(_local3 is String)){
_local3 = _local3.toString();
};
break;
case "uint":
if (!(_local3 is uint)){
_local3 = uint(_local3);
};
break;
case "int":
if (!(_local3 is int)){
_local3 = int(_local3);
};
break;
case "Number":
if (!(_local3 is Number)){
_local3 = Number(_local3);
};
break;
};
if (_local5[_local4] != _local3){
_local2 = true;
_local5[_local4] = _local3;
};
_arg1.itemRenderer.data = _local5;
};
} else {
if (_arg1.reason != DataGridEventReason.OTHER){
if (((itemEditorInstance) && (_editedItemPosition))){
if (selectedIndex != _editedItemPosition.rowIndex){
selectedIndex = _editedItemPosition.rowIndex;
};
_local8 = focusManager;
if ((itemEditorInstance is IFocusManagerComponent)){
_local8.setFocus(InteractiveObject(itemEditorInstance));
};
};
};
};
if ((((_arg1.reason == DataGridEventReason.OTHER)) || (!(_arg1.isDefaultPrevented())))){
destroyItemEditor();
};
}
public function get editedItemPosition():Object{
if (_editedItemPosition){
return ({rowIndex:_editedItemPosition.rowIndex, columnIndex:_editedItemPosition.columnIndex});
};
return (_editedItemPosition);
}
protected function setEditedItemPosition(_arg1:Object):void{
editedItemPositionChanged = true;
proposedEditedItemPosition = _arg1;
if (((_arg1) && (!((_arg1.rowIndex == selectedIndex))))){
selectedIndex = _arg1.rowIndex;
};
invalidate(InvalidationType.DATA);
}
public function set headerHeight(_arg1:Number):void{
maxHeaderHeight = _arg1;
_headerHeight = Math.max(0, _arg1);
invalidate(InvalidationType.SIZE);
}
protected function handleHeaderResizeDown(_arg1:MouseEvent):void{
var _local2:Sprite;
var _local3:Number;
var _local4:DataGridColumn;
_local2 = (_arg1.currentTarget as Sprite);
_local3 = dragHandlesMap[_local2];
_local4 = getColumnAt(_local3);
columnStretchIndex = _local3;
columnStretchStartX = _arg1.stageX;
columnStretchStartWidth = _local4.width;
stage.addEventListener(MouseEvent.MOUSE_MOVE, handleHeaderResizeMove, false, 0, true);
stage.addEventListener(MouseEvent.MOUSE_UP, handleHeaderResizeUp, false, 0, true);
}
protected function deactivateHandler(_arg1:Event):void{
if (itemEditorInstance){
endEdit(DataGridEventReason.OTHER);
losingFocus = true;
setFocus();
};
}
protected function keyFocusChangeHandler(_arg1:FocusEvent):void{
if ((((((_arg1.keyCode == Keyboard.TAB)) && (!(_arg1.isDefaultPrevented())))) && (findNextItemRenderer(_arg1.shiftKey)))){
_arg1.preventDefault();
};
}
override protected function handleDataChange(_arg1:DataChangeEvent):void{
super.handleDataChange(_arg1);
if (_columns == null){
_columns = [];
};
if (_columns.length == 0){
createColumnsFromDataProvider();
};
}
public function set editedItemPosition(_arg1:Object):void{
var _local2:Object;
_local2 = {rowIndex:_arg1.rowIndex, columnIndex:_arg1.columnIndex};
setEditedItemPosition(_local2);
}
override public function itemToCellRenderer(_arg1:Object):ICellRenderer{
return (null);
}
public function getCellRendererAt(_arg1:uint, _arg2:uint):ICellRenderer{
var _local3:DataGridColumn;
var _local4:Array;
var _local5:uint;
var _local6:ICellRenderer;
_local3 = (_columns[_arg2] as DataGridColumn);
if (_local3 != null){
_local4 = (activeCellRenderersMap[_local3] as Array);
if (_local4 != null){
_local5 = 0;
while (_local5 < _local4.length) {
_local6 = (_local4[_local5] as ICellRenderer);
if (_local6.listData.row == _arg1){
return (_local6);
};
_local5++;
};
};
};
return (null);
}
override protected function keyDownHandler(_arg1:KeyboardEvent):void{
if (((!(selectable)) || (itemEditorInstance))){
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;
};
scrollToIndex(caretIndex);
doKeySelection(caretIndex, _arg1.shiftKey, _arg1.ctrlKey);
break;
default:
break;
};
_arg1.stopPropagation();
}
protected function handleHeaderResizeUp(_arg1:MouseEvent):void{
var _local2:Sprite;
var _local3:DataGridColumn;
var _local4:HeaderRenderer;
var _local5:uint;
var _local6:DataGridEvent;
_local2 = (_arg1.currentTarget as Sprite);
_local3 = (_columns[columnStretchIndex] as DataGridColumn);
_local5 = 0;
while (_local5 < header.numChildren) {
_local4 = (header.getChildAt(_local5) as HeaderRenderer);
if (((_local4) && ((_local4.column == columnStretchIndex)))){
break;
};
_local5++;
};
_local6 = new DataGridEvent(DataGridEvent.COLUMN_STRETCH, false, true, columnStretchIndex, -1, _local4, (_local3) ? _local3.dataField : null);
dispatchEvent(_local6);
columnStretchIndex = -1;
showColumnStretchCursor(false);
stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleHeaderResizeMove, false);
stage.removeEventListener(MouseEvent.MOUSE_UP, handleHeaderResizeUp, false);
}
protected function handleHeaderResizeOver(_arg1:MouseEvent):void{
if (columnStretchIndex == -1){
showColumnStretchCursor();
};
}
override protected function focusInHandler(_arg1:FocusEvent):void{
var _local2:Boolean;
var _local3:DataGridColumn;
if (_arg1.target != this){
return;
};
if (losingFocus){
losingFocus = false;
return;
};
setIMEMode(true);
super.focusInHandler(_arg1);
if (((editable) && (!(isPressed)))){
_local2 = !((editedItemPosition == null));
if (!_editedItemPosition){
_editedItemPosition = {rowIndex:0, columnIndex:0};
while (_editedItemPosition.columnIndex < _columns.length) {
_local3 = (_columns[_editedItemPosition.columnIndex] as DataGridColumn);
if (((_local3.editable) && (_local3.visible))){
_local2 = true;
break;
};
_editedItemPosition.columnIndex++;
};
};
if (_local2){
setEditedItemPosition(_editedItemPosition);
};
};
if (editable){
addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler);
addEventListener(MouseEvent.MOUSE_DOWN, mouseFocusChangeHandler);
};
}
public function createItemEditor(_arg1:uint, _arg2:uint):void{
var _local3:DataGridColumn;
var _local4:ICellRenderer;
var _local5:Sprite;
var _local6:int;
if (displayableColumns.length != _columns.length){
_local6 = 0;
while (_local6 < displayableColumns.length) {
if (displayableColumns[_local6].colNum >= _arg1){
_arg1 = displayableColumns[_local6].colNum;
break;
};
_local6++;
};
if (_local6 == displayableColumns.length){
_arg1 = 0;
};
};
_local3 = (_columns[_arg1] as DataGridColumn);
_local4 = getCellRendererAt(_arg2, _arg1);
if (!itemEditorInstance){
itemEditorInstance = getDisplayObjectInstance(_local3.itemEditor);
itemEditorInstance.tabEnabled = false;
list.addChild(DisplayObject(itemEditorInstance));
};
list.setChildIndex(DisplayObject(itemEditorInstance), (list.numChildren - 1));
_local5 = (_local4 as Sprite);
itemEditorInstance.visible = true;
itemEditorInstance.move(_local5.x, _local5.y);
itemEditorInstance.setSize(_local3.width, rowHeight);
itemEditorInstance.drawNow();
DisplayObject(itemEditorInstance).addEventListener(FocusEvent.FOCUS_OUT, itemEditorFocusOutHandler);
_local5.visible = false;
DisplayObject(itemEditorInstance).addEventListener(KeyboardEvent.KEY_DOWN, editorKeyDownHandler);
stage.addEventListener(MouseEvent.MOUSE_DOWN, editorMouseDownHandler, true, 0, true);
}
private function itemEditorFocusOutHandler(_arg1:FocusEvent):void{
if (((_arg1.relatedObject) && (contains(_arg1.relatedObject)))){
return;
};
if (!_arg1.relatedObject){
return;
};
if (itemEditorInstance){
endEdit(DataGridEventReason.OTHER);
};
}
override public function get horizontalScrollPolicy():String{
return (_horizontalScrollPolicy);
}
override protected function updateRendererStyles():void{
var _local1:Array;
var _local2:Object;
var _local3:uint;
var _local4:uint;
var _local5:String;
_local1 = [];
for (_local2 in availableCellRenderersMap) {
_local1 = _local1.concat(availableCellRenderersMap[_local2]);
};
for (_local2 in activeCellRenderersMap) {
_local1 = _local1.concat(activeCellRenderersMap[_local2]);
};
_local3 = _local1.length;
_local4 = 0;
while (_local4 < _local3) {
if (_local1[_local4]["setStyle"] == null){
} else {
for (_local5 in updatedRendererStyles) {
_local1[_local4].setStyle(_local5, updatedRendererStyles[_local5]);
};
_local1[_local4].drawNow();
};
_local4++;
};
updatedRendererStyles = {};
}
public function set minColumnWidth(_arg1:Number):void{
_minColumnWidth = _arg1;
columnsInvalid = true;
minColumnWidthInvalid = true;
invalidate(InvalidationType.SIZE);
}
protected function showColumnStretchCursor(_arg1:Boolean=true):void{
if (columnStretchCursor == null){
columnStretchCursor = (getDisplayObjectInstance(getStyleValue("columnStretchCursorSkin")) as Sprite);
columnStretchCursor.mouseEnabled = false;
};
if (_arg1){
Mouse.hide();
stage.addChild(columnStretchCursor);
stage.addEventListener(MouseEvent.MOUSE_MOVE, positionColumnStretchCursor, false, 0, true);
columnStretchCursor.x = stage.mouseX;
columnStretchCursor.y = stage.mouseY;
} else {
stage.removeEventListener(MouseEvent.MOUSE_MOVE, positionColumnStretchCursor, false);
if (stage.contains(columnStretchCursor)){
stage.removeChild(columnStretchCursor);
};
Mouse.show();
};
}
protected function findNextEnterItemRenderer(_arg1:KeyboardEvent):void{
var _local2:int;
var _local3:int;
var _local4:int;
var _local5:DataGridEvent;
if (proposedEditedItemPosition !== undefined){
return;
};
_local2 = _editedItemPosition.rowIndex;
_local3 = _editedItemPosition.columnIndex;
_local4 = (_editedItemPosition.rowIndex + (_arg1.shiftKey) ? -1 : 1);
if ((((_local4 >= 0)) && ((_local4 < length)))){
_local2 = _local4;
};
_local5 = new DataGridEvent(DataGridEvent.ITEM_EDIT_BEGINNING, false, true, _local3, _local2);
_local5.dataField = _columns[_local3].dataField;
dispatchEvent(_local5);
}
protected function mouseFocusChangeHandler(_arg1:MouseEvent):void{
if (((((itemEditorInstance) && (!(_arg1.isDefaultPrevented())))) && (itemRendererContains(itemEditorInstance, DisplayObject(_arg1.target))))){
_arg1.preventDefault();
};
}
public function get imeMode():String{
return (_imeMode);
}
public function editField(_arg1:uint, _arg2:String, _arg3:Object):void{
var _local4:Object;
_local4 = getItemAt(_arg1);
_local4[_arg2] = _arg3;
replaceItemAt(_local4, _arg1);
}
protected function calculateAvailableHeight():Number{
var _local1:Number;
var _local2:Number;
_local1 = Number(getStyleValue("contentPadding"));
_local2 = ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0;
return ((((height - (_local1 * 2)) - _local2) - (showHeaders) ? headerHeight : 0));
}
protected function mouseUpHandler(_arg1:MouseEvent):void{
if (((!(enabled)) || (!(selectable)))){
return;
};
isPressed = false;
}
override protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{
}
public function resizeColumn(_arg1:int, _arg2:Number):void{
var _local3:DataGridColumn;
var _local4:int;
var _local5:Number;
var _local6:int;
var _local7:DataGridColumn;
var _local8:DataGridColumn;
var _local9:int;
var _local10:Number;
var _local11:Number;
var _local12:Number;
if (_columns.length == 0){
return;
};
_local3 = (_columns[_arg1] as DataGridColumn);
if (!_local3){
return;
};
if (((!(visibleColumns)) || ((visibleColumns.length == 0)))){
_local3.setWidth(_arg2);
return;
};
if (_arg2 < _local3.minWidth){
_arg2 = _local3.minWidth;
};
if ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((_horizontalScrollPolicy == ScrollPolicy.AUTO)))){
_local3.setWidth(_arg2);
_local3.explicitWidth = _arg2;
} else {
_local4 = getVisibleColumnIndex(_local3);
if (_local4 != -1){
_local5 = 0;
_local6 = visibleColumns.length;
_local9 = (_local4 + 1);
while (_local9 < _local6) {
_local7 = (visibleColumns[_local9] as DataGridColumn);
if (((_local7) && (_local7.resizable))){
_local5 = (_local5 + _local7.width);
};
_local9++;
};
_local11 = ((_local3.width - _arg2) + _local5);
if (_local5){
_local3.setWidth(_arg2);
_local3.explicitWidth = _arg2;
};
_local12 = 0;
_local9 = (_local4 + 1);
while (_local9 < _local6) {
_local7 = (visibleColumns[_local9] as DataGridColumn);
if (_local7.resizable){
_local10 = ((_local7.width * _local11) / _local5);
if (_local10 < _local7.minWidth){
_local10 = _local7.minWidth;
};
_local7.setWidth(_local10);
_local12 = (_local12 + _local7.width);
_local8 = _local7;
};
_local9++;
};
if (_local12 > _local11){
_local10 = ((_local3.width - _local12) + _local11);
if (_local10 < _local3.minWidth){
_local10 = _local3.minWidth;
};
_local3.setWidth(_local10);
} else {
if (_local8){
_local8.setWidth(((_local8.width - _local12) + _local11));
};
};
} else {
_local3.setWidth(_arg2);
_local3.explicitWidth = _arg2;
};
};
columnsInvalid = true;
invalidate(InvalidationType.SIZE);
}
protected function itemEditorItemEditBeginHandler(_arg1:DataGridEvent):void{
var _local2:IFocusManager;
if (stage){
stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true);
};
if (!_arg1.isDefaultPrevented()){
createItemEditor(_arg1.columnIndex, uint(_arg1.rowIndex));
ICellRenderer(itemEditorInstance).listData = ICellRenderer(editedItemRenderer).listData;
ICellRenderer(itemEditorInstance).data = editedItemRenderer.data;
itemEditorInstance.imeMode = ((columns[_arg1.columnIndex].imeMode)==null) ? _imeMode : columns[_arg1.columnIndex].imeMode;
_local2 = focusManager;
if ((itemEditorInstance is IFocusManagerComponent)){
_local2.setFocus(InteractiveObject(itemEditorInstance));
};
_local2.defaultButtonEnabled = false;
_arg1 = new DataGridEvent(DataGridEvent.ITEM_FOCUS_IN, false, false, _editedItemPosition.columnIndex, _editedItemPosition.rowIndex, itemEditorInstance);
dispatchEvent(_arg1);
};
}
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")))) || (!((_headerRenderer == getStyleValue("headerRenderer")))))){
_invalidateList();
_cellRenderer = getStyleValue("cellRenderer");
_headerRenderer = getStyleValue("headerRenderer");
};
};
if (isInvalid(InvalidationType.SIZE)){
columnsInvalid = true;
};
if (((isInvalid(InvalidationType.SIZE, InvalidationType.STATE)) || (_local1))){
drawLayout();
drawDisabledOverlay();
};
if (isInvalid(InvalidationType.RENDERER_STYLES)){
updateRendererStyles();
};
if (isInvalid(InvalidationType.STYLES, InvalidationType.SIZE, InvalidationType.DATA, InvalidationType.SCROLL, InvalidationType.SELECTED)){
drawList();
};
updateChildren();
validate();
}
override public function set horizontalScrollPolicy(_arg1:String):void{
super.horizontalScrollPolicy = _arg1;
columnsInvalid = true;
}
protected function getVisibleColumnIndex(_arg1:DataGridColumn):int{
var _local2:uint;
_local2 = 0;
while (_local2 < visibleColumns.length) {
if (_arg1 == visibleColumns[_local2]){
return (_local2);
};
_local2++;
};
return (-1);
}
protected function itemRendererContains(_arg1:Object, _arg2:DisplayObject):Boolean{
if (((((!(_arg2)) || (!(_arg1)))) || (!((_arg1 is DisplayObjectContainer))))){
return (false);
};
return (DisplayObjectContainer(_arg1).contains(_arg2));
}
override protected function configUI():void{
var _local1:Graphics;
useFixedHorizontalScrolling = false;
super.configUI();
headerMask = new Sprite();
_local1 = headerMask.graphics;
_local1.beginFill(0, 0.3);
_local1.drawRect(0, 0, 100, 100);
_local1.endFill();
headerMask.visible = false;
addChild(headerMask);
header = new Sprite();
addChild(header);
header.mask = headerMask;
_horizontalScrollPolicy = ScrollPolicy.OFF;
_verticalScrollPolicy = ScrollPolicy.AUTO;
}
public function columnItemToLabel(_arg1:uint, _arg2:Object):String{
var _local3:DataGridColumn;
_local3 = (_columns[_arg1] as DataGridColumn);
if (_local3 != null){
return (_local3.itemToLabel(_arg2));
};
return (" ");
}
protected function endEdit(_arg1:String):Boolean{
var _local2:DataGridEvent;
if (!editedItemRenderer){
return (true);
};
_local2 = new DataGridEvent(DataGridEvent.ITEM_EDIT_END, false, true, editedItemPosition.columnIndex, editedItemPosition.rowIndex, editedItemRenderer, _columns[editedItemPosition.columnIndex].dataField, _arg1);
dispatchEvent(_local2);
return (!(_local2.isDefaultPrevented()));
}
override protected function drawLayout():void{
vOffset = (showHeaders) ? headerHeight : 0;
super.drawLayout();
contentScrollRect = listHolder.scrollRect;
if (showHeaders){
headerHeight = maxHeaderHeight;
if (Math.floor((availableHeight - headerHeight)) <= 0){
_headerHeight = availableHeight;
};
list.y = headerHeight;
contentScrollRect = listHolder.scrollRect;
contentScrollRect.y = (contentPadding + headerHeight);
contentScrollRect.height = (availableHeight - headerHeight);
listHolder.y = (contentPadding + headerHeight);
headerMask.x = contentPadding;
headerMask.y = contentPadding;
headerMask.width = availableWidth;
headerMask.height = headerHeight;
} else {
contentScrollRect.y = contentPadding;
listHolder.y = 0;
};
listHolder.scrollRect = contentScrollRect;
}
protected function commitEditedItemPosition(_arg1:Object):void{
var _local2:ICellRenderer;
var _local3:DataGridEvent;
var _local4:String;
var _local5:int;
if (((!(enabled)) || (!(editable)))){
return;
};
if (((((((((itemEditorInstance) && (_arg1))) && ((itemEditorInstance is IFocusManagerComponent)))) && ((_editedItemPosition.rowIndex == _arg1.rowIndex)))) && ((_editedItemPosition.columnIndex == _arg1.columnIndex)))){
IFocusManagerComponent(itemEditorInstance).setFocus();
return;
};
if (itemEditorInstance){
if (!_arg1){
_local4 = DataGridEventReason.OTHER;
} else {
if (((!(editedItemPosition)) || ((_arg1.rowIndex == editedItemPosition.rowIndex)))){
_local4 = DataGridEventReason.NEW_COLUMN;
} else {
_local4 = DataGridEventReason.NEW_ROW;
};
};
if (((!(endEdit(_local4))) && (!((_local4 == DataGridEventReason.OTHER))))){
return;
};
};
_editedItemPosition = _arg1;
if (!_arg1){
return;
};
actualRowIndex = _arg1.rowIndex;
actualColIndex = _arg1.columnIndex;
if (displayableColumns.length != _columns.length){
_local5 = 0;
while (_local5 < displayableColumns.length) {
if (displayableColumns[_local5].colNum >= actualColIndex){
actualColIndex = displayableColumns[_local5].colNum;
break;
};
_local5++;
};
if (_local5 == displayableColumns.length){
actualColIndex = 0;
};
};
scrollToPosition(actualRowIndex, actualColIndex);
_local2 = getCellRendererAt(actualRowIndex, actualColIndex);
_local3 = new DataGridEvent(DataGridEvent.ITEM_EDIT_BEGIN, false, true, actualColIndex, actualRowIndex, _local2);
dispatchEvent(_local3);
if (editedItemPositionChanged){
editedItemPositionChanged = false;
commitEditedItemPosition(proposedEditedItemPosition);
proposedEditedItemPosition = undefined;
};
if (!itemEditorInstance){
commitEditedItemPosition(null);
};
}
protected function handleHeaderRendererClick(_arg1:MouseEvent):void{
var _local2:HeaderRenderer;
var _local3:uint;
var _local4:DataGridColumn;
var _local5:uint;
var _local6:DataGridEvent;
if (!_enabled){
return;
};
_local2 = (_arg1.currentTarget as HeaderRenderer);
_local3 = _local2.column;
_local4 = (_columns[_local3] as DataGridColumn);
if (((sortableColumns) && (_local4.sortable))){
_local5 = _sortIndex;
_sortIndex = _local3;
_local6 = new DataGridEvent(DataGridEvent.HEADER_RELEASE, false, true, _local3, -1, _local2, (_local4) ? _local4.dataField : null);
if (((!(dispatchEvent(_local6))) || (!(_selectable)))){
_sortIndex = lastSortIndex;
return;
};
lastSortIndex = _local5;
sortByColumn(_local3);
invalidate(InvalidationType.DATA);
};
}
public function get showHeaders():Boolean{
return (_showHeaders);
}
public function get sortIndex():int{
return (_sortIndex);
}
public function set labelFunction(_arg1:Function):void{
if (_labelFunction == _arg1){
return;
};
_labelFunction = _arg1;
invalidate(InvalidationType.DATA);
}
public function getColumnIndex(_arg1:String):int{
var _local2:uint;
var _local3:DataGridColumn;
_local2 = 0;
while (_local2 < _columns.length) {
_local3 = (_columns[_local2] as DataGridColumn);
if (_local3.dataField == _arg1){
return (_local2);
};
_local2++;
};
return (-1);
}
protected function createColumnsFromDataProvider():void{
var _local1:Object;
var _local2:String;
_columns = [];
if (length > 0){
_local1 = _dataProvider.getItemAt(0);
for (_local2 in _local1) {
addColumn(_local2);
};
};
}
protected function editorMouseDownHandler(_arg1:MouseEvent):void{
var _local2:ICellRenderer;
var _local3:uint;
if (!itemRendererContains(itemEditorInstance, DisplayObject(_arg1.target))){
if ((((_arg1.target is ICellRenderer)) && (contains(DisplayObject(_arg1.target))))){
_local2 = (_arg1.target as ICellRenderer);
_local3 = _local2.listData.row;
if (_editedItemPosition.rowIndex == _local3){
endEdit(DataGridEventReason.NEW_COLUMN);
} else {
endEdit(DataGridEventReason.NEW_ROW);
};
} else {
endEdit(DataGridEventReason.OTHER);
};
};
}
public function addColumnAt(_arg1, _arg2:uint):DataGridColumn{
var _local3:DataGridColumn;
var _local4:*;
var _local5:uint;
if (_arg2 < _columns.length){
_columns.splice(_arg2, 0, "");
_local5 = (_arg2 + 1);
while (_local5 < _columns.length) {
_local3 = (_columns[_local5] as DataGridColumn);
_local3.colNum = _local5;
_local5++;
};
};
_local4 = _arg1;
if (!(_local4 is DataGridColumn)){
if ((_local4 is String)){
_local4 = new DataGridColumn(_local4);
} else {
_local4 = new DataGridColumn();
};
};
_local3 = (_local4 as DataGridColumn);
_local3.owner = this;
_local3.colNum = _arg2;
_columns[_arg2] = _local3;
invalidate(InvalidationType.SIZE);
columnsInvalid = true;
return (_local3);
}
public function destroyItemEditor():void{
var _local1:DataGridEvent;
if (itemEditorInstance){
DisplayObject(itemEditorInstance).removeEventListener(KeyboardEvent.KEY_DOWN, editorKeyDownHandler);
stage.removeEventListener(MouseEvent.MOUSE_DOWN, editorMouseDownHandler, true);
_local1 = new DataGridEvent(DataGridEvent.ITEM_FOCUS_OUT, false, false, _editedItemPosition.columnIndex, _editedItemPosition.rowIndex, itemEditorInstance);
dispatchEvent(_local1);
if (((itemEditorInstance) && ((itemEditorInstance is UIComponent)))){
UIComponent(itemEditorInstance).drawFocus(false);
};
list.removeChild(DisplayObject(itemEditorInstance));
DisplayObject(editedItemRenderer).visible = true;
itemEditorInstance = null;
};
}
public function set imeMode(_arg1:String):void{
_imeMode = _arg1;
}
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 {
if (_arg3){
caretIndex = _arg1;
} else {
selectedIndex = _arg1;
caretIndex = (lastCaretIndex = _arg1);
_local4 = true;
};
};
if (_local4){
dispatchEvent(new Event(Event.CHANGE));
};
invalidate(InvalidationType.DATA);
}
public function get headerHeight():Number{
return (_headerHeight);
}
public function getColumnCount():uint{
return (_columns.length);
}
protected function sortByColumn(_arg1:int):void{
var _local2:DataGridColumn;
var _local3:Boolean;
var _local4:uint;
_local2 = (columns[_arg1] as DataGridColumn);
if (((((!(enabled)) || (!(_local2)))) || (!(_local2.sortable)))){
return;
};
_local3 = _local2.sortDescending;
_local4 = _local2.sortOptions;
if (_local3){
_local4 = (_local4 | Array.DESCENDING);
} else {
_local4 = (_local4 & ~(Array.DESCENDING));
};
if (_local2.sortCompareFunction != null){
sortItems(_local2.sortCompareFunction, _local4);
} else {
sortItemsOn(_local2.dataField, _local4);
};
_sortDescending = (_local2.sortDescending = !(_local3));
if ((((lastSortIndex >= 0)) && (!((lastSortIndex == sortIndex))))){
_local2 = (columns[lastSortIndex] as DataGridColumn);
if (_local2 != null){
_local2.sortDescending = false;
};
};
}
public function get minColumnWidth():Number{
return (_minColumnWidth);
}
protected function isHovered(_arg1:ICellRenderer):Boolean{
var _local2:uint;
var _local3:Number;
var _local4:Point;
_local2 = Math.min(Math.max((length - 1), 0), Math.floor((_verticalScrollPosition / rowHeight)));
_local3 = ((_arg1.listData.row - _local2) * rowHeight);
_local4 = list.globalToLocal(new Point(0, stage.mouseY));
return ((((_local4.y > _local3)) && ((_local4.y < (_local3 + rowHeight)))));
}
protected function mouseDownHandler(_arg1:MouseEvent):void{
if (((!(enabled)) || (!(selectable)))){
return;
};
isPressed = true;
}
override public function set enabled(_arg1:Boolean):void{
super.enabled = _arg1;
header.mouseChildren = _enabled;
}
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();
};
}
protected function handleHeaderResizeOut(_arg1:MouseEvent):void{
if (columnStretchIndex == -1){
showColumnStretchCursor(false);
};
}
public function removeAllColumns():void{
if (_columns.length > 0){
removeCellRenderers();
_columns = [];
invalidate(InvalidationType.SIZE);
columnsInvalid = true;
};
}
public function set rowCount(_arg1:uint):void{
var _local2:Number;
var _local3:Number;
_local2 = Number(getStyleValue("contentPadding"));
_local3 = ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && (hScrollBar))))) ? 15 : 0;
height = ((((rowHeight * _arg1) + (2 * _local2)) + _local3) + (showHeaders) ? headerHeight : 0);
}
protected function removeCellRenderers():void{
var _local1:uint;
_local1 = 0;
while (_local1 < _columns.length) {
removeCellRenderersByColumn((_columns[_local1] as DataGridColumn));
_local1++;
};
}
public function removeColumnAt(_arg1:uint):DataGridColumn{
var _local2:DataGridColumn;
var _local3:uint;
_local2 = (_columns[_arg1] as DataGridColumn);
if (_local2 != null){
removeCellRenderersByColumn(_local2);
_columns.splice(_arg1, 1);
_local3 = _arg1;
while (_local3 < _columns.length) {
_local2 = (_columns[_local3] as DataGridColumn);
if (_local2){
_local2.colNum = _local3;
};
_local3++;
};
invalidate(InvalidationType.SIZE);
columnsInvalid = true;
};
return (_local2);
}
override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{
if (_arg1 == _horizontalScrollPosition){
return;
};
contentScrollRect = listHolder.scrollRect;
contentScrollRect.x = _arg1;
listHolder.scrollRect = contentScrollRect;
list.x = 0;
header.x = -(_arg1);
super.setHorizontalScrollPosition(_arg1, true);
invalidate(InvalidationType.SCROLL);
columnsInvalid = true;
}
public function get labelFunction():Function{
return (_labelFunction);
}
override protected function handleCellRendererClick(_arg1:MouseEvent):void{
var _local2:ICellRenderer;
var _local3:DataGridColumn;
var _local4:DataGridEvent;
super.handleCellRendererClick(_arg1);
_local2 = (_arg1.currentTarget as ICellRenderer);
if (((((_local2) && (_local2.data))) && (!((_local2 == itemEditorInstance))))){
_local3 = (_columns[_local2.listData.column] as DataGridColumn);
if (((((editable) && (_local3))) && (_local3.editable))){
_local4 = new DataGridEvent(DataGridEvent.ITEM_EDIT_BEGINNING, false, true, _local2.listData.column, _local2.listData.row, _local2, _local3.dataField);
dispatchEvent(_local4);
};
};
}
override protected function focusOutHandler(_arg1:FocusEvent):void{
setIMEMode(false);
if (_arg1.target == this){
super.focusOutHandler(_arg1);
};
if ((((_arg1.relatedObject == this)) && (itemRendererContains(itemEditorInstance, DisplayObject(_arg1.target))))){
return;
};
if ((((_arg1.relatedObject == null)) && (itemRendererContains(editedItemRenderer, DisplayObject(_arg1.target))))){
return;
};
if ((((_arg1.relatedObject == null)) && (itemRendererContains(itemEditorInstance, DisplayObject(_arg1.target))))){
return;
};
if (((itemEditorInstance) && (((!(_arg1.relatedObject)) || (!(itemRendererContains(itemEditorInstance, _arg1.relatedObject))))))){
endEdit(DataGridEventReason.OTHER);
removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler);
removeEventListener(MouseEvent.MOUSE_DOWN, mouseFocusChangeHandler);
};
}
protected function positionColumnStretchCursor(_arg1:MouseEvent):void{
columnStretchCursor.x = _arg1.stageX;
columnStretchCursor.y = _arg1.stageY;
}
override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{
if (itemEditorInstance){
endEdit(DataGridEventReason.OTHER);
};
invalidate(InvalidationType.SCROLL);
super.setVerticalScrollPosition(_arg1, true);
}
public function get sortDescending():Boolean{
return (_sortDescending);
}
protected function editorKeyDownHandler(_arg1:KeyboardEvent):void{
if (_arg1.keyCode == Keyboard.ESCAPE){
endEdit(DataGridEventReason.CANCELLED);
} else {
if (((_arg1.ctrlKey) && ((_arg1.charCode == 46)))){
endEdit(DataGridEventReason.CANCELLED);
} else {
if ((((_arg1.charCode == Keyboard.ENTER)) && (!((_arg1.keyCode == 229))))){
if (endEdit(DataGridEventReason.NEW_ROW)){
findNextEnterItemRenderer(_arg1);
};
};
};
};
}
override protected function calculateContentWidth():void{
var _local1:int;
var _local2:int;
var _local3:DataGridColumn;
if (_columns.length == 0){
contentWidth = 0;
return;
};
if (minColumnWidthInvalid){
_local1 = _columns.length;
_local2 = 0;
while (_local2 < _local1) {
_local3 = (_columns[_local2] as DataGridColumn);
_local3.minWidth = minColumnWidth;
_local2++;
};
minColumnWidthInvalid = false;
};
if (horizontalScrollPolicy == ScrollPolicy.OFF){
contentWidth = availableWidth;
} else {
contentWidth = 0;
_local1 = _columns.length;
_local2 = 0;
while (_local2 < _local1) {
_local3 = (_columns[_local2] as DataGridColumn);
if (_local3.visible){
contentWidth = (contentWidth + _local3.width);
};
_local2++;
};
if (((!(isNaN(_horizontalScrollPosition))) && (((_horizontalScrollPosition + availableWidth) > contentWidth)))){
setHorizontalScrollPosition((contentWidth - availableWidth));
};
};
}
override public function get rowCount():uint{
return (Math.ceil((calculateAvailableHeight() / rowHeight)));
}
public function addColumn(_arg1):DataGridColumn{
return (addColumnAt(_arg1, _columns.length));
}
protected function removeCellRenderersByColumn(_arg1:DataGridColumn):void{
var _local2:Array;
if (_arg1 == null){
return;
};
_local2 = activeCellRenderersMap[_arg1];
if (_local2 != null){
while (_local2.length > 0) {
list.removeChild((_local2.pop() as DisplayObject));
};
};
}
override protected function handleCellRendererMouseEvent(_arg1:MouseEvent):void{
var _local2:ICellRenderer;
var _local3:int;
var _local4:String;
var _local5:uint;
var _local6:DataGridColumn;
var _local7:ICellRenderer;
_local2 = (_arg1.target as ICellRenderer);
if (_local2){
_local3 = _local2.listData.row;
if (_arg1.type == MouseEvent.ROLL_OVER){
_local4 = "over";
} else {
if (_arg1.type == MouseEvent.ROLL_OUT){
_local4 = "up";
};
};
if (_local4){
_local5 = 0;
while (_local5 < visibleColumns.length) {
_local6 = (visibleColumns[_local5] as DataGridColumn);
_local7 = getCellRendererAt(_local3, _local6.colNum);
if (_local7){
_local7.setMouseState(_local4);
};
if (_local3 != currentHoveredRow){
_local7 = getCellRendererAt(currentHoveredRow, _local6.colNum);
if (_local7){
_local7.setMouseState("up");
};
};
_local5++;
};
};
};
super.handleCellRendererMouseEvent(_arg1);
}
protected function handleHeaderResizeMove(_arg1:MouseEvent):void{
var _local2:Number;
var _local3:Number;
_local2 = (_arg1.stageX - columnStretchStartX);
_local3 = (columnStretchStartWidth + _local2);
resizeColumn(columnStretchIndex, _local3);
}
public function set rowHeight(_arg1:Number):void{
_rowHeight = Math.max(0, _arg1);
invalidate(InvalidationType.SIZE);
}
protected function scrollToPosition(_arg1:int, _arg2:int):void{
var _local3:Number;
var _local4:Number;
var _local5:uint;
var _local6:Number;
var _local7:DataGridColumn;
var _local8:DataGridColumn;
_local3 = verticalScrollPosition;
_local4 = horizontalScrollPosition;
scrollToIndex(_arg1);
_local6 = 0;
_local7 = (_columns[_arg2] as DataGridColumn);
_local5 = 0;
while (_local5 < displayableColumns.length) {
_local8 = (displayableColumns[_local5] as DataGridColumn);
if (_local8 != _local7){
_local6 = (_local6 + _local8.width);
} else {
break;
};
_local5++;
};
if (horizontalScrollPosition > _local6){
horizontalScrollPosition = _local6;
} else {
if ((horizontalScrollPosition + availableWidth) < (_local6 + _local7.width)){
horizontalScrollPosition = -((availableWidth - (_local6 + _local7.width)));
};
};
if (((!((_local3 == verticalScrollPosition))) || (!((_local4 == horizontalScrollPosition))))){
drawNow();
};
}
protected function findNextItemRenderer(_arg1:Boolean):Boolean{
var _local2:int;
var _local3:int;
var _local4:Boolean;
var _local5:int;
var _local6:int;
var _local7:String;
var _local8:DataGridEvent;
if (!_editedItemPosition){
return (false);
};
if (proposedEditedItemPosition !== undefined){
return (false);
};
_local2 = _editedItemPosition.rowIndex;
_local3 = _editedItemPosition.columnIndex;
_local4 = false;
_local5 = (_arg1) ? -1 : 1;
_local6 = (length - 1);
while (!(_local4)) {
_local3 = (_local3 + _local5);
if ((((_local3 < 0)) || ((_local3 >= _columns.length)))){
_local3 = ((_local3)<0) ? (_columns.length - 1) : 0;
_local2 = (_local2 + _local5);
if ((((_local2 < 0)) || ((_local2 > _local6)))){
setEditedItemPosition(null);
losingFocus = true;
setFocus();
return (false);
};
};
if (((_columns[_local3].editable) && (_columns[_local3].visible))){
_local4 = true;
if (_local2 == _editedItemPosition.rowIndex){
_local7 = DataGridEventReason.NEW_COLUMN;
} else {
_local7 = DataGridEventReason.NEW_ROW;
};
if (((!(itemEditorInstance)) || (endEdit(_local7)))){
_local8 = new DataGridEvent(DataGridEvent.ITEM_EDIT_BEGINNING, false, true, _local3, _local2);
_local8.dataField = _columns[_local3].dataField;
dispatchEvent(_local8);
};
};
};
return (_local4);
}
override public function set dataProvider(_arg1:DataProvider):void{
super.dataProvider = _arg1;
if (_columns == null){
_columns = [];
};
if (_columns.length == 0){
createColumnsFromDataProvider();
};
removeCellRenderers();
}
override public function setSize(_arg1:Number, _arg2:Number):void{
super.setSize(_arg1, _arg2);
columnsInvalid = true;
}
override public function scrollToIndex(_arg1:int):void{
var _local2:int;
var _local3:int;
var _local4:Number;
drawNow();
_local2 = (Math.floor(((_verticalScrollPosition + availableHeight) / rowHeight)) - 1);
_local3 = Math.ceil((_verticalScrollPosition / rowHeight));
if (_arg1 < _local3){
verticalScrollPosition = (_arg1 * rowHeight);
} else {
if (_arg1 >= _local2){
_local4 = ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && (hScrollBar))))) ? 15 : 0;
verticalScrollPosition = (((((_arg1 + 1) * rowHeight) - availableHeight) + _local4) + (showHeaders) ? headerHeight : 0);
};
};
}
protected function calculateColumnSizes():void{
var _local1:Number;
var _local2:int;
var _local3:int;
var _local4:Number;
var _local5:DataGridColumn;
var _local6:DataGridColumn;
var _local7:Number;
var _local8:int;
var _local9:Number;
var _local10:int;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
_local4 = 0;
if (_columns.length == 0){
visibleColumns = [];
displayableColumns = [];
return;
};
if (columnsInvalid){
columnsInvalid = false;
visibleColumns = [];
if (minColumnWidthInvalid){
_local2 = _columns.length;
_local3 = 0;
while (_local3 < _local2) {
_columns[_local3].minWidth = minColumnWidth;
_local3++;
};
minColumnWidthInvalid = false;
};
displayableColumns = null;
_local2 = _columns.length;
_local3 = 0;
while (_local3 < _local2) {
if (((displayableColumns) && (_columns[_local3].visible))){
displayableColumns.push(_columns[_local3]);
} else {
if (((!(displayableColumns)) && (!(_columns[_local3].visible)))){
displayableColumns = new Array(_local3);
_local8 = 0;
while (_local8 < _local3) {
displayableColumns[_local8] = _columns[_local8];
_local8++;
};
};
};
_local3++;
};
if (!displayableColumns){
displayableColumns = _columns;
};
if (horizontalScrollPolicy == ScrollPolicy.OFF){
_local2 = displayableColumns.length;
_local3 = 0;
while (_local3 < _local2) {
visibleColumns.push(displayableColumns[_local3]);
_local3++;
};
} else {
_local2 = displayableColumns.length;
_local9 = 0;
_local3 = 0;
while (_local3 < _local2) {
_local5 = (displayableColumns[_local3] as DataGridColumn);
if (((((_local9 + _local5.width) > _horizontalScrollPosition)) && ((_local9 < (_horizontalScrollPosition + availableWidth))))){
visibleColumns.push(_local5);
};
_local9 = (_local9 + _local5.width);
_local3++;
};
};
};
if (horizontalScrollPolicy == ScrollPolicy.OFF){
_local10 = 0;
_local11 = 0;
_local2 = visibleColumns.length;
_local3 = 0;
while (_local3 < _local2) {
_local5 = (visibleColumns[_local3] as DataGridColumn);
if (_local5.resizable){
if (!isNaN(_local5.explicitWidth)){
_local11 = (_local11 + _local5.width);
} else {
_local10++;
_local11 = (_local11 + _local5.minWidth);
};
} else {
_local11 = (_local11 + _local5.width);
};
_local4 = (_local4 + _local5.width);
_local3++;
};
_local13 = availableWidth;
if ((((availableWidth > _local11)) && (_local10))){
_local2 = visibleColumns.length;
_local3 = 0;
while (_local3 < _local2) {
_local5 = (visibleColumns[_local3] as DataGridColumn);
if (((_local5.resizable) && (isNaN(_local5.explicitWidth)))){
_local6 = _local5;
if (_local4 > availableWidth){
_local12 = ((_local6.width - _local6.minWidth) / (_local4 - _local11));
} else {
_local12 = (_local6.width / _local4);
};
_local7 = (_local6.width - ((_local4 - availableWidth) * _local12));
_local14 = _local5.minWidth;
_local5.setWidth(Math.max(_local7, _local14));
};
_local13 = (_local13 - _local5.width);
_local3++;
};
if (((_local13) && (_local6))){
_local6.setWidth((_local6.width + _local13));
};
} else {
_local2 = visibleColumns.length;
_local3 = 0;
while (_local3 < _local2) {
_local6 = (visibleColumns[_local3] as DataGridColumn);
_local12 = (_local6.width / _local4);
_local7 = (availableWidth * _local12);
_local6.setWidth(_local7);
_local6.explicitWidth = NaN;
_local13 = (_local13 - _local7);
_local3++;
};
if (((_local13) && (_local6))){
_local6.setWidth((_local6.width + _local13));
};
};
};
}
public function set showHeaders(_arg1:Boolean):void{
_showHeaders = _arg1;
invalidate(InvalidationType.SIZE);
}
override protected function initializeAccessibility():void{
if (DataGrid.createAccessibilityImplementation != null){
DataGrid.createAccessibilityImplementation(this);
};
}
public function getColumnAt(_arg1:uint):DataGridColumn{
return ((_columns[_arg1] as DataGridColumn));
}
public function get rowHeight():Number{
return (_rowHeight);
}
public function set columns(_arg1:Array):void{
var _local2:uint;
removeCellRenderers();
_columns = [];
_local2 = 0;
while (_local2 < _arg1.length) {
addColumn(_arg1[_local2]);
_local2++;
};
}
public function get editedItemRenderer():ICellRenderer{
if (!itemEditorInstance){
return (null);
};
return (getCellRendererAt(actualRowIndex, actualColIndex));
}
public function get columns():Array{
return (_columns.slice(0));
}
public function spaceColumnsEqually():void{
var _local1:Number;
var _local2:int;
var _local3:DataGridColumn;
drawNow();
if (displayableColumns.length > 0){
_local1 = (availableWidth / displayableColumns.length);
_local2 = 0;
while (_local2 < displayableColumns.length) {
_local3 = (displayableColumns[_local2] as DataGridColumn);
_local3.width = _local1;
_local2++;
};
invalidate(InvalidationType.SIZE);
columnsInvalid = true;
};
}
public static function getStyleDefinition():Object{
return (mergeStyles(defaultStyles, SelectableList.getStyleDefinition(), ScrollBar.getStyleDefinition()));
}
}
}//package fl.controls
Section 13
//LabelButton (fl.controls.LabelButton)
package fl.controls {
import fl.core.*;
import flash.display.*;
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 14
//List (fl.controls.List)
package fl.controls {
import fl.controls.listClasses.*;
import fl.core.*;
import flash.display.*;
import flash.events.*;
import fl.managers.*;
import flash.utils.*;
import flash.geom.*;
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 15
//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 16
//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 17
//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 18
//SelectableList (fl.controls.SelectableList)
package fl.controls {
import fl.controls.listClasses.*;
import fl.core.*;
import flash.display.*;
import flash.events.*;
import fl.data.*;
import fl.managers.*;
import fl.events.*;
import flash.utils.*;
import fl.containers.*;
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 19
//TextArea (fl.controls.TextArea)
package fl.controls {
import fl.core.*;
import flash.display.*;
import flash.events.*;
import fl.managers.*;
import fl.events.*;
import flash.text.*;
import flash.system.*;
import flash.ui.*;
public class TextArea extends UIComponent implements IFocusManagerComponent {
protected var _html:Boolean;// = false
protected var _verticalScrollBar:UIScrollBar;
protected var _savedHTML:String;
protected var background:DisplayObject;
protected var _horizontalScrollBar:UIScrollBar;
protected var _horizontalScrollPolicy:String;// = "auto"
protected var _editable:Boolean;// = true
protected var textHasChanged:Boolean;// = false
public var textField:TextField;
protected var _wordWrap:Boolean;// = true
protected var _verticalScrollPolicy:String;// = "auto"
protected static const SCROLL_BAR_STYLES:Object = {downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", 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 = {upSkin:"TextArea_upSkin", disabledSkin:"TextArea_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:3, embedFonts:false};
public static var createAccessibilityImplementation:Function;
public function TextArea(){
_editable = true;
_wordWrap = true;
_horizontalScrollPolicy = ScrollPolicy.AUTO;
_verticalScrollPolicy = ScrollPolicy.AUTO;
_html = false;
textHasChanged = false;
super();
}
override public function drawFocus(_arg1:Boolean):void{
if (focusTarget != null){
focusTarget.drawFocus(_arg1);
return;
};
super.drawFocus(_arg1);
}
public function set imeMode(_arg1:String):void{
_imeMode = _arg1;
}
protected function handleWheel(_arg1:MouseEvent):void{
if (((!(enabled)) || (!(_verticalScrollBar.visible)))){
return;
};
_verticalScrollBar.scrollPosition = (_verticalScrollBar.scrollPosition - (_arg1.delta * _verticalScrollBar.lineScrollSize));
dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, (_arg1.delta * _verticalScrollBar.lineScrollSize), _verticalScrollBar.scrollPosition));
}
public function get verticalScrollPosition():Number{
return (textField.scrollV);
}
override protected function isOurFocus(_arg1:DisplayObject):Boolean{
return ((((_arg1 == textField)) || (super.isOurFocus(_arg1))));
}
public function set verticalScrollPosition(_arg1:Number):void{
drawNow();
textField.scrollV = _arg1;
}
protected function handleKeyDown(_arg1:KeyboardEvent):void{
if (_arg1.keyCode == Keyboard.ENTER){
dispatchEvent(new ComponentEvent(ComponentEvent.ENTER, true));
};
}
public function set text(_arg1:String):void{
if (((componentInspectorSetting) && ((_arg1 == "")))){
return;
};
textField.text = _arg1;
_html = false;
invalidate(InvalidationType.DATA);
invalidate(InvalidationType.STYLES);
textHasChanged = true;
}
protected function updateTextFieldType():void{
textField.type = (((enabled) && (_editable))) ? TextFieldType.INPUT : TextFieldType.DYNAMIC;
textField.selectable = enabled;
textField.wordWrap = _wordWrap;
textField.multiline = true;
}
public function get selectionEndIndex():int{
return (textField.selectionEndIndex);
}
public function get editable():Boolean{
return (_editable);
}
override protected function focusInHandler(_arg1:FocusEvent):void{
var _local2:IFocusManager;
setIMEMode(true);
if (_arg1.target == this){
stage.focus = textField;
};
_local2 = focusManager;
if (_local2){
if (editable){
_local2.showFocusIndicator = true;
};
_local2.defaultButtonEnabled = false;
};
super.focusInHandler(_arg1);
if (editable){
setIMEMode(true);
};
}
public function get wordWrap():Boolean{
return (_wordWrap);
}
public function get selectionBeginIndex():int{
return (textField.selectionBeginIndex);
}
public function get horizontalScrollBar():UIScrollBar{
return (_horizontalScrollBar);
}
public function set alwaysShowSelection(_arg1:Boolean):void{
textField.alwaysShowSelection = _arg1;
}
override public function set enabled(_arg1:Boolean):void{
super.enabled = _arg1;
mouseChildren = enabled;
invalidate(InvalidationType.STATE);
}
protected function setEmbedFont(){
var _local1:Object;
_local1 = getStyleValue("embedFonts");
if (_local1 != null){
textField.embedFonts = _local1;
};
}
public function get horizontalScrollPosition():Number{
return (textField.scrollH);
}
public function set condenseWhite(_arg1:Boolean):void{
textField.condenseWhite = _arg1;
invalidate(InvalidationType.DATA);
}
public function get horizontalScrollPolicy():String{
return (_horizontalScrollPolicy);
}
public function set displayAsPassword(_arg1:Boolean):void{
textField.displayAsPassword = _arg1;
}
public function get maxVerticalScrollPosition():int{
return (textField.maxScrollV);
}
public function set horizontalScrollPosition(_arg1:Number):void{
drawNow();
textField.scrollH = _arg1;
}
public function get textHeight():Number{
drawNow();
return (textField.textHeight);
}
public function get textWidth():Number{
drawNow();
return (textField.textWidth);
}
public function get restrict():String{
return (textField.restrict);
}
public function set editable(_arg1:Boolean):void{
_editable = _arg1;
invalidate(InvalidationType.STATE);
}
protected function updateScrollBars(){
_horizontalScrollBar.update();
_verticalScrollBar.update();
_verticalScrollBar.enabled = enabled;
_horizontalScrollBar.enabled = enabled;
_horizontalScrollBar.drawNow();
_verticalScrollBar.drawNow();
}
public function get maxChars():int{
return (textField.maxChars);
}
public function get length():Number{
return (textField.text.length);
}
public function set wordWrap(_arg1:Boolean):void{
_wordWrap = _arg1;
invalidate(InvalidationType.STATE);
}
public function get verticalScrollPolicy():String{
return (_verticalScrollPolicy);
}
public function getLineMetrics(_arg1:int):TextLineMetrics{
return (textField.getLineMetrics(_arg1));
}
public function get imeMode():String{
return (IME.conversionMode);
}
protected function handleScroll(_arg1:ScrollEvent):void{
dispatchEvent(_arg1);
}
override protected function focusOutHandler(_arg1:FocusEvent):void{
var _local2:IFocusManager;
_local2 = focusManager;
if (_local2){
_local2.defaultButtonEnabled = true;
};
setSelection(0, 0);
super.focusOutHandler(_arg1);
if (editable){
setIMEMode(false);
};
}
protected function delayedLayoutUpdate(_arg1:Event):void{
if (textHasChanged){
textHasChanged = false;
drawLayout();
return;
};
removeEventListener(Event.ENTER_FRAME, delayedLayoutUpdate);
}
public function set htmlText(_arg1:String):void{
if (((componentInspectorSetting) && ((_arg1 == "")))){
return;
};
if (_arg1 == ""){
text = "";
return;
};
_html = true;
_savedHTML = _arg1;
textField.htmlText = _arg1;
invalidate(InvalidationType.DATA);
invalidate(InvalidationType.STYLES);
textHasChanged = true;
}
public function get text():String{
return (textField.text);
}
public function get verticalScrollBar():UIScrollBar{
return (_verticalScrollBar);
}
override public function get enabled():Boolean{
return (super.enabled);
}
public function get condenseWhite():Boolean{
return (textField.condenseWhite);
}
public function set horizontalScrollPolicy(_arg1:String):void{
_horizontalScrollPolicy = _arg1;
invalidate(InvalidationType.SIZE);
}
public function get displayAsPassword():Boolean{
return (textField.displayAsPassword);
}
override protected function draw():void{
if (isInvalid(InvalidationType.STATE)){
updateTextFieldType();
};
if (isInvalid(InvalidationType.STYLES)){
setStyles();
setEmbedFont();
};
if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){
drawTextFormat();
drawBackground();
invalidate(InvalidationType.SIZE, false);
};
if (isInvalid(InvalidationType.SIZE, InvalidationType.DATA)){
drawLayout();
};
super.draw();
}
protected function handleTextInput(_arg1:TextEvent):void{
_arg1.stopPropagation();
dispatchEvent(new TextEvent(TextEvent.TEXT_INPUT, true, false, _arg1.text));
}
override protected function configUI():void{
super.configUI();
tabChildren = true;
textField = new TextField();
addChild(textField);
updateTextFieldType();
_verticalScrollBar = new UIScrollBar();
_verticalScrollBar.name = "V";
_verticalScrollBar.visible = false;
_verticalScrollBar.focusEnabled = false;
copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES);
_verticalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true);
addChild(_verticalScrollBar);
_horizontalScrollBar = new UIScrollBar();
_horizontalScrollBar.name = "H";
_horizontalScrollBar.visible = false;
_horizontalScrollBar.focusEnabled = false;
_horizontalScrollBar.direction = ScrollBarDirection.HORIZONTAL;
copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES);
_horizontalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true);
addChild(_horizontalScrollBar);
textField.addEventListener(TextEvent.TEXT_INPUT, handleTextInput, false, 0, true);
textField.addEventListener(Event.CHANGE, handleChange, false, 0, true);
textField.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown, false, 0, true);
_horizontalScrollBar.scrollTarget = textField;
_verticalScrollBar.scrollTarget = textField;
addEventListener(MouseEvent.MOUSE_WHEEL, handleWheel, false, 0, true);
}
protected function setTextSize(_arg1:Number, _arg2:Number, _arg3:Number):void{
var _local4:Number;
var _local5:Number;
_local4 = (_arg1 - (_arg3 * 2));
_local5 = (_arg2 - (_arg3 * 2));
if (_local4 != textField.width){
textField.width = _local4;
};
if (_local5 != textField.height){
textField.height = _local5;
};
}
public function appendText(_arg1:String):void{
textField.appendText(_arg1);
invalidate(InvalidationType.DATA);
}
protected function needVScroll():Boolean{
if (_verticalScrollPolicy == ScrollPolicy.OFF){
return (false);
};
if (_verticalScrollPolicy == ScrollPolicy.ON){
return (true);
};
return ((textField.maxScrollV > 1));
}
public function setSelection(_arg1:int, _arg2:int):void{
textField.setSelection(_arg1, _arg2);
}
public function get alwaysShowSelection():Boolean{
return (textField.alwaysShowSelection);
}
public function get htmlText():String{
return (textField.htmlText);
}
public function set restrict(_arg1:String):void{
if (((componentInspectorSetting) && ((_arg1 == "")))){
_arg1 = null;
};
textField.restrict = _arg1;
}
protected function drawBackground():void{
var _local1:DisplayObject;
var _local2:String;
_local1 = background;
_local2 = (enabled) ? "upSkin" : "disabledSkin";
background = getDisplayObjectInstance(getStyleValue(_local2));
if (background != null){
addChildAt(background, 0);
};
if (((((!((_local1 == null))) && (!((_local1 == background))))) && (contains(_local1)))){
removeChild(_local1);
};
}
public function set maxChars(_arg1:int):void{
textField.maxChars = _arg1;
}
public function get maxHorizontalScrollPosition():int{
return (textField.maxScrollH);
}
protected function drawLayout():void{
var _local1:Number;
var _local2:Number;
var _local3:Boolean;
var _local4:Number;
var _local5:Boolean;
_local1 = Number(getStyleValue("textPadding"));
textField.x = (textField.y = _local1);
background.width = width;
background.height = height;
_local2 = height;
_local3 = needVScroll();
_local4 = (width - (_local3) ? _verticalScrollBar.width : 0);
_local5 = needHScroll();
if (_local5){
_local2 = (_local2 - _horizontalScrollBar.height);
};
setTextSize(_local4, _local2, _local1);
if (((((_local5) && (!(_local3)))) && (needVScroll()))){
_local3 = true;
_local4 = (_local4 - _verticalScrollBar.width);
setTextSize(_local4, _local2, _local1);
};
if (_local3){
_verticalScrollBar.visible = true;
_verticalScrollBar.x = (width - _verticalScrollBar.width);
_verticalScrollBar.height = _local2;
_verticalScrollBar.visible = true;
_verticalScrollBar.enabled = enabled;
} else {
_verticalScrollBar.visible = false;
};
if (_local5){
_horizontalScrollBar.visible = true;
_horizontalScrollBar.y = (height - _horizontalScrollBar.height);
_horizontalScrollBar.width = _local4;
_horizontalScrollBar.visible = true;
_horizontalScrollBar.enabled = enabled;
} else {
_horizontalScrollBar.visible = false;
};
updateScrollBars();
addEventListener(Event.ENTER_FRAME, delayedLayoutUpdate, false, 0, true);
}
protected function setStyles():void{
copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES);
copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES);
}
protected function needHScroll():Boolean{
if (_horizontalScrollPolicy == ScrollPolicy.OFF){
return (false);
};
if (_horizontalScrollPolicy == ScrollPolicy.ON){
return (true);
};
return ((textField.maxScrollH > 0));
}
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();
if (_html){
textField.htmlText = _savedHTML;
};
}
public function set verticalScrollPolicy(_arg1:String):void{
_verticalScrollPolicy = _arg1;
invalidate(InvalidationType.SIZE);
}
protected function handleChange(_arg1:Event):void{
_arg1.stopPropagation();
dispatchEvent(new Event(Event.CHANGE, true));
invalidate(InvalidationType.DATA);
}
public static function getStyleDefinition():Object{
return (UIComponent.mergeStyles(defaultStyles, ScrollBar.getStyleDefinition()));
}
}
}//package fl.controls
Section 20
//TextInput (fl.controls.TextInput)
package fl.controls {
import fl.core.*;
import flash.display.*;
import flash.events.*;
import fl.managers.*;
import fl.events.*;
import flash.text.*;
import flash.ui.*;
public class TextInput extends UIComponent implements IFocusManagerComponent {
protected var _html:Boolean;// = false
protected var _savedHTML:String;
protected var background:DisplayObject;
protected var _editable:Boolean;// = true
public var textField:TextField;
private static var defaultStyles:Object = {upSkin:"TextInput_upSkin", disabledSkin:"TextInput_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:0, embedFonts:false};
public static var createAccessibilityImplementation:Function;
public function TextInput(){
_editable = true;
_html = false;
super();
}
override public function drawFocus(_arg1:Boolean):void{
if (focusTarget != null){
focusTarget.drawFocus(_arg1);
return;
};
super.drawFocus(_arg1);
}
public function set imeMode(_arg1:String):void{
_imeMode = _arg1;
}
override protected function isOurFocus(_arg1:DisplayObject):Boolean{
return ((((_arg1 == textField)) || (super.isOurFocus(_arg1))));
}
protected function handleKeyDown(_arg1:KeyboardEvent):void{
if (_arg1.keyCode == Keyboard.ENTER){
dispatchEvent(new ComponentEvent(ComponentEvent.ENTER, true));
};
}
public function set text(_arg1:String):void{
textField.text = _arg1;
_html = false;
invalidate(InvalidationType.DATA);
invalidate(InvalidationType.STYLES);
}
protected function updateTextFieldType():void{
textField.type = (((enabled) && (editable))) ? TextFieldType.INPUT : TextFieldType.DYNAMIC;
textField.selectable = enabled;
}
public function get selectionEndIndex():int{
return (textField.selectionEndIndex);
}
public function get editable():Boolean{
return (_editable);
}
override protected function focusInHandler(_arg1:FocusEvent):void{
var _local2:IFocusManager;
if (_arg1.target == this){
stage.focus = textField;
};
_local2 = focusManager;
if (((editable) && (_local2))){
_local2.showFocusIndicator = true;
if (((textField.selectable) && ((textField.selectionBeginIndex == textField.selectionBeginIndex)))){
setSelection(0, textField.length);
};
};
super.focusInHandler(_arg1);
if (editable){
setIMEMode(true);
};
}
public function get selectionBeginIndex():int{
return (textField.selectionBeginIndex);
}
public function set alwaysShowSelection(_arg1:Boolean):void{
textField.alwaysShowSelection = _arg1;
}
override public function set enabled(_arg1:Boolean):void{
super.enabled = _arg1;
updateTextFieldType();
}
protected function setEmbedFont(){
var _local1:Object;
_local1 = getStyleValue("embedFonts");
if (_local1 != null){
textField.embedFonts = _local1;
};
}
public function get horizontalScrollPosition():int{
return (textField.scrollH);
}
public function set condenseWhite(_arg1:Boolean):void{
textField.condenseWhite = _arg1;
}
public function set displayAsPassword(_arg1:Boolean):void{
textField.displayAsPassword = _arg1;
}
public function set horizontalScrollPosition(_arg1:int):void{
textField.scrollH = _arg1;
}
public function get restrict():String{
return (textField.restrict);
}
public function get textWidth():Number{
return (textField.textWidth);
}
public function get textHeight():Number{
return (textField.textHeight);
}
public function set editable(_arg1:Boolean):void{
_editable = _arg1;
updateTextFieldType();
}
public function get maxChars():int{
return (textField.maxChars);
}
public function get length():int{
return (textField.length);
}
public function getLineMetrics(_arg1:int):TextLineMetrics{
return (textField.getLineMetrics(_arg1));
}
public function get imeMode():String{
return (_imeMode);
}
override protected function focusOutHandler(_arg1:FocusEvent):void{
super.focusOutHandler(_arg1);
if (editable){
setIMEMode(false);
};
}
public function set htmlText(_arg1:String):void{
if (_arg1 == ""){
text = "";
return;
};
_html = true;
_savedHTML = _arg1;
textField.htmlText = _arg1;
invalidate(InvalidationType.DATA);
invalidate(InvalidationType.STYLES);
}
public function get text():String{
return (textField.text);
}
override public function get enabled():Boolean{
return (super.enabled);
}
public function get condenseWhite():Boolean{
return (textField.condenseWhite);
}
public function get alwaysShowSelection():Boolean{
return (textField.alwaysShowSelection);
}
override protected function draw():void{
var _local1:Object;
if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){
drawTextFormat();
drawBackground();
_local1 = getStyleValue("embedFonts");
if (_local1 != null){
textField.embedFonts = _local1;
};
invalidate(InvalidationType.SIZE, false);
};
if (isInvalid(InvalidationType.SIZE)){
drawLayout();
};
super.draw();
}
protected function handleTextInput(_arg1:TextEvent):void{
_arg1.stopPropagation();
dispatchEvent(new TextEvent(TextEvent.TEXT_INPUT, true, false, _arg1.text));
}
override protected function configUI():void{
super.configUI();
tabChildren = true;
textField = new TextField();
addChild(textField);
updateTextFieldType();
textField.addEventListener(TextEvent.TEXT_INPUT, handleTextInput, false, 0, true);
textField.addEventListener(Event.CHANGE, handleChange, false, 0, true);
textField.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown, false, 0, true);
}
public function setSelection(_arg1:int, _arg2:int):void{
textField.setSelection(_arg1, _arg2);
}
public function get displayAsPassword():Boolean{
return (textField.displayAsPassword);
}
public function appendText(_arg1:String):void{
textField.appendText(_arg1);
}
public function set restrict(_arg1:String):void{
if (((componentInspectorSetting) && ((_arg1 == "")))){
_arg1 = null;
};
textField.restrict = _arg1;
}
public function get htmlText():String{
return (textField.htmlText);
}
protected function drawBackground():void{
var _local1:DisplayObject;
var _local2:String;
_local1 = background;
_local2 = (enabled) ? "upSkin" : "disabledSkin";
background = getDisplayObjectInstance(getStyleValue(_local2));
if (background == null){
return;
};
addChildAt(background, 0);
if (((((!((_local1 == null))) && (!((_local1 == background))))) && (contains(_local1)))){
removeChild(_local1);
};
}
override public function setFocus():void{
stage.focus = textField;
}
protected function drawLayout():void{
var _local1:Number;
_local1 = Number(getStyleValue("textPadding"));
if (background != null){
background.width = width;
background.height = height;
};
textField.width = (width - (2 * _local1));
textField.height = (height - (2 * _local1));
textField.x = (textField.y = _local1);
}
public function set maxChars(_arg1:int):void{
textField.maxChars = _arg1;
}
public function get maxHorizontalScrollPosition():int{
return (textField.maxScrollH);
}
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();
if (_html){
textField.htmlText = _savedHTML;
};
}
protected function handleChange(_arg1:Event):void{
_arg1.stopPropagation();
dispatchEvent(new Event(Event.CHANGE, true));
}
public static function getStyleDefinition():Object{
return (defaultStyles);
}
}
}//package fl.controls
Section 21
//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 22
//ComponentShim (fl.core.ComponentShim)
package fl.core {
import flash.display.*;
public dynamic class ComponentShim extends MovieClip {
}
}//package fl.core
Section 23
//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 24
//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 25
//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 26
//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 27
//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 28
//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 29
//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 30
//DataGridEvent (fl.events.DataGridEvent)
package fl.events {
import flash.events.*;
public class DataGridEvent extends ListEvent {
protected var _itemRenderer:Object;
protected var _reason:String;
protected var _dataField:String;
public static const ITEM_EDIT_BEGIN:String = "itemEditBegin";
public static const ITEM_EDIT_END:String = "itemEditEnd";
public static const ITEM_EDIT_BEGINNING:String = "itemEditBeginning";
public static const HEADER_RELEASE:String = "headerRelease";
public static const ITEM_FOCUS_IN:String = "itemFocusIn";
public static const ITEM_FOCUS_OUT:String = "itemFocusOut";
public static const COLUMN_STRETCH:String = "columnStretch";
public function DataGridEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:int=-1, _arg5:int=-1, _arg6:Object=null, _arg7:String=null, _arg8:String=null){
super(_arg1, _arg2, _arg3, _arg4, _arg5);
_itemRenderer = _arg6;
_dataField = _arg7;
_reason = _arg8;
}
public function get reason():String{
return (_reason);
}
public function set dataField(_arg1:String):void{
_dataField = _arg1;
}
override public function toString():String{
return (formatToString("DataGridEvent", "type", "bubbles", "cancelable", "columnIndex", "rowIndex", "itemRenderer", "dataField", "reason"));
}
public function get dataField():String{
return (_dataField);
}
override public function clone():Event{
return (new DataGridEvent(type, bubbles, cancelable, columnIndex, int(rowIndex), _itemRenderer, _dataField, _reason));
}
public function get itemRenderer():Object{
return (_itemRenderer);
}
}
}//package fl.events
Section 31
//DataGridEventReason (fl.events.DataGridEventReason)
package fl.events {
public final class DataGridEventReason {
public static const OTHER:String = "other";
public static const CANCELLED:String = "cancelled";
public static const NEW_COLUMN:String = "newColumn";
public static const NEW_ROW:String = "newRow";
}
}//package fl.events
Section 32
//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 33
//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 34
//FocusManager (fl.managers.FocusManager)
package fl.managers {
import fl.core.*;
import fl.controls.*;
import flash.display.*;
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 35
//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 36
//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 37
//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 38
//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 39
//SegPixel (pixelEffects.pixels.SegPixel)
package pixelEffects.pixels {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
public class SegPixel extends Sprite {
private var bitmap:Bitmap;
private var glintFrames;// = 20
private var pull:Number;
private var finalX:Number;
private var glintCounter:Number;
private var finalY:Number;
private var src:BitmapData;
private var product:BitmapData;
public function SegPixel(_arg1:BitmapData, _arg2:BitmapData, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number):void{
glintFrames = 20;
glintCounter = glintFrames;
super();
this.finalX = _arg7;
this.finalY = _arg8;
this.pull = _arg9;
this.src = _arg1;
this.product = _arg2;
alpha = 0;
bitmap = new Bitmap(_arg1);
addChild(bitmap);
x = _arg3;
y = _arg4;
scaleX = _arg5;
scaleY = _arg6;
addEventListener(Event.ENTER_FRAME, go);
}
private function settle():void{
var _local1:Point;
x = finalX;
y = finalY;
scaleX = (scaleY = 1);
alpha = 1;
removeEventListener(Event.ENTER_FRAME, go);
addEventListener(Event.ENTER_FRAME, glint);
_local1 = new Point(finalX, finalY);
product.copyPixels(src, src.rect, _local1);
src.fillRect(src.rect, 0xFFFFFF);
alpha = 0.25;
}
private function remove():void{
removeEventListener(Event.ENTER_FRAME, glint);
removeEventListener(Event.ENTER_FRAME, go);
src.dispose();
removeChild(bitmap);
parent.removeChild(this);
}
private function go(_arg1:Event):void{
if ((((Math.abs((x - finalX)) < 1)) && ((Math.abs((y - finalY)) < 1)))){
settle();
} else {
x = (x - ((x - finalX) * pull));
y = (y - ((y - finalY) * pull));
scaleX = (scaleX - ((scaleX - 1) * pull));
scaleY = (scaleY - ((scaleY - 1) * pull));
alpha = (alpha - ((alpha - 1) * pull));
};
}
private function glint(_arg1:Event):void{
glintCounter--;
if (glintCounter > 0){
alpha = ((glintCounter / glintFrames) / 2);
} else {
remove();
};
}
}
}//package pixelEffects.pixels
Section 40
//PixelEffect1 (pixelEffects.PixelEffect1)
package pixelEffects {
import flash.display.*;
import flash.utils.*;
import pixelEffects.pixels.*;
import flash.geom.*;
public class PixelEffect1 extends Sprite {
private var segArray:Array;
private var productBitmap:Bitmap;
private var scaleRange:Number;
private var bgColor:Number;
private var drawInterval:uint;
private var pull:Number;
private var spread:Number;
private var pixels:Number;
private var interval:Number;
private var src:BitmapData;
private var product:BitmapData;
public function PixelEffect1(_arg1:BitmapData, _arg2:Number=0, _arg3:Number=500, _arg4:Number=0.15, _arg5:Number=9, _arg6:Number=15, _arg7:Number=50):void{
this.src = _arg1;
this.spread = _arg3;
this.pull = _arg4;
this.pixels = _arg5;
this.scaleRange = _arg6;
this.interval = _arg7;
product = new BitmapData(_arg1.width, _arg1.height, false, _arg2);
productBitmap = new Bitmap(product);
addChild(productBitmap);
segArray = createSegArray();
drawInterval = setInterval(drawPixels, _arg7);
}
private function finishDrawing():void{
clearInterval(drawInterval);
}
private function createSegArray():Array{
var _local1:Array;
var _local2:*;
var _local3:*;
_local1 = new Array();
_local2 = 0;
while ((_local2 * pixels) < src.width) {
_local1[_local2] = new Array();
_local3 = 0;
while ((_local3 * pixels) < src.height) {
_local1[_local2][_local3] = new Point((_local2 * pixels), (_local3 * pixels));
_local3++;
};
_local2++;
};
return (_local1);
}
private function drawPixels(){
drawPixel();
drawPixel();
drawPixel();
}
private function remove():void{
src.dispose();
product.dispose();
removeChild(productBitmap);
}
private function drawPixel(){
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:BitmapData;
var _local6:Rectangle;
var _local7:Point;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:SegPixel;
if (segArray.length > 0){
_local1 = Math.floor((Math.random() * segArray.length));
_local2 = Math.floor((Math.random() * segArray[_local1].length));
_local3 = segArray[_local1][_local2].x;
_local4 = segArray[_local1][_local2].y;
segArray[_local1].splice(_local2, 1);
if (segArray[_local1].length <= 0){
segArray.splice(_local1, 1);
};
_local5 = new BitmapData(pixels, pixels, false, bgColor);
_local6 = new Rectangle(_local3, _local4, pixels, pixels);
_local7 = new Point(0, 0);
_local5.copyPixels(src, _local6, _local7);
_local8 = (((_local3 + (Math.random() * spread)) - (spread / 2)) - ((pixels * scaleRange) / 2));
_local9 = (((_local4 + (Math.random() * spread)) - (spread / 2)) - ((pixels * scaleRange) / 2));
_local10 = (Math.random() * scaleRange);
_local11 = (Math.random() * scaleRange);
_local12 = new SegPixel(_local5, product, _local8, _local9, _local10, _local11, _local3, _local4, pull);
addChild(_local12);
} else {
finishDrawing();
};
}
}
}//package pixelEffects
Section 41
//chatCover_89 (volly_fla.chatCover_89)
package volly_fla {
import flash.display.*;
public dynamic class chatCover_89 extends MovieClip {
public function chatCover_89(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package volly_fla
Section 42
//export_2 (volly_fla.export_2)
package volly_fla {
import flash.display.*;
public dynamic class export_2 extends MovieClip {
public function export_2(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package volly_fla
Section 43
//logo_mc_61 (volly_fla.logo_mc_61)
package volly_fla {
import flash.display.*;
import pixelEffects.*;
public dynamic class logo_mc_61 extends MovieClip {
public var logoAnim:PixelEffect1;
public function logo_mc_61(){
addFrameScript(0, frame1);
}
function frame1(){
logoAnim = new PixelEffect1(new JiggminLogo(300, 87));
addChild(logoAnim);
}
}
}//package volly_fla
Section 44
//logoAnim_59 (volly_fla.logoAnim_59)
package volly_fla {
import flash.display.*;
import flash.media.*;
import flash.events.*;
import flash.text.*;
import flash.utils.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.system.*;
import flash.ui.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.printing.*;
import flash.xml.*;
public dynamic class logoAnim_59 extends MovieClip {
public var logo_mc:MovieClip;
public function logoAnim_59(){
addFrameScript(356, frame357);
}
function frame357(){
GetMain.main.changePage(new LoginPage());
stop();
}
}
}//package volly_fla
Section 45
//MainTimeline (volly_fla.MainTimeline)
package volly_fla {
import flash.display.*;
import flash.media.*;
import flash.events.*;
import flash.text.*;
import flash.utils.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.system.*;
import flash.ui.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.printing.*;
import flash.xml.*;
public dynamic class MainTimeline extends MovieClip {
public var pageHolder:MovieClip;
public var doubleSlash:Number;
public var gameURL:String;
public var server:String;
public var playerList:PlayerList;
public var goodVersion:Boolean;
public var i;
public var chat:Chat;
public var alertHolder:MovieClip;
public var deleteableScreen:MovieClip;
public var allowedArray:Array;
public var protocol:String;
public var testURL:String;
public var me:MePlayer;
public var socket:BounceSocket;
public var serverID:Number;
public var swfURL:String;
public var gameVersion:String;
public var muteButton:SimpleButton;
public var preloaderHolder:MovieClip;
public var foundAllowedURL:Boolean;
public var curPage:MovieClip;
public function MainTimeline(){
addFrameScript(0, frame1, 4, frame5, 10, frame11);
}
public function preload(){
var _local1:Preloader;
_local1 = new Preloader(500, 350);
preloaderHolder.addChild(_local1);
}
public function pressMute(_arg1:MouseEvent):void{
Sounds.pressMute();
}
public function changePage(_arg1):void{
curPage.remove();
pageHolder.removeChild(curPage);
curPage = _arg1;
pageHolder.addChild(curPage);
}
function frame1(){
stop();
GetMain.main = this;
stage.showDefaultContextMenu = false;
goodVersion = testVersion();
if (goodVersion){
allowedArray = new Array("kongregate.com", "uploads.ungrounded.net");
swfURL = stage.loaderInfo.url;
protocol = swfURL.substr(0, swfURL.indexOf(":"));
if (protocol == "file"){
preload();
} else {
if (protocol == "http"){
doubleSlash = swfURL.indexOf("//");
server = swfURL.substr((doubleSlash + 2), ((swfURL.indexOf("/", (doubleSlash + 2)) - doubleSlash) - 2));
server = server.toLowerCase();
if (server.indexOf("www.") != -1){
server = server.substr((server.indexOf("www.") + 4), server.length);
};
foundAllowedURL = false;
i = 0;
while (i < allowedArray.length) {
testURL = allowedArray[i];
if (server.indexOf(testURL) != -1){
foundAllowedURL = true;
break;
};
i++;
};
if (foundAllowedURL){
preload();
} else {
showMochiad();
};
};
};
};
gameURL = server;
gameVersion = "1.0";
}
function frame5(){
gotoAndStop("pages");
}
function frame11(){
stop();
Security.loadPolicyFile("http://jiggmin2.com/crossdomain.xml");
curPage = new InitializePage();
pageHolder.addChild(curPage);
playerList = new PlayerList();
chat = new Chat();
serverID = Math.floor((Math.random() * 3));
muteButton.addEventListener(MouseEvent.CLICK, pressMute);
}
public function showMochiad(){
MochiAd.showPreGameAd({clip:root, id:"dd26032b0251f68a", res:"500x350"});
}
public function testVersion(){
var _local1:Boolean;
var _local2:Array;
var _local3:String;
var _local4:Array;
var _local5:Number;
var _local6:Number;
_local1 = true;
_local2 = Capabilities.version.split(" ");
_local3 = _local2[1];
_local4 = _local2[1].split(",");
_local5 = _local4[0];
_local6 = _local4[2];
if (_local5 <= 9){
if ((((_local5 == 9)) && ((_local6 < 45)))){
_local1 = false;
new AlertScreen(new VersionMessage());
};
} else {
_local1 = false;
};
return (_local1);
}
}
}//package volly_fla
Section 46
//paddleStuff_42 (volly_fla.paddleStuff_42)
package volly_fla {
import flash.display.*;
public dynamic class paddleStuff_42 extends MovieClip {
public var spin:MovieClip;
}
}//package volly_fla
Section 47
//scoreFlashAnim_56 (volly_fla.scoreFlashAnim_56)
package volly_fla {
import flash.display.*;
public dynamic class scoreFlashAnim_56 extends MovieClip {
public function scoreFlashAnim_56(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package volly_fla
Section 48
//scrollBar_66 (volly_fla.scrollBar_66)
package volly_fla {
import flash.display.*;
import flash.media.*;
import flash.events.*;
import flash.text.*;
import flash.utils.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.system.*;
import flash.ui.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.printing.*;
import flash.xml.*;
public dynamic class scrollBar_66 extends MovieClip {
public var yListStart:Number;
public var yMax:Number;
public var yMin:Number;
public var yTot:Number;
public var showHeight:Number;
public var stageRef:Stage;
public var main:MovieClip;
public var thumb:SimpleButton;
public var listHolder;
public function scrollBar_66(){
addFrameScript(0, frame1);
}
public function scrollThumb(_arg1:MouseEvent){
var _local2:Number;
var _local3:Point;
var _local4:Number;
var _local5:*;
_local2 = _arg1.stageY;
_local3 = new Point(0, _local2);
_local3 = globalToLocal(_local3);
thumb.y = (_local3.y - (thumb.height / 2));
if (thumb.y > yMax){
thumb.y = yMax;
};
if (thumb.y < yMin){
thumb.y = yMin;
};
_local4 = ((thumb.y - yMin) / yTot);
_local5 = (listHolder.height - showHeight);
if (_local5 < 0){
_local5 = 0;
};
listHolder.y = (yListStart - (_local4 * _local5));
listHolder.y = Math.round(listHolder.y);
}
public function stopScrolling(_arg1:MouseEvent){
stageRef.removeEventListener(MouseEvent.MOUSE_UP, stopScrolling);
stageRef.removeEventListener(MouseEvent.MOUSE_MOVE, scrollThumb);
}
function frame1(){
stop();
main = GetMain.main;
stageRef = stage;
listHolder = MovieClip(parent).listHolder;
yMin = 14;
yMax = 138;
yTot = (yMax - yMin);
showHeight = 204;
yListStart = listHolder.y;
thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumbDown);
}
public function thumbDown(_arg1:MouseEvent){
stageRef.addEventListener(MouseEvent.MOUSE_UP, stopScrolling);
stageRef.addEventListener(MouseEvent.MOUSE_MOVE, scrollThumb);
}
}
}//package volly_fla
Section 49
//spin_43 (volly_fla.spin_43)
package volly_fla {
import flash.display.*;
public dynamic class spin_43 extends MovieClip {
public function spin_43(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package volly_fla
Section 50
//title_mc_54 (volly_fla.title_mc_54)
package volly_fla {
import flash.display.*;
import flash.media.*;
import flash.events.*;
import flash.text.*;
import flash.utils.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.system.*;
import flash.ui.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.printing.*;
import flash.xml.*;
public dynamic class title_mc_54 extends MovieClip {
public var versionBox:TextField;
public function title_mc_54(){
addFrameScript(0, frame1);
}
function frame1(){
versionBox.text = ("v " + GetMain.main.gameVersion);
}
}
}//package volly_fla
Section 51
//yesNoButton_82 (volly_fla.yesNoButton_82)
package volly_fla {
import flash.display.*;
import flash.events.*;
public dynamic class yesNoButton_82 extends MovieClip {
public var noButton:SimpleButton;
public var outline_mc:MovieClip;
public var yesButton:SimpleButton;
public function yesNoButton_82(){
addFrameScript(0, frame1);
}
public function noButtonClick(_arg1:MouseEvent){
outline_mc.x = 61;
}
public function yesButtonClick(_arg1:MouseEvent){
outline_mc.x = -1;
}
function frame1(){
yesButton.addEventListener(MouseEvent.CLICK, yesButtonClick);
noButton.addEventListener(MouseEvent.CLICK, noButtonClick);
}
}
}//package volly_fla
Section 52
//AlertScreen (AlertScreen)
package {
import flash.display.*;
public class AlertScreen extends MovieClip {
public var contentHolder:MovieClip;
private var main:MovieClip;
public function AlertScreen(_arg1:MovieClip):void{
main = GetMain.main;
super();
addFrameScript(7, frame8, 15, frame16);
main.alertHolder.addChild(this);
contentHolder.addChild(_arg1);
}
function frame16(){
if (parent != null){
parent.removeChild(this);
};
}
function frame8(){
stop();
}
}
}//package
Section 53
//BadScore (BadScore)
package {
import flash.media.*;
public dynamic class BadScore extends Sound {
}
}//package
Section 54
//Ball (Ball)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class Ball extends MovieClip {
private var xVel:Number;
private var paddle2:Paddle;
private var paddle1:Paddle;
private var id:Number;
private var confirmSide:String;// = ""
private var side:String;// = ""
private var gravity:Number;// = 0.3
private var minY:Number;// = 0
private var maxStartVel:Number;// = 15
private var yVel:Number;
private var maxY:Number;// = 350
private var scoreTimeout:uint;
private var maxX:Number;// = 500
private var wait:Boolean;// = false
private var minX:Number;// = 0
private var bounceFric:Number;// = 0.98
private var radius:Number;// = 20
private var rotSpeed:Number;
private var correctionFrames:Number;// = 0
private var alphaFlicker:Number;// = 0.25
private var correctionY:Number;// = 0
private var correctionX:Number;// = 0
private var lastBounce:Number;// = 0
private var main:MovieClip;
private var hitDist:Number;
private var game:Game;
public function Ball(_arg1:Number, _arg2:Game, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Paddle, _arg8:Paddle):void{
minX = 0;
maxX = 500;
minY = 0;
maxY = 350;
alphaFlicker = 0.25;
rotSpeed = ((Math.random() * 6) - 3);
radius = 20;
gravity = 0.3;
maxStartVel = 15;
bounceFric = 0.98;
hitDist = ((65 / 2) + (40 / 2));
correctionFrames = 0;
correctionX = 0;
correctionY = 0;
main = GetMain.main;
side = "";
confirmSide = "";
wait = false;
lastBounce = 0;
super();
if (Math.random() > 0.5){
gotoAndStop("blue");
} else {
gotoAndStop("pink");
};
alpha = ((Math.random() * 0.5) + 0.5);
this.id = _arg1;
x = _arg3;
y = _arg4;
this.xVel = _arg5;
this.yVel = _arg6;
this.game = _arg2;
this.paddle1 = _arg7;
this.paddle2 = _arg8;
addEventListener(Event.ENTER_FRAME, go);
main.curPage.ballHolder.addChild(this);
}
public function getID():Number{
return (id);
}
public function testScore(){
if (((!((side == ""))) && (!((confirmSide == ""))))){
if (confirmSide == side){
game.score(this.side);
game.removeBall(this);
} else {
game.removeBall(this);
};
};
}
private function correct():void{
if (correctionFrames > 0){
correctionFrames--;
x = (x + correctionX);
y = (y + correctionY);
};
}
public function remove():void{
side = "";
confirmSide = "";
clearTimeout(scoreTimeout);
removeEventListener(Event.ENTER_FRAME, go);
if (parent != null){
parent.removeChild(this);
};
}
public function setBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number){
var _local7:Number;
var _local8:Number;
var _local9:*;
var _local10:Number;
var _local11:Number;
cancelEase();
_local7 = this.x;
_local8 = this.y;
this.x = _arg3;
this.y = _arg4;
this.xVel = _arg5;
this.yVel = _arg6;
_local9 = (_arg2 - _arg1);
if (_local9 < 25){
while (_local9 > 0) {
step();
_local9--;
};
wait = false;
side = "";
clearTimeout(scoreTimeout);
_local10 = (x - _local7);
_local11 = (y - _local8);
this.x = _local7;
this.y = _local8;
correctionFrames = 4;
correctionX = (_local10 / correctionFrames);
correctionY = (_local11 / correctionFrames);
correct();
};
}
private function cancelEase():void{
if (correctionFrames > 0){
x = (x + (correctionX * correctionFrames));
y = (y + (correctionY * correctionFrames));
};
correctionFrames = 0;
}
private function testHit(_arg1:Paddle){
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
_local2 = (x - _arg1.x);
_local3 = (y - _arg1.y);
_local4 = Maths.pythag(_local2, _local3);
if (_local4 < hitDist){
cancelEase();
bounce();
_local5 = (Maths.pythag(xVel, yVel) * 1.1);
_local6 = Math.atan2(_local3, _local2);
xVel = (Math.cos(_local6) * _local5);
yVel = (Math.sin(_local6) * _local5);
x = ((Math.cos(_local6) * hitDist) + _arg1.x);
y = ((Math.sin(_local6) * hitDist) + _arg1.y);
xVel = Math.round(xVel);
yVel = Math.round(yVel);
x = Math.round(x);
y = Math.round(y);
_arg1.bounce(this);
confirmSide = "";
_local7 = ((0.004 * x) - 1);
trace(("pan: " + _local7));
Sounds.startSound(new BounceSound(), 0.5, _local7);
};
}
public function sendPos():void{
main.socket.write(((((((((((("bounce`" + id) + "`") + game.getCurFrame()) + "`") + x) + "`") + y) + "`") + xVel) + "`") + yVel));
}
public function confirmScore(_arg1:String):void{
confirmSide = _arg1;
testScore();
}
private function step():void{
x = (x + xVel);
y = (y + yVel);
yVel = (yVel + gravity);
if ((x - radius) < minX){
cancelEase();
x = (minX + radius);
xVel = (xVel * -(bounceFric));
};
if ((x + radius) > maxX){
cancelEase();
x = (maxX - radius);
xVel = (xVel * -(bounceFric));
};
if ((y - radius) < minY){
cancelEase();
y = (minY + radius);
yVel = (yVel * -(bounceFric));
};
}
private function bounce(){
alpha = 1.25;
}
public function giveUp(){
game.removeBall(this);
}
public function score(_arg1:String):void{
this.side = _arg1;
main.socket.write(((("score`" + id) + "`") + _arg1));
scoreTimeout = setTimeout(giveUp, 5000);
testScore();
}
private function go(_arg1:Event):void{
var _local2:String;
if (!wait){
step();
correct();
testHit(paddle1);
testHit(paddle2);
if ((y - radius) > maxY){
wait = true;
_local2 = "left";
if (x < 250){
_local2 = "right";
};
score(_local2);
};
alpha = (alpha + ((Math.random() * alphaFlicker) - (alphaFlicker / 2)));
if (alpha > 1){
alpha = 1;
};
if (alpha < 0.5){
alpha = 0.5;
};
};
}
}
}//package
Section 55
//BallBitmap (BallBitmap)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.filters.*;
public class BallBitmap extends MovieClip {
var rect:Rectangle;
var bitmap:Bitmap;
var point:Point;
var bitmapData:BitmapData;
var target:MovieClip;
var blurFilter:BlurFilter;
public function BallBitmap(_arg1:MovieClip):void{
bitmapData = new BitmapData(500, 350, true, 0);
bitmap = new Bitmap(bitmapData);
blurFilter = new BlurFilter(4, 4, 1);
rect = bitmapData.rect;
point = new Point(0, 0);
super();
alpha = 0.3;
this.target = _arg1;
addChild(bitmap);
addEventListener(Event.ENTER_FRAME, go);
}
public function remove(){
removeEventListener(Event.ENTER_FRAME, go);
bitmapData.dispose();
parent.removeChild(this);
}
private function go(_arg1:Event){
bitmapData.draw(target);
bitmapData.applyFilter(bitmapData, rect, point, blurFilter);
bitmapData.scroll(0, -1);
}
}
}//package
Section 56
//BounceSocket (BounceSocket)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
public class BounceSocket extends Socket {
private var pass:String;
private var dead:Boolean;// = false
private var commandHandler:CommandHandler;
private var name:String;
private var main:MovieClip;
private var guest:Boolean;
private var startPingTime:Number;
private var EOL:String;
private var sendPingInterval:uint;
public function BounceSocket(_arg1:String, _arg2:String, _arg3:Boolean, _arg4:Number){
dead = false;
sendPingInterval = setInterval(sendPing, 29000);
EOL = String.fromCharCode(4);
commandHandler = new CommandHandler();
main = GetMain.main;
super();
this.name = _arg1;
this.pass = _arg2;
this.guest = _arg3;
addEventListener(Event.CLOSE, closeHandler);
addEventListener(Event.CONNECT, connectHandler);
addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);
connect("jiggmin2.com", _arg4);
}
private function connectHandler(_arg1:Event):void{
write(("set_version`" + main.gameVersion));
write(("set_url`" + main.gameURL));
if (guest == true){
write("guest_login`");
} else {
write(((("login`" + name) + "`") + pass));
};
}
public function sendPing(){
write("ping`");
startPingTime = new Date().time;
}
private function closeHandler(_arg1:Event):void{
new AlertScreen(new Message("Disconnected."));
remove();
}
private function ioErrorHandler(_arg1:IOErrorEvent):void{
new AlertScreen(new Message("Could not connect. This could be because: \n A: My server is broken. \n B: The internet is broken. \n C: Evil aliens."));
remove();
}
public function recievePing(){
var _local1:Number;
_local1 = (new Date().time - startPingTime);
write(("set_ping`" + _local1));
}
private function securityErrorHandler(_arg1:SecurityErrorEvent):void{
new AlertScreen(new Message(("securityErrorHandler: " + _arg1)));
}
public function remove():void{
if (dead == false){
dead = true;
GetMain.main.changePage(new LoginPage());
clearInterval(sendPingInterval);
removeEventListener(Event.CLOSE, closeHandler);
removeEventListener(Event.CONNECT, connectHandler);
removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
removeEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);
close();
commandHandler.remove();
};
}
private function socketDataHandler(_arg1:ProgressEvent):void{
readResponse();
}
public function write(_arg1:String):void{
var str = _arg1;
if (!dead){
str = (str + EOL);
try {
writeUTFBytes(str);
} catch(e:IOError) {
trace(e);
};
flush();
};
}
private function readResponse():void{
var _local1:String;
_local1 = readUTFBytes(bytesAvailable);
commandHandler.addText(_local1);
}
}
}//package
Section 57
//BounceSound (BounceSound)
package {
import flash.media.*;
public dynamic class BounceSound extends Sound {
}
}//package
Section 58
//Button_disabledSkin (Button_disabledSkin)
package {
import flash.display.*;
public dynamic class Button_disabledSkin extends MovieClip {
}
}//package
Section 59
//Button_downSkin (Button_downSkin)
package {
import flash.display.*;
public dynamic class Button_downSkin extends MovieClip {
}
}//package
Section 60
//Button_emphasizedSkin (Button_emphasizedSkin)
package {
import flash.display.*;
public dynamic class Button_emphasizedSkin extends MovieClip {
}
}//package
Section 61
//Button_overSkin (Button_overSkin)
package {
import flash.display.*;
public dynamic class Button_overSkin extends MovieClip {
}
}//package
Section 62
//Button_selectedDisabledSkin (Button_selectedDisabledSkin)
package {
import flash.display.*;
public dynamic class Button_selectedDisabledSkin extends MovieClip {
}
}//package
Section 63
//Button_selectedDownSkin (Button_selectedDownSkin)
package {
import flash.display.*;
public dynamic class Button_selectedDownSkin extends MovieClip {
}
}//package
Section 64
//Button_selectedOverSkin (Button_selectedOverSkin)
package {
import flash.display.*;
public dynamic class Button_selectedOverSkin extends MovieClip {
}
}//package
Section 65
//Button_selectedUpSkin (Button_selectedUpSkin)
package {
import flash.display.*;
public dynamic class Button_selectedUpSkin extends MovieClip {
}
}//package
Section 66
//Button_upSkin (Button_upSkin)
package {
import flash.display.*;
public dynamic class Button_upSkin extends MovieClip {
}
}//package
Section 67
//CellRenderer_disabledSkin (CellRenderer_disabledSkin)
package {
import flash.display.*;
public dynamic class CellRenderer_disabledSkin extends MovieClip {
}
}//package
Section 68
//CellRenderer_downSkin (CellRenderer_downSkin)
package {
import flash.display.*;
public dynamic class CellRenderer_downSkin extends MovieClip {
}
}//package
Section 69
//CellRenderer_overSkin (CellRenderer_overSkin)
package {
import flash.display.*;
public dynamic class CellRenderer_overSkin extends MovieClip {
}
}//package
Section 70
//CellRenderer_selectedDisabledSkin (CellRenderer_selectedDisabledSkin)
package {
import flash.display.*;
public dynamic class CellRenderer_selectedDisabledSkin extends MovieClip {
}
}//package
Section 71
//CellRenderer_selectedDownSkin (CellRenderer_selectedDownSkin)
package {
import flash.display.*;
public dynamic class CellRenderer_selectedDownSkin extends MovieClip {
}
}//package
Section 72
//CellRenderer_selectedOverSkin (CellRenderer_selectedOverSkin)
package {
import flash.display.*;
public dynamic class CellRenderer_selectedOverSkin extends MovieClip {
}
}//package
Section 73
//CellRenderer_selectedUpSkin (CellRenderer_selectedUpSkin)
package {
import flash.display.*;
public dynamic class CellRenderer_selectedUpSkin extends MovieClip {
}
}//package
Section 74
//CellRenderer_upSkin (CellRenderer_upSkin)
package {
import flash.display.*;
public dynamic class CellRenderer_upSkin extends MovieClip {
}
}//package
Section 75
//Chat (Chat)
package {
import flash.display.*;
public class Chat {
private var niggerArray:Array;
public var showing:Boolean;// = true
private var main:MovieClip;
private var bitchArray:Array;
private var messageArray:Array;
private var page:LobbyPage;
private var damnArray:Array;
private var fuckArray:Array;
private var inLobby:Boolean;// = false
private var shitArray:Array;
private var spicArray:Array;
public function Chat():void{
messageArray = new Array();
main = GetMain.main;
showing = true;
damnArray = new Array("dang", "dingy-goo", "condemnation");
fuckArray = new Array("fooey", "fingilly", "funk-master", "freak monster", "jiminy cricket");
shitArray = new Array("shoot", "shewet");
niggerArray = new Array("someone cooler than me", "ladies magnet", "cooler race");
spicArray = niggerArray;
bitchArray = new Array("cooler gender", "female dog");
inLobby = false;
super();
}
public function hide(){
showing = false;
main.curPage.chatCover.gotoAndStop("on");
}
public function setLobbyPage(_arg1:LobbyPage){
page = _arg1;
}
public function show(){
showing = true;
main.curPage.chatCover.gotoAndStop("off");
}
public function clearMessages():void{
messageArray = new Array();
}
public function addMessage(_arg1:Player, _arg2:String):void{
var _local3:String;
var _local4:String;
var _local5:String;
var _local6:String;
_arg2 = sanitize(_arg2);
if (_arg1 == null){
_local3 = "<i>offline</i>";
_local4 = "#666666";
} else {
_local3 = (((("<a href=\"event:" + _arg1.getID()) + "\">") + sanitize(_arg1.getName())) + "</a>");
_local4 = _arg1.getHTMLNameColor();
};
_local6 = (((((("<u><font color=\"" + _local4) + "\">") + _local3) + "</font></u> <font color=\"#666666\">") + _arg2) + "</font>");
messageArray.push(_local6);
if (messageArray.length > 20){
messageArray.splice(0, 1);
};
showMessages();
}
private function randIndex(_arg1:Array){
var _local2:int;
_local2 = Math.floor((Math.random() * _arg1.length));
return (_arg1[_local2]);
}
public function setInLobby(_arg1:Boolean):void{
inLobby = _arg1;
if (_arg1 == true){
showMessages();
};
}
private function showMessages():void{
if (inLobby == true){
page.setChat(messageArray.join("<br/>"));
};
}
public function sanitize(_arg1:String):String{
_arg1 = _arg1.replace(/>/gi, "");
_arg1 = _arg1.replace(/</gi, "");
_arg1 = _arg1.replace(/damn/gi, randIndex(damnArray));
_arg1 = _arg1.replace(/fuck/gi, randIndex(fuckArray));
_arg1 = _arg1.replace(/nigg(a|er)/gi, randIndex(niggerArray));
_arg1 = _arg1.replace(/spic /gi, randIndex(spicArray));
_arg1 = _arg1.replace(/shit/gi, randIndex(shitArray));
_arg1 = _arg1.replace(/bitch/gi, randIndex(bitchArray));
return (_arg1);
}
}
}//package
Section 76
//ColorBG (ColorBG)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
public class ColorBG extends MovieClip {
private var blue:Number;// = 0
private var greenTarget:Number;// = 0
private var red:Number;// = 0
private var blueTarget:Number;// = 0
private var tint:Number;// = 0.2
private var green:Number;// = 0
private var redTarget:Number;// = 0
private var num:Number;// = 0
private var ease:Number;// = 0.25
public function ColorBG():void{
tint = 0.2;
ease = 0.25;
red = 0;
green = 0;
blue = 0;
redTarget = 0;
greenTarget = 0;
blueTarget = 0;
num = 0;
super();
addFrameScript(120, frame121, 131, frame132, 143, frame144, 155, frame156, 166, frame167, 177, frame178, 188, frame189, 199, frame200, 210, frame211, 222, frame223, 233, frame234, 244, frame245, 0xFF, frame256, 266, frame267, 277, frame278, 288, frame289, 299, frame300, 310, frame311, 321, frame322, 332, frame333, 343, frame344, 354, frame355, 366, frame367, 377, frame378, 388, frame389, 399, frame400, 410, frame411, 420, frame421, 430, frame431, 442, frame443, 454, frame455, 465, frame466, 476, frame477, 487, frame488, 498, frame499, 509, frame510, 521, frame522, 532, frame533, 543, frame544, 554, frame555, 565, frame566, 576, frame577, 587, frame588, 598, frame599, 609, frame610, 620, frame621, 631, frame632, 642, frame643, 653, frame654, 665, frame666, 676, frame677, 687, frame688, 698, frame699, 709, frame710, 719, frame720, 728, frame729, 739, frame740, 751, frame752, 762, frame763, 773, frame774, 784, frame785, 795, frame796, 806, frame807, 818, frame819, 829, frame830, 840, frame841, 851, frame852, 862, frame863, 873, frame874, 884, frame885, 895, frame896, 906, frame907, 917, frame918, 928, frame929, 939, frame940, 950, frame951, 962, frame963, 973, frame974, 984, frame985, 995, frame996, 1007, frame1008, 1017, frame1018, 1027, frame1028, 1039, frame1040, 1051, frame1052, 1062, frame1063, 1073, frame1074, 1084, frame1085, 1095, frame1096, 1106, frame1107, 1118, frame1119, 1129, frame1130, 1140, frame1141, 1151, frame1152, 1162, frame1163, 1173, frame1174, 1184, frame1185, 1195, frame1196, 1206, frame1207, 1217, frame1218, 1228, frame1229, 1239, frame1240, 1250, frame1251, 1262, frame1263, 1273, frame1274, 1284, frame1285, 1295, frame1296, 1306, frame1307, 1388, frame1389);
addEventListener(Event.ENTER_FRAME, go);
}
function frame156(){
changeColor();
}
function frame830(){
changeColor();
}
function frame710(){
changeColor();
}
function frame1185(){
changeColor();
}
function frame278(){
changeColor();
}
function frame951(){
changeColor();
}
function frame1063(){
changeColor();
}
function frame167(){
changeColor();
}
function frame289(){
changeColor();
}
function frame720(){
changeColor();
}
function frame963(){
changeColor();
}
function frame1074(){
changeColor();
}
function frame729(){
changeColor();
}
function frame841(){
changeColor();
}
function frame178(){
changeColor();
}
function frame610(){
changeColor();
}
function frame974(){
changeColor();
}
function frame1196(){
changeColor();
}
function frame1085(){
changeColor();
}
function frame852(){
changeColor();
}
function frame189(){
changeColor();
}
function frame740(){
changeColor();
}
function frame621(){
changeColor();
}
function frame985(){
changeColor();
}
function frame863(){
changeColor();
}
function frame1096(){
changeColor();
}
public function remove():void{
removeEventListener(Event.ENTER_FRAME, go);
parent.removeChild(this);
stop();
}
function frame510(){
changeColor();
}
function frame632(){
changeColor();
}
function frame996(){
changeColor();
}
function frame752(){
changeColor();
}
function frame874(){
changeColor();
}
function frame1307(){
changeColor();
}
function frame400(){
changeColor();
}
function frame522(){
changeColor();
}
function frame763(){
changeColor();
}
function frame643(){
changeColor();
}
function frame885(){
changeColor();
}
function frame411(){
changeColor();
}
function frame774(){
changeColor();
}
function frame533(){
changeColor();
}
function frame1207(){
changeColor();
}
function frame654(){
changeColor();
}
function frame896(){
changeColor();
}
function frame421(){
changeColor();
}
function frame785(){
changeColor();
}
function frame544(){
changeColor();
}
function frame666(){
changeColor();
}
function frame300(){
changeColor();
}
function frame1218(){
changeColor();
}
private function go(_arg1:Event):void{
var _local2:ColorTransform;
if (parent == null){
stop();
removeEventListener(Event.ENTER_FRAME, go);
} else {
red = (red + ((redTarget - red) * ease));
green = (green + ((greenTarget - green) * ease));
blue = (blue + ((blueTarget - blue) * ease));
_local2 = new ColorTransform((1 - tint), (1 - tint), (1 - tint), 1, (red * tint), (green * tint), (blue * tint), 0);
this.transform.colorTransform = _local2;
};
}
function frame431(){
changeColor();
}
function frame311(){
changeColor();
}
function frame555(){
changeColor();
}
function frame677(){
changeColor();
}
function frame796(){
changeColor();
}
function frame1107(){
changeColor();
}
function frame1229(){
changeColor();
}
function frame322(){
changeColor();
}
function frame688(){
changeColor();
}
function frame200(){
changeColor();
}
function frame443(){
changeColor();
}
function frame566(){
changeColor();
}
function frame1119(){
changeColor();
}
function frame211(){
changeColor();
}
function frame455(){
changeColor();
}
function frame577(){
changeColor();
}
function frame699(){
changeColor();
}
function frame333(){
changeColor();
}
function frame1008(){
changeColor();
}
function frame1240(){
changeColor();
}
function frame223(){
changeColor();
}
function frame1130(){
changeColor();
}
function frame344(){
changeColor();
}
function frame466(){
changeColor();
}
function frame588(){
changeColor();
}
function frame1251(){
changeColor();
}
function frame907(){
changeColor();
}
function frame1018(){
changeColor();
}
function frame477(){
changeColor();
}
function frame1141(){
changeColor();
}
function frame1263(){
changeColor();
}
function frame599(){
changeColor();
}
function frame1389(){
stop();
}
function frame1028(){
changeColor();
}
public function changeColor():void{
redTarget = (Math.random() * 155);
greenTarget = (Math.random() * 155);
blueTarget = (Math.random() * 155);
num++;
if (num > 2){
num = 0;
};
if (num == 0){
redTarget = 0xFF;
};
if (num == 1){
greenTarget = 0xFF;
};
if (num == 2){
blueTarget = 0xFF;
};
}
function frame234(){
changeColor();
}
function frame918(){
changeColor();
}
function frame245(){
changeColor();
}
function frame367(){
changeColor();
}
function frame355(){
changeColor();
}
function frame121(){
changeColor();
}
function frame1152(){
changeColor();
}
function frame807(){
changeColor();
}
function frame929(){
changeColor();
}
function frame488(){
changeColor();
}
function frame1274(){
changeColor();
}
function frame132(){
changeColor();
}
function frame1040(){
changeColor();
}
function frame1163(){
changeColor();
}
function frame256(){
changeColor();
}
function frame378(){
changeColor();
}
function frame1285(){
changeColor();
}
function frame819(){
changeColor();
}
function frame499(){
changeColor();
}
function frame144(){
changeColor();
}
function frame267(){
changeColor();
}
function frame389(){
changeColor();
}
function frame940(){
changeColor();
}
function frame1052(){
changeColor();
}
function frame1296(){
changeColor();
}
function frame1174(){
changeColor();
}
}
}//package
Section 77
//ColumnStretch_cursor (ColumnStretch_cursor)
package {
import flash.display.*;
public dynamic class ColumnStretch_cursor extends MovieClip {
}
}//package
Section 78
//ComboBox_disabledSkin (ComboBox_disabledSkin)
package {
import flash.display.*;
public dynamic class ComboBox_disabledSkin extends MovieClip {
}
}//package
Section 79
//ComboBox_downSkin (ComboBox_downSkin)
package {
import flash.display.*;
public dynamic class ComboBox_downSkin extends MovieClip {
}
}//package
Section 80
//ComboBox_overSkin (ComboBox_overSkin)
package {
import flash.display.*;
public dynamic class ComboBox_overSkin extends MovieClip {
}
}//package
Section 81
//ComboBox_upSkin (ComboBox_upSkin)
package {
import flash.display.*;
public dynamic class ComboBox_upSkin extends MovieClip {
}
}//package
Section 82
//CommandHandler (CommandHandler)
package {
import flash.display.*;
public class CommandHandler {
private var main:MovieClip;
private var inBuffer:String;// = ""
private var id:String;
private var EOL:String;
private var game:Game;
public static var ignoreArray:Array = new Array();
public function CommandHandler():void{
EOL = String.fromCharCode(4);
inBuffer = "";
main = GetMain.main;
super();
}
private function abortGame(_arg1:String):void{
game.abortGame();
}
private function recieveChallenge(_arg1:String):void{
var _local2:Player;
_local2 = main.playerList.idToPlayer(_arg1);
new AlertScreen(new RecieveChallenge(_local2));
}
private function handleResponse(_arg1:String):void{
var _local2:Number;
var _local3:String;
var _local4:String;
trace(("command: " + _arg1));
_local2 = _arg1.indexOf("`");
_local3 = _arg1.substring(0, _local2);
_local4 = _arg1.substr((_local2 + 1));
var _local5 = this;
_local5[_local3](_local4);
}
public function remove():void{
if (game != null){
main.killGame();
game.remove();
};
}
private function setGroup(_arg1:String):void{
var _local2:Array;
var _local3:String;
var _local4:Number;
var _local5:Player;
_local2 = _arg1.split("`");
_local3 = _local2[0];
_local4 = _local2[1];
_local5 = main.playerList.idToPlayer(_local3);
_local5.setGroup(_local4);
}
private function message(_arg1:String):void{
var _local2:Array;
var _local3:String;
var _local4:String;
var _local5:Player;
_local2 = _arg1.split("`");
_local3 = _local2[0];
_local4 = _local2[1];
_local5 = main.playerList.idToPlayer(_local3);
if (CommandHandler.ignoreArray.indexOf(_local5) == -1){
new AlertScreen(new PlayerMessage(_local5, _local4));
};
}
private function setScore(_arg1:String):void{
var _local2:Array;
var _local3:String;
var _local4:Number;
var _local5:Player;
_local2 = _arg1.split("`");
_local3 = _local2[0];
_local4 = _local2[1];
_local5 = main.playerList.idToPlayer(_local3);
_local5.setScore(_local4);
}
private function score(_arg1:String):void{
var _local2:Array;
var _local3:Number;
var _local4:String;
var _local5:Number;
_local2 = _arg1.split("`");
_local3 = _local2[0];
_local4 = _local2[1];
_local5 = _local2[2];
game.confirmScore(_local3, _local4);
}
private function removePlayer(_arg1:String):void{
var _local2:Player;
_local2 = main.playerList.idToPlayer(_arg1);
_local2.remove();
}
private function setID(_arg1:String){
id = _arg1;
}
private function setAvailable(_arg1:String):void{
var _local2:Array;
var _local3:String;
var _local4:String;
var _local5:Player;
_local2 = _arg1.split("`");
_local3 = _local2[0];
_local4 = _local2[1];
_local5 = main.playerList.idToPlayer(_local3);
_local5.setAvailable(_local4);
}
private function bounce(_arg1:String):void{
var _local2:Array;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
_local2 = _arg1.split("`");
_local3 = _local2[0];
_local4 = _local2[1];
_local5 = _local2[2];
_local6 = _local2[3];
_local7 = _local2[4];
_local8 = _local2[5];
game.setBounce(_local3, _local4, _local5, _local6, _local7, _local8);
}
private function chat(_arg1:String):void{
var _local2:Array;
var _local3:String;
var _local4:String;
var _local5:Player;
_local2 = _arg1.split("`");
_local3 = _local2[0];
_local4 = _local2[1];
_local5 = main.playerList.idToPlayer(_local3);
if (CommandHandler.ignoreArray.indexOf(_local5) == -1){
main.chat.addMessage(_local5, _local4);
};
}
private function setPos(_arg1:String):void{
var _local2:Array;
var _local3:Number;
var _local4:String;
var _local5:String;
var _local6:Number;
var _local7:Number;
_local2 = _arg1.split("`");
_local3 = _local2[0];
_local4 = _local2[1];
_local5 = _local2[2];
_local6 = _local2[3];
_local7 = _local2[4];
game.setPos(_local3, _local4, _local5, _local6, _local7);
}
private function setAcceptChallenges(_arg1:String):void{
var _local2:Array;
var _local3:String;
var _local4:String;
var _local5:Player;
_local2 = _arg1.split("`");
_local3 = _local2[0];
_local4 = _local2[1];
_local5 = main.playerList.idToPlayer(_local3);
_local5.setAcceptChallenges(_local4);
}
private function systemMessage(_arg1:String):void{
new AlertScreen(new Message(_arg1));
}
private function cancelChallenge(_arg1:String):void{
main.deleteableScreen.remove();
}
private function setAcceptMessages(_arg1:String):void{
var _local2:Array;
var _local3:String;
var _local4:String;
var _local5:Player;
_local2 = _arg1.split("`");
_local3 = _local2[0];
_local4 = _local2[1];
_local5 = main.playerList.idToPlayer(_local3);
_local5.setAcceptMessages(_local4);
}
private function setLag(_arg1:Number):void{
game.setLag(_arg1);
}
private function failLogin(_arg1:String){
new AlertScreen(new Message(("Login failed: " + _arg1)));
main.socket.remove();
}
private function endGame(_arg1:String):void{
setScore(_arg1);
game.recieveEndGame();
}
public function addText(_arg1:String):void{
var _local2:Number;
var _local3:String;
inBuffer = (inBuffer + _arg1);
_local2 = inBuffer.indexOf(EOL);
while (_local2 != -1) {
_local3 = inBuffer.substring(0, _local2);
inBuffer = inBuffer.substr((_local2 + 1));
handleResponse(_local3);
_local2 = inBuffer.indexOf(EOL);
};
}
private function startGame(_arg1:String):void{
var _local2:Array;
var _local3:String;
var _local4:String;
var _local5:String;
var _local6:Player;
var _local7:Player;
_local2 = _arg1.split("`");
_local3 = _local2[0];
_local4 = _local2[1];
_local5 = _local2[2];
_local6 = main.playerList.idToPlayer(_local3);
_local7 = main.playerList.idToPlayer(_local4);
main.changePage(new GamePage());
game = new Game(_local6, _local7, _local5);
}
private function setRank(_arg1:String):void{
var _local2:Array;
var _local3:String;
var _local4:Number;
var _local5:Player;
_local2 = _arg1.split("`");
_local3 = _local2[0];
_local4 = _local2[1];
_local5 = main.playerList.idToPlayer(_local3);
_local5.setRank(_local4);
}
private function ping(_arg1:String):void{
main.socket.recievePing();
}
private function setPing(_arg1:String):void{
var _local2:Array;
var _local3:String;
var _local4:Number;
var _local5:Player;
_local2 = _arg1.split("`");
_local3 = _local2[0];
_local4 = _local2[1];
_local5 = main.playerList.idToPlayer(_local3);
_local5.setPingTime(_local4);
}
private function createPlayer(_arg1:String){
var _local2:Array;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:Player;
_local2 = _arg1.split("`");
_local3 = _local2[0];
_local4 = _local2[1];
_local5 = _local2[2];
_local6 = _local2[3];
_local7 = _local2[4];
_local8 = _local2[5];
_local9 = _local2[6];
if (_local3 == this.id){
_local10 = new MePlayer(_local3);
} else {
_local10 = new Player(_local3);
};
_local10.setName(_local4);
_local10.setRank(_local5);
_local10.setGroup(_local6);
_local10.setAvailable(_local7);
_local10.setAcceptMessages(_local8);
_local10.setAcceptChallenges(_local9);
if (_local3 == this.id){
main.changePage(new LobbyPage());
};
}
}
}//package
Section 83
//ComposeMessage (ComposeMessage)
package {
import fl.controls.*;
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class ComposeMessage extends MovieClip {
public var cancelButton:Button;
public var toBox:TextField;
public var textBox:TextArea;
private var main:MovieClip;
public var sendButton:Button;
private var player:Player;
public function ComposeMessage(_arg1:Player):void{
main = GetMain.main;
super();
this.player = _arg1;
toBox.text = ("Message to " + _arg1.getName());
sendButton.addEventListener(MouseEvent.CLICK, sendClick);
cancelButton.addEventListener(MouseEvent.CLICK, cancelClick);
__setProp_sendButton_ComposeMessage_Layer1_1();
__setProp_cancelButton_ComposeMessage_Layer1_1();
}
private function cancelClick(_arg1:MouseEvent):void{
remove();
}
private function remove():void{
sendButton.removeEventListener(MouseEvent.CLICK, sendClick);
cancelButton.removeEventListener(MouseEvent.CLICK, cancelClick);
AlertScreen(parent.parent).gotoAndPlay("die");
}
function __setProp_sendButton_ComposeMessage_Layer1_1(){
try {
sendButton["componentInspectorSetting"] = true;
} catch(e:Error) {
};
sendButton.emphasized = false;
sendButton.enabled = true;
sendButton.label = "Send";
sendButton.labelPlacement = "right";
sendButton.selected = false;
sendButton.toggle = false;
sendButton.visible = true;
try {
sendButton["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
function __setProp_cancelButton_ComposeMessage_Layer1_1(){
try {
cancelButton["componentInspectorSetting"] = true;
} catch(e:Error) {
};
cancelButton.emphasized = false;
cancelButton.enabled = true;
cancelButton.label = "Cancel";
cancelButton.labelPlacement = "right";
cancelButton.selected = false;
cancelButton.toggle = false;
cancelButton.visible = true;
try {
cancelButton["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
private function sendClick(_arg1:MouseEvent):void{
main.socket.write(((("message`" + player.getID()) + "`") + textBox.text));
remove();
}
}
}//package
Section 84
//Confirm (Confirm)
package {
import fl.controls.*;
import flash.display.*;
public dynamic class Confirm extends MovieClip {
public var okButton:Button;
public var cancelButton:Button;
public var textBox:TextArea;
public function Confirm(){
__setProp_cancelButton_Confirm_Layer1_1();
__setProp_textBox_Confirm_Layer1_1();
__setProp_okButton_Confirm_Layer1_1();
}
function __setProp_textBox_Confirm_Layer1_1(){
try {
textBox["componentInspectorSetting"] = true;
} catch(e:Error) {
};
textBox.condenseWhite = false;
textBox.editable = false;
textBox.enabled = true;
textBox.horizontalScrollPolicy = "auto";
textBox.htmlText = "";
textBox.maxChars = 0;
textBox.restrict = "";
textBox.text = "";
textBox.verticalScrollPolicy = "auto";
textBox.visible = true;
textBox.wordWrap = true;
try {
textBox["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
function __setProp_cancelButton_Confirm_Layer1_1(){
try {
cancelButton["componentInspectorSetting"] = true;
} catch(e:Error) {
};
cancelButton.emphasized = false;
cancelButton.enabled = true;
cancelButton.label = "Cancel";
cancelButton.labelPlacement = "right";
cancelButton.selected = false;
cancelButton.toggle = false;
cancelButton.visible = true;
try {
cancelButton["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
function __setProp_okButton_Confirm_Layer1_1(){
try {
okButton["componentInspectorSetting"] = true;
} catch(e:Error) {
};
okButton.emphasized = false;
okButton.enabled = true;
okButton.label = "OK";
okButton.labelPlacement = "right";
okButton.selected = false;
okButton.toggle = false;
okButton.visible = true;
try {
okButton["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
}
}//package
Section 85
//ConfirmBan (ConfirmBan)
package {
import flash.display.*;
import flash.events.*;
public class ConfirmBan extends Confirm {
private var main:MovieClip;
private var player:Player;
public function ConfirmBan(_arg1:Player):void{
main = GetMain.main;
super();
this.player = _arg1;
textBox.text = (("Are you sure you want to BAN " + _arg1.getName()) + "?");
okButton.addEventListener(MouseEvent.CLICK, okClick);
cancelButton.addEventListener(MouseEvent.CLICK, cancelClick);
}
private function okClick(_arg1:MouseEvent):void{
main.socket.write(("ban`" + player.getID()));
remove();
}
private function cancelClick(_arg1:MouseEvent):void{
remove();
}
private function remove():void{
okButton.removeEventListener(MouseEvent.CLICK, okClick);
cancelButton.removeEventListener(MouseEvent.CLICK, cancelClick);
AlertScreen(parent.parent).gotoAndPlay("die");
}
}
}//package
Section 86
//ConfirmFlag (ConfirmFlag)
package {
import flash.display.*;
import flash.events.*;
public class ConfirmFlag extends Confirm {
private var main:MovieClip;
private var player:Player;
public function ConfirmFlag(_arg1:Player):void{
main = GetMain.main;
super();
this.player = _arg1;
textBox.text = (("Are you sure you want to flag " + _arg1.getName()) + " as abusive?");
okButton.addEventListener(MouseEvent.CLICK, okClick);
cancelButton.addEventListener(MouseEvent.CLICK, cancelClick);
}
private function okClick(_arg1:MouseEvent):void{
main.socket.write(("flag`" + player.getID()));
remove();
}
private function cancelClick(_arg1:MouseEvent):void{
remove();
}
private function remove():void{
okButton.removeEventListener(MouseEvent.CLICK, okClick);
cancelButton.removeEventListener(MouseEvent.CLICK, cancelClick);
AlertScreen(parent.parent).gotoAndPlay("die");
}
}
}//package
Section 87
//ConfirmIgnore (ConfirmIgnore)
package {
import flash.events.*;
public class ConfirmIgnore extends Confirm {
private var player:Player;
public function ConfirmIgnore(_arg1:Player):void{
this.player = _arg1;
if (CommandHandler.ignoreArray.indexOf(_arg1) == -1){
textBox.text = (("Are you sure you want to ignore " + _arg1.getName()) + "?");
} else {
textBox.text = (("Are you sure you want to un-ignore " + _arg1.getName()) + "?");
};
okButton.addEventListener(MouseEvent.CLICK, okClick);
cancelButton.addEventListener(MouseEvent.CLICK, cancelClick);
}
private function okClick(_arg1:MouseEvent):void{
var _local2:*;
_local2 = CommandHandler.ignoreArray.indexOf(player);
if (_local2 == -1){
CommandHandler.ignoreArray.push(player);
} else {
CommandHandler.ignoreArray.splice(_local2, 1);
};
remove();
}
private function cancelClick(_arg1:MouseEvent):void{
remove();
}
private function remove():void{
okButton.removeEventListener(MouseEvent.CLICK, okClick);
cancelButton.removeEventListener(MouseEvent.CLICK, cancelClick);
AlertScreen(parent.parent).gotoAndPlay("die");
}
}
}//package
Section 88
//ConfirmPromote (ConfirmPromote)
package {
import flash.display.*;
import flash.events.*;
public class ConfirmPromote extends Confirm {
private var main:MovieClip;
private var player:Player;
public function ConfirmPromote(_arg1:Player):void{
main = GetMain.main;
super();
this.player = _arg1;
textBox.text = (("Are you sure you want to PROMOTE " + _arg1.getName()) + "?");
okButton.addEventListener(MouseEvent.CLICK, okClick);
cancelButton.addEventListener(MouseEvent.CLICK, cancelClick);
}
private function okClick(_arg1:MouseEvent):void{
main.socket.write(("promote_to_moderator`" + player.getID()));
remove();
}
private function cancelClick(_arg1:MouseEvent):void{
remove();
}
private function remove():void{
okButton.removeEventListener(MouseEvent.CLICK, okClick);
cancelButton.removeEventListener(MouseEvent.CLICK, cancelClick);
AlertScreen(parent.parent).gotoAndPlay("die");
}
}
}//package
Section 89
//ConnectingPage (ConnectingPage)
package {
import fl.controls.*;
import flash.display.*;
import flash.events.*;
public class ConnectingPage extends MovieClip {
public var cancelButton:Button;
private var main:MovieClip;
public function ConnectingPage(_arg1:String, _arg2:String, _arg3:Boolean, _arg4:Number){
var userName = _arg1;
var userPass = _arg2;
var guest = _arg3;
var port = _arg4;
main = GetMain.main;
super();
try {
if (main.socket != null){
main.socket.remove();
main.socket = null;
};
main.socket = new BounceSocket(userName, userPass, guest, port);
} catch(e:Error) {
new AlertScreen(new Message(("There was a problem connecting. \n " + e.message)));
main.socket.remove();
};
cancelButton.addEventListener(MouseEvent.CLICK, cancelClick);
__setProp_cancelButton_ConnectingPage_Layer1_1();
}
private function cancelClick(_arg1:MouseEvent){
main.socket.remove();
}
public function remove():void{
cancelButton.removeEventListener(MouseEvent.CLICK, cancelClick);
}
function __setProp_cancelButton_ConnectingPage_Layer1_1(){
try {
cancelButton["componentInspectorSetting"] = true;
} catch(e:Error) {
};
cancelButton.emphasized = false;
cancelButton.enabled = true;
cancelButton.label = "Cancel";
cancelButton.labelPlacement = "right";
cancelButton.selected = false;
cancelButton.toggle = false;
cancelButton.visible = true;
try {
cancelButton["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
}
}//package
Section 90
//ControlPaddle (ControlPaddle)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class ControlPaddle extends Paddle {
private var note:MovieClip;
private var sendUpdates:Boolean;// = true
private var stageRef:Stage;
private var main:MovieClip;
public function ControlPaddle(_arg1:Number, _arg2:Number, _arg3:Game):void{
main = GetMain.main;
sendUpdates = true;
super(_arg1, _arg2, _arg3);
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
note = new ThisIsYou();
addChild(note);
setTimeout(removeNote, 3000);
stageRef = stage;
}
private function setVariable(_arg1:String, _arg2:String){
if (this[_arg1] != _arg2){
this[_arg1] = _arg2;
if (sendUpdates == true){
main.socket.write(((((((((("setPos`" + game.getCurFrame()) + "`") + left) + "`") + right) + "`") + x) + "`") + vel));
};
};
}
private function keyDownHandler(_arg1:KeyboardEvent):void{
var _local2:Number;
_local2 = _arg1.keyCode;
if ((((_local2 == 39)) || ((_local2 == 68)))){
setVariable("right", "true");
};
if ((((_local2 == 37)) || ((_local2 == 65)))){
setVariable("left", "true");
};
}
override public function remove():void{
stageRef.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
stageRef.removeEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
super.remove();
}
private function keyUpHandler(_arg1:KeyboardEvent):void{
var _local2:Number;
_local2 = _arg1.keyCode;
if ((((_local2 == 39)) || ((_local2 == 68)))){
setVariable("right", "false");
};
if ((((_local2 == 37)) || ((_local2 == 65)))){
setVariable("left", "false");
};
}
override public function bounce(_arg1:Ball):void{
_arg1.sendPos();
super.bounce(_arg1);
}
private function removeNote(){
removeChild(note);
}
override public function stopSending():void{
sendUpdates = false;
}
}
}//package
Section 91
//DataGrid_skin (DataGrid_skin)
package {
import flash.display.*;
public dynamic class DataGrid_skin extends MovieClip {
}
}//package
Section 92
//DataGridCellEditor_skin (DataGridCellEditor_skin)
package {
import flash.display.*;
public dynamic class DataGridCellEditor_skin extends MovieClip {
}
}//package
Section 93
//Disc (Disc)
package {
import flash.display.*;
public dynamic class Disc extends MovieClip {
public var colorHolder:MovieClip;
public function Disc(){
addFrameScript(0, frame1);
}
function frame1(){
colorHolder.addChild(new DiscColor("yellow"));
colorHolder.addChild(new DiscColor("red"));
colorHolder.addChild(new DiscColor("blue"));
}
}
}//package
Section 94
//DiscColor (DiscColor)
package {
import flash.display.*;
import flash.events.*;
public class DiscColor extends MovieClip {
private var xVel:Number;// = 0
private var maxDist:Number;// = 22
private var yVel:Number;// = 0
private var maxVel:Number;// = 2
private var accel:Number;// = 0.5
public function DiscColor(_arg1:String):void{
maxDist = 22;
xVel = 0;
yVel = 0;
maxVel = 2;
accel = 0.5;
super();
gotoAndStop(_arg1);
addEventListener(Event.ENTER_FRAME, go);
x = (((Math.random() * maxDist) * 2) - maxDist);
y = (((Math.random() * maxDist) * 2) - maxDist);
}
public function remove():void{
removeEventListener(Event.ENTER_FRAME, go);
parent.removeChild(this);
}
private function go(_arg1:Event):void{
xVel = (xVel + ((Math.random() * accel) - (accel / 2)));
yVel = (yVel + ((Math.random() * accel) - (accel / 2)));
if (xVel > maxVel){
xVel = maxVel;
};
if (xVel < -(maxVel)){
xVel = -(maxVel);
};
if (yVel > maxVel){
yVel = maxVel;
};
if (yVel < -(maxVel)){
yVel = -(maxVel);
};
x = (x + xVel);
y = (y + yVel);
if (x > maxDist){
x = maxDist;
xVel = (xVel * -1);
};
if (x < -(maxDist)){
x = -(maxDist);
xVel = (xVel * -1);
};
if (y > maxDist){
y = maxDist;
yVel = (yVel * -1);
};
if (y < -(maxDist)){
y = -(maxDist);
yVel = (yVel * -1);
};
}
}
}//package
Section 95
//Dot (Dot)
package {
import flash.display.*;
public dynamic class Dot extends MovieClip {
public function Dot(){
addFrameScript(0, frame1, 45, frame46);
}
function frame1(){
stop();
}
function frame46(){
stop();
}
}
}//package
Section 96
//focusRectSkin (focusRectSkin)
package {
import flash.display.*;
public dynamic class focusRectSkin extends MovieClip {
}
}//package
Section 97
//Game (Game)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class Game extends MovieClip {
private var xVel:Number;
private var rPlayer:Player;
private var curFrame:Number;// = 0
private var waitFrame:Boolean;// = false
private var doubleFrame:Boolean;// = false
private var meFinished:Boolean;// = false
private var averageLag:Number;// = 0
private var countdownFrames:Number;// = 0
private var lagRecords:Number;// = 0
private var mapArray:Array;
private var curBall:Number;// = 0
private var yVel:Number;
private var lPlayer:Player;
private var recieveEndGameTimeout:uint;
private var lagInterval:uint;
private var rPaddle:Paddle;
private var totLag:Number;// = 0
private var mePlayer:Player;
private var frame:Number;
private var ballArray:Array;
private var oldMuteY:Number;
private var main:MovieClip;
private var remotePlayer:Player;
private var lPaddle:Paddle;
public function Game(_arg1:Player, _arg2:Player, _arg3:String):void{
countdownFrames = 0;
curFrame = 0;
curBall = 0;
ballArray = new Array();
waitFrame = false;
doubleFrame = false;
lagRecords = 0;
totLag = 0;
averageLag = 0;
lagInterval = setInterval(sendLag, 1000);
meFinished = false;
main = GetMain.main;
oldMuteY = main.muteButton.y;
super();
this.lPlayer = _arg1;
this.rPlayer = _arg2;
if (_arg1 == main.me){
mePlayer = _arg1;
remotePlayer = _arg2;
} else {
mePlayer = _arg2;
remotePlayer = _arg1;
};
this.mapArray = _arg3.split(";");
setTimeout(init, 1000);
addEventListener(Event.ENTER_FRAME, countdown);
main.muteButton.y = 60;
}
private function init():void{
lPlayer.startGame("left", rPlayer);
rPlayer.startGame("right", lPlayer);
lPaddle = lPlayer.makePaddle(125, 360, this);
rPaddle = rPlayer.makePaddle(375, 360, this);
nextMapSeg();
}
private function stopSending():void{
clearInterval(lagInterval);
lPaddle.stopSending();
rPaddle.stopSending();
}
private function nextMapSeg(){
var _local1:String;
var _local2:Array;
if (mapArray.length > 1){
_local1 = mapArray.shift();
_local2 = _local1.split(",");
frame = _local2[0];
xVel = _local2[1];
yVel = _local2[2];
} else {
removeEventListener(Event.ENTER_FRAME, go);
addEventListener(Event.ENTER_FRAME, wait);
};
}
public function setPos(_arg1:Number, _arg2:String, _arg3:String, _arg4:Number, _arg5:Number):void{
var _local6:Number;
lPaddle.setPos(_arg1, curFrame, _arg2, _arg3, _arg4, _arg5);
rPaddle.setPos(_arg1, curFrame, _arg2, _arg3, _arg4, _arg5);
_local6 = (curFrame - _arg1);
recordLag(_local6);
}
public function abortGame():void{
meFinished = true;
recieveEndGame();
}
public function getCurFrame():Number{
return (curFrame);
}
private function wait(_arg1:Event){
curFrame++;
if (main.curPage.ballHolder.numChildren <= 0){
endGame();
};
}
private function recordLag(_arg1):void{
totLag = (totLag + _arg1);
lagRecords++;
}
public function recieveEndGame():void{
var _local1:String;
if ((meFinished = false)){
endGame();
};
if (lPlayer.getScore() > rPlayer.getScore()){
_local1 = lPlayer.getName();
} else {
if (lPlayer.getScore() < rPlayer.getScore()){
_local1 = rPlayer.getName();
} else {
_local1 = "It's a tie";
};
};
new AlertScreen(new VictoryMessage(_local1));
remove();
}
public function setBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number){
var _local7:*;
var _local8:Number;
_local7 = ballArray[_arg1];
if (_local7 != null){
_local7.setBounce(_arg2, curFrame, _arg3, _arg4, _arg5, _arg6);
};
_local8 = (curFrame - _arg2);
recordLag(_local8);
}
private function scoreRight(){
rPlayer.scorePoint();
main.curPage.leftFlash.gotoAndPlay("on");
}
private function endGame():void{
meFinished = true;
main.socket.write(("end_game`" + mePlayer.getScore()));
recieveEndGameTimeout = setTimeout(recieveEndGame, 5000);
stopSending();
removeEventListener(Event.ENTER_FRAME, wait);
}
private function countdown(_arg1:Event){
countdownFrames++;
if (countdownFrames >= 120){
addEventListener(Event.ENTER_FRAME, go);
removeEventListener(Event.ENTER_FRAME, countdown);
};
}
public function removeBall(_arg1:Ball){
_arg1.remove();
ballArray[_arg1.getID] = null;
}
public function remove(){
var _local1:Ball;
var _local2:int;
var _local3:int;
main.muteButton.y = oldMuteY;
removeEventListener(Event.ENTER_FRAME, countdown);
removeEventListener(Event.ENTER_FRAME, wait);
removeEventListener(Event.ENTER_FRAME, go);
clearInterval(lagInterval);
clearTimeout(recieveEndGameTimeout);
_local2 = ballArray.length;
_local3 = 0;
while (_local3 < _local2) {
_local1 = ballArray[_local3];
if (_local1 != null){
_local1.remove();
};
ballArray[_local3] = null;
_local3++;
};
lPaddle.remove();
rPaddle.remove();
}
public function confirmScore(_arg1:Number, _arg2:String){
var _local3:Ball;
_local3 = ballArray[_arg1];
_local3.confirmScore(_arg2);
}
public function score(_arg1:String):void{
if (_arg1 == "right"){
scoreRight();
} else {
scoreLeft();
};
main.socket.write(("set_score`" + mePlayer.getScore()));
}
private function step(){
curFrame++;
if (curFrame > frame){
addBall();
nextMapSeg();
};
}
public function setLag(_arg1:Number):void{
if (_arg1 < averageLag){
waitFrame = true;
};
if (_arg1 > averageLag){
doubleFrame = true;
};
}
private function scoreLeft(){
lPlayer.scorePoint();
main.curPage.rightFlash.gotoAndPlay("on");
}
private function addBall(){
var _local1:Ball;
curBall++;
_local1 = new Ball(curBall, this, 250, 65, xVel, yVel, lPaddle, rPaddle);
ballArray[curBall] = _local1;
}
private function go(_arg1:Event){
if (waitFrame == false){
step();
if (doubleFrame == true){
step();
};
};
doubleFrame = false;
waitFrame = false;
}
private function sendLag():void{
if (lagRecords > 1){
averageLag = Math.round((totLag / lagRecords));
main.socket.write(("setLag`" + averageLag));
totLag = 0;
lagRecords = 0;
};
}
}
}//package
Section 98
//GamePage (GamePage)
package {
import flash.display.*;
import flash.media.*;
import flash.events.*;
import flash.text.*;
import flash.utils.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.system.*;
import flash.ui.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.printing.*;
import flash.xml.*;
public dynamic class GamePage extends MovieClip {
public var ballBitmap:BallBitmap;
public var leftFlash:MovieClip;
public var leftName:TextField;
public var rightFlash:MovieClip;
public var bgHolder:MovieClip;
public var ballHolder:MovieClip;
public var main:MovieClip;
public var paddleHolder:MovieClip;
public var rightName:TextField;
public var leftScore:TextField;
public var rightScore:TextField;
public var colorBG:ColorBG;
public function GamePage(){
addFrameScript(0, frame1);
}
function frame1(){
main = GetMain.main;
leftFlash.stop();
rightFlash.stop();
ballBitmap = new BallBitmap(ballHolder);
bgHolder.addChild(ballBitmap);
colorBG = new ColorBG();
this.addChildAt(colorBG, 0);
if (main.deleteableScreen != null){
main.deleteableScreen.remove();
};
}
public function remove():void{
colorBG.remove();
ballBitmap.remove();
}
}
}//package
Section 99
//GetMain (GetMain)
package {
import flash.display.*;
public class GetMain {
public static var main:MovieClip;
}
}//package
Section 100
//GoodScore (GoodScore)
package {
import flash.media.*;
public dynamic class GoodScore extends Sound {
}
}//package
Section 101
//HeaderRenderer_disabledSkin (HeaderRenderer_disabledSkin)
package {
import flash.display.*;
public dynamic class HeaderRenderer_disabledSkin extends MovieClip {
}
}//package
Section 102
//HeaderRenderer_downSkin (HeaderRenderer_downSkin)
package {
import flash.display.*;
public dynamic class HeaderRenderer_downSkin extends MovieClip {
}
}//package
Section 103
//HeaderRenderer_overSkin (HeaderRenderer_overSkin)
package {
import flash.display.*;
public dynamic class HeaderRenderer_overSkin extends MovieClip {
}
}//package
Section 104
//HeaderRenderer_selectedDisabledSkin (HeaderRenderer_selectedDisabledSkin)
package {
import flash.display.*;
public dynamic class HeaderRenderer_selectedDisabledSkin extends MovieClip {
}
}//package
Section 105
//HeaderRenderer_selectedDownSkin (HeaderRenderer_selectedDownSkin)
package {
import flash.display.*;
public dynamic class HeaderRenderer_selectedDownSkin extends MovieClip {
}
}//package
Section 106
//HeaderRenderer_selectedOverSkin (HeaderRenderer_selectedOverSkin)
package {
import flash.display.*;
public dynamic class HeaderRenderer_selectedOverSkin extends MovieClip {
}
}//package
Section 107
//HeaderRenderer_selectedUpSkin (HeaderRenderer_selectedUpSkin)
package {
import flash.display.*;
public dynamic class HeaderRenderer_selectedUpSkin extends MovieClip {
}
}//package
Section 108
//HeaderRenderer_upSkin (HeaderRenderer_upSkin)
package {
import flash.display.*;
public dynamic class HeaderRenderer_upSkin extends MovieClip {
}
}//package
Section 109
//HeaderSortArrow_ascIcon (HeaderSortArrow_ascIcon)
package {
import flash.display.*;
public dynamic class HeaderSortArrow_ascIcon extends MovieClip {
}
}//package
Section 110
//HeaderSortArrow_descIcon (HeaderSortArrow_descIcon)
package {
import flash.display.*;
public dynamic class HeaderSortArrow_descIcon extends MovieClip {
}
}//package
Section 111
//InitializePage (InitializePage)
package {
import flash.display.*;
import flash.media.*;
import flash.events.*;
public class InitializePage extends MovieClip {
private var introChannel:SoundChannel;
public var anim:MovieClip;
private var main:MovieClip;
public function InitializePage():void{
main = GetMain.main;
super();
main.addEventListener(MouseEvent.MOUSE_DOWN, skipIntro);
introChannel = Sounds.startSound(new LogoIntroMusic());
}
function skipIntro(_arg1:MouseEvent):void{
main.changePage(new LoginPage());
introChannel.stop();
}
public function remove():void{
main.removeEventListener(MouseEvent.MOUSE_DOWN, skipIntro);
anim.stop();
}
}
}//package
Section 112
//JiggminLogo (JiggminLogo)
package {
import flash.display.*;
public dynamic class JiggminLogo extends BitmapData {
public function JiggminLogo(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 113
//List_skin (List_skin)
package {
import flash.display.*;
public dynamic class List_skin extends MovieClip {
}
}//package
Section 114
//ListName (ListName)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class ListName extends MovieClip {
public var bg:MovieClip;
public var nameBox:TextField;
private var upColor:Number;// = 0x666666
private var player:Player;
private var overColor:Number;// = 0
public var pingBox:TextField;
public var rankBox:TextField;
public function ListName(_arg1:Player):void{
upColor = 0x666666;
overColor = 0;
super();
this.player = _arg1;
addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
addEventListener(MouseEvent.CLICK, mouseClickHandler);
bg.visible = false;
buttonMode = true;
mouseChildren = false;
}
private function becomeColor(_arg1:Number){
nameBox.textColor = _arg1;
}
public function setName(_arg1:String):void{
nameBox.text = _arg1;
}
public function setColor(_arg1:Number):void{
upColor = _arg1;
becomeColor(upColor);
}
public function remove():void{
player = null;
removeEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
removeEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
removeEventListener(MouseEvent.CLICK, mouseClickHandler);
}
private function mouseOutHandler(_arg1:MouseEvent):void{
becomeColor(upColor);
bg.visible = false;
}
public function setRank(_arg1:Number):void{
rankBox.text = Math.round(_arg1).toString();
}
public function setPingTime(_arg1:Number):void{
pingBox.text = _arg1.toString();
if (_arg1 < 100){
pingBox.textColor = 441643;
} else {
if (_arg1 < 250){
pingBox.textColor = 6847797;
} else {
pingBox.textColor = 16189705;
};
};
}
private function mouseClickHandler(_arg1:MouseEvent):void{
new AlertScreen(new PlayerOptions(player));
}
private function mouseOverHandler(_arg1:MouseEvent):void{
becomeColor(overColor);
bg.visible = true;
}
}
}//package
Section 115
//LobbyPage (LobbyPage)
package {
import fl.controls.*;
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class LobbyPage extends MovieClip {
public var scrollBar:MovieClip;
public var chatCover:MovieClip;
private var chat:Chat;
public var logoutButton:SimpleButton;
public var chatInput:TextInput;
public var chatBox:TextArea;
public var nameBox:TextField;
public var chatYN:MovieClip;
public var InstanceName_0:MovieClip;
public var messageYN:MovieClip;
private var me:MePlayer;
public var InstanceName_1:MovieClip;
private var socket:BounceSocket;
public var playersBox:TextField;
private var main:MovieClip;
public var randomButton:Button;
public var challengeYN:MovieClip;
public var listHolder:MovieClip;
public function LobbyPage():void{
main = GetMain.main;
socket = main.socket;
chat = main.chat;
me = main.me;
super();
listHolder.addChild(main.playerList);
main.playerList.resume(this);
chat.setLobbyPage(this);
chat.setInLobby(true);
me.setLobbyPage(this);
me.setInLobby(true);
socket.write("set_available`true");
chatCover.stop();
messageYN.yesButton.addEventListener(MouseEvent.CLICK, messageY);
messageYN.noButton.addEventListener(MouseEvent.CLICK, messageN);
challengeYN.yesButton.addEventListener(MouseEvent.CLICK, challengeY);
challengeYN.noButton.addEventListener(MouseEvent.CLICK, challengeN);
chatYN.yesButton.addEventListener(MouseEvent.CLICK, chatY);
chatYN.noButton.addEventListener(MouseEvent.CLICK, chatN);
logoutButton.addEventListener(MouseEvent.CLICK, logoutClick);
randomButton.addEventListener(MouseEvent.CLICK, randomClick);
chatBox.addEventListener(TextEvent.LINK, nameClick);
chatInput.addEventListener(KeyboardEvent.KEY_DOWN, chatPress);
__setProp_chatBox_LobbyPage_stuff_1();
__setProp_chatInput_LobbyPage_stuff_1();
__setProp_randomButton_LobbyPage_stuff_1();
}
private function chatY(_arg1:MouseEvent):void{
main.chat.show();
}
function __setProp_chatInput_LobbyPage_stuff_1(){
try {
chatInput["componentInspectorSetting"] = true;
} catch(e:Error) {
};
chatInput.displayAsPassword = false;
chatInput.editable = true;
chatInput.enabled = true;
chatInput.maxChars = 75;
chatInput.restrict = "";
chatInput.text = "";
chatInput.visible = true;
try {
chatInput["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
private function logoutClick(_arg1:MouseEvent):void{
socket.remove();
main.changePage(new LoginPage());
}
function __setProp_chatBox_LobbyPage_stuff_1(){
try {
chatBox["componentInspectorSetting"] = true;
} catch(e:Error) {
};
chatBox.condenseWhite = false;
chatBox.editable = false;
chatBox.enabled = true;
chatBox.horizontalScrollPolicy = "auto";
chatBox.htmlText = "";
chatBox.maxChars = 0;
chatBox.restrict = "";
chatBox.text = "";
chatBox.verticalScrollPolicy = "auto";
chatBox.visible = true;
chatBox.wordWrap = true;
try {
chatBox["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
private function messageN(_arg1:MouseEvent):void{
socket.write("set_accept_messages`false");
}
private function messageY(_arg1:MouseEvent):void{
socket.write("set_accept_messages`true");
}
public function setNameBox(_arg1:String, _arg2:String, _arg3:String, _arg4:Boolean):void{
nameBox.htmlText = _arg1;
if (_arg2 == "false"){
challengeYN.outline_mc.x = 61;
};
if (_arg3 == "false"){
messageYN.outline_mc.x = 61;
};
if (_arg4 == false){
chatYN.outline_mc.x = 61;
};
}
private function challengeY(_arg1:MouseEvent):void{
socket.write("set_accept_challenges`true");
}
private function challengeN(_arg1:MouseEvent):void{
socket.write("set_accept_challenges`false");
}
private function randomClick(_arg1:MouseEvent):void{
new AlertScreen(new RandomMatch());
}
private function nameClick(_arg1:TextEvent):void{
var _local2:String;
var _local3:Player;
_local2 = _arg1.text;
_local3 = main.playerList.idToPlayer(_local2);
new AlertScreen(new PlayerOptions(_local3));
}
public function remove():void{
messageYN.yesButton.removeEventListener(MouseEvent.CLICK, messageY);
messageYN.noButton.removeEventListener(MouseEvent.CLICK, messageN);
challengeYN.yesButton.removeEventListener(MouseEvent.CLICK, challengeY);
challengeYN.noButton.removeEventListener(MouseEvent.CLICK, challengeN);
chatYN.yesButton.removeEventListener(MouseEvent.CLICK, chatY);
chatYN.noButton.removeEventListener(MouseEvent.CLICK, chatN);
logoutButton.removeEventListener(MouseEvent.CLICK, logoutClick);
randomButton.removeEventListener(MouseEvent.CLICK, randomClick);
chatBox.removeEventListener(TextEvent.LINK, nameClick);
chatInput.removeEventListener(KeyboardEvent.KEY_DOWN, chatPress);
main.chat.setInLobby(false);
main.me.setInLobby(false);
main.playerList.pause();
}
function __setProp_randomButton_LobbyPage_stuff_1(){
try {
randomButton["componentInspectorSetting"] = true;
} catch(e:Error) {
};
randomButton.emphasized = false;
randomButton.enabled = true;
randomButton.label = "RandomMatch";
randomButton.labelPlacement = "right";
randomButton.selected = false;
randomButton.toggle = false;
randomButton.visible = true;
try {
randomButton["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
private function chatPress(_arg1:KeyboardEvent):void{
var _local2:String;
if (_arg1.keyCode == 13){
_local2 = chatInput.text;
if (_local2.length > 0){
main.socket.write(("chat`" + _local2));
chatInput.text = "";
};
};
}
public function setChat(_arg1:String):void{
chatBox.htmlText = _arg1;
chatBox.verticalScrollPosition = chatBox.maxVerticalScrollPosition;
}
private function chatN(_arg1:MouseEvent):void{
main.chat.hide();
}
}
}//package
Section 116
//LoginPage (LoginPage)
package {
import fl.controls.*;
import flash.display.*;
import flash.events.*;
import fl.data.*;
import flash.net.*;
public class LoginPage extends MovieClip {
public var go_bt:Button;
public var j1;
public var collObj1:DataProvider;
public var passBox1:TextInput;
public var passBox2:TextInput;
private var port:Number;// = 9151
public var collProp1:Object;
public var musicButton:SimpleButton;
private var main:MovieClip;
public var itemObj1:SimpleCollectionItem;
public var createAccount_bt:Button;
public var gameButton:SimpleButton;
public var collProps1:Array;
public var serverOptions:ComboBox;
public var login_bt:Button;
public var i1:int;
public var nameBox1:TextInput;
public var nameBox2:TextInput;
public function LoginPage():void{
main = GetMain.main;
port = 9151;
super();
addFrameScript(0, frame1);
main.playerList.clearList();
main.chat.clearMessages();
if (main.deleteableScreen != null){
main.deleteableScreen.remove();
};
login_bt.addEventListener(MouseEvent.MOUSE_DOWN, login);
createAccount_bt.addEventListener(MouseEvent.MOUSE_DOWN, createAccount);
go_bt.addEventListener(MouseEvent.MOUSE_DOWN, loginGuest);
musicButton.addEventListener(MouseEvent.MOUSE_DOWN, musicPress);
gameButton.addEventListener(MouseEvent.MOUSE_DOWN, gamePress);
__setProp_go_bt_LoginPage_content_1();
__setProp_serverOptions_LoginPage_content_1();
__setProp_login_bt_LoginPage_content_1();
__setProp_passBox2_LoginPage_content_1();
__setProp_createAccount_bt_LoginPage_content_1();
__setProp_passBox1_LoginPage_content_1();
}
private function loginGuest(_arg1:MouseEvent){
main.changePage(new ConnectingPage("", "", true, (port + serverOptions.selectedIndex)));
}
private function musicPress(_arg1:MouseEvent):void{
var _local2:URLRequest;
_local2 = new URLRequest("http://flashgigant.newgrounds.com/");
navigateToURL(_local2);
}
function __setProp_passBox1_LoginPage_content_1(){
try {
passBox1["componentInspectorSetting"] = true;
} catch(e:Error) {
};
passBox1.displayAsPassword = true;
passBox1.editable = true;
passBox1.enabled = true;
passBox1.maxChars = 0;
passBox1.restrict = "";
passBox1.text = "";
passBox1.visible = true;
try {
passBox1["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
function __setProp_login_bt_LoginPage_content_1(){
try {
login_bt["componentInspectorSetting"] = true;
} catch(e:Error) {
};
login_bt.emphasized = false;
login_bt.enabled = true;
login_bt.label = "Log In";
login_bt.labelPlacement = "right";
login_bt.selected = false;
login_bt.toggle = false;
login_bt.visible = true;
try {
login_bt["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
function __setProp_go_bt_LoginPage_content_1(){
try {
go_bt["componentInspectorSetting"] = true;
} catch(e:Error) {
};
go_bt.emphasized = false;
go_bt.enabled = true;
go_bt.label = "Go";
go_bt.labelPlacement = "right";
go_bt.selected = false;
go_bt.toggle = false;
go_bt.visible = true;
try {
go_bt["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
private function login(_arg1:MouseEvent){
var _local2:String;
var _local3:String;
_local2 = nameBox2.text;
_local3 = passBox2.text;
main.changePage(new ConnectingPage(_local2, _local3, false, (port + serverOptions.selectedIndex)));
}
function frame1(){
serverOptions.selectedIndex = GetMain.main.serverID;
}
private function gamePress(_arg1:MouseEvent):void{
var _local2:URLRequest;
_local2 = new URLRequest("http://jiggmin.com");
navigateToURL(_local2);
}
public function remove():void{
main.serverID = serverOptions.selectedIndex;
trace(("remove: " + main.serverID));
login_bt.removeEventListener(MouseEvent.MOUSE_DOWN, login);
createAccount_bt.removeEventListener(MouseEvent.MOUSE_DOWN, createAccount);
go_bt.removeEventListener(MouseEvent.MOUSE_DOWN, loginGuest);
}
private function createAccount(_arg1:MouseEvent){
var userName:String;
var userPass:String;
var loader:URLLoader;
var request:URLRequest;
var createAccountResult:Function;
var e = _arg1;
createAccountResult = function (_arg1:Event){
var _local2:URLLoader;
_local2 = URLLoader(_arg1.target);
if (_local2.data != "success"){
new AlertScreen(new Message(_local2.data));
} else {
main.changePage(new ConnectingPage(userName, userPass, false, (port + serverOptions.selectedIndex)));
};
};
userName = nameBox1.text;
userPass = passBox1.text;
loader = new URLLoader();
loader.addEventListener(Event.COMPLETE, createAccountResult);
request = new URLRequest(("http://jiggmin2.com/register_user.php?" + Math.ceil((Math.random() * 999999))));
request.data = ((("name=" + userName) + "&password=") + userPass);
request.method = "POST";
loader.load(request);
}
function __setProp_passBox2_LoginPage_content_1(){
try {
passBox2["componentInspectorSetting"] = true;
} catch(e:Error) {
};
passBox2.displayAsPassword = true;
passBox2.editable = true;
passBox2.enabled = true;
passBox2.maxChars = 0;
passBox2.restrict = "";
passBox2.text = "";
passBox2.visible = true;
try {
passBox2["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
function __setProp_serverOptions_LoginPage_content_1(){
try {
serverOptions["componentInspectorSetting"] = true;
} catch(e:Error) {
};
collObj1 = new DataProvider();
collProps1 = [{label:"Derron", data:9151}];
i1 = 0;
while (i1 < collProps1.length) {
itemObj1 = new SimpleCollectionItem();
collProp1 = collProps1[i1];
for (j1 in collProp1) {
itemObj1[j1] = collProp1[j1];
};
collObj1.addItem(itemObj1);
i1++;
};
serverOptions.dataProvider = collObj1;
serverOptions.editable = false;
serverOptions.enabled = true;
serverOptions.prompt = "";
serverOptions.restrict = "";
serverOptions.rowCount = 3;
serverOptions.visible = true;
try {
serverOptions["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
function __setProp_createAccount_bt_LoginPage_content_1(){
try {
createAccount_bt["componentInspectorSetting"] = true;
} catch(e:Error) {
};
createAccount_bt.emphasized = false;
createAccount_bt.enabled = true;
createAccount_bt.label = "Create Account";
createAccount_bt.labelPlacement = "right";
createAccount_bt.selected = false;
createAccount_bt.toggle = false;
createAccount_bt.visible = true;
try {
createAccount_bt["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
}
}//package
Section 117
//LogoIntroMusic (LogoIntroMusic)
package {
import flash.media.*;
public dynamic class LogoIntroMusic extends Sound {
}
}//package
Section 118
//Maths (Maths)
package {
public class Maths {
public static function RAD_DEG():Number{
return ((180 / Math.PI));
}
public static function formatNumberWithCommas(_arg1){
var _local2:String;
_local2 = (_arg1 + "");
if (_local2.length < 4){
return (_local2);
};
return (((formatNumberWithCommas(_local2.slice(0, -3)) + ",") + _local2.slice(-3)));
}
public static function applyLimits(_arg1:Number, _arg2:Number, _arg3:Number):Number{
if (_arg1 < _arg2){
_arg1 = _arg2;
};
if (_arg1 > _arg3){
_arg1 = _arg3;
};
return (_arg1);
}
public static function pythag(_arg1:Number, _arg2:Number):Number{
return (Math.sqrt(((_arg1 * _arg1) + (_arg2 * _arg2))));
}
public static function DEG_RAD():Number{
return ((Math.PI / 180));
}
public static function rotDist(_arg1, _arg2){
var _local3:Number;
_local3 = (_arg1 - _arg2);
if (_local3 > 180){
_local3 = (-360 + _local3);
};
if (_local3 < -180){
_local3 = (360 + _local3);
};
return (_local3);
}
}
}//package
Section 119
//MePlayer (MePlayer)
package {
public class MePlayer extends Player {
private var lobbyPage:LobbyPage;
private var inLobby:Boolean;// = false
public function MePlayer(_arg1:String):void{
inLobby = false;
super(_arg1);
main.me = this;
}
override public function setName(_arg1:String):void{
super.setName(_arg1);
setNameBox();
}
public function setInLobby(_arg1:Boolean):void{
inLobby = _arg1;
if (_arg1 == true){
setNameBox();
};
}
override public function scorePoint():void{
setScore((score + 1));
Sounds.startSound(new GoodScore(), 0.5);
main.socket.write(("set_score`" + score));
}
public function setNameBox():void{
var _local1:String;
var _local2:Boolean;
if (inLobby){
_local1 = (((((("Welcome, <font size='14' color='#000000'>" + name) + "</font>! <br/>Rank: ") + rank) + " (") + rankGroup) + ")");
_local2 = main.chat.showing;
lobbyPage.setNameBox(_local1, acceptChallenges, acceptMessages, _local2);
};
}
override public function setRank(_arg1:Number):void{
super.setRank(_arg1);
setNameBox();
}
public function setLobbyPage(_arg1:LobbyPage):void{
lobbyPage = _arg1;
}
override public function makePaddle(_arg1:Number, _arg2:Number, _arg3:Game):Paddle{
var _local4:ControlPaddle;
_local4 = new ControlPaddle(_arg1, _arg2, _arg3);
return (_local4);
}
}
}//package
Section 120
//Message (Message)
package {
import fl.controls.*;
import flash.display.*;
import flash.events.*;
public class Message extends MovieClip {
public var textBox:TextArea;
public var ok_bt:Button;
public function Message(_arg1:String):void{
textBox.text = _arg1;
ok_bt.addEventListener(MouseEvent.MOUSE_DOWN, die);
__setProp_ok_bt_Message_Layer2_1();
__setProp_textBox_Message_Layer2_1();
}
private function die(_arg1:MouseEvent):void{
ok_bt.removeEventListener(MouseEvent.MOUSE_DOWN, die);
AlertScreen(parent.parent).gotoAndPlay("die");
}
function __setProp_textBox_Message_Layer2_1(){
try {
textBox["componentInspectorSetting"] = true;
} catch(e:Error) {
};
textBox.condenseWhite = false;
textBox.editable = false;
textBox.enabled = true;
textBox.horizontalScrollPolicy = "auto";
textBox.htmlText = "";
textBox.maxChars = 0;
textBox.restrict = "";
textBox.text = "";
textBox.verticalScrollPolicy = "auto";
textBox.visible = true;
textBox.wordWrap = true;
try {
textBox["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
function __setProp_ok_bt_Message_Layer2_1(){
try {
ok_bt["componentInspectorSetting"] = true;
} catch(e:Error) {
};
ok_bt.emphasized = false;
ok_bt.enabled = true;
ok_bt.label = "OK";
ok_bt.labelPlacement = "right";
ok_bt.selected = false;
ok_bt.toggle = false;
ok_bt.visible = true;
try {
ok_bt["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
}
}//package
Section 121
//MochiAd (MochiAd)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.net.*;
import flash.system.*;
public class MochiAd {
public static function getVersion():String{
return ("2.1");
}
public static function showTimedAd(_arg1:Object):void{
MochiAd.showInterLevelAd(_arg1);
}
public static function _allowDomains(_arg1:String):String{
var _local2:String;
_local2 = _arg1.split("/")[2].split(":")[0];
Security.allowDomain("*");
Security.allowDomain(_local2);
Security.allowInsecureDomain("*");
Security.allowInsecureDomain(_local2);
return (_local2);
}
public static function load(_arg1:Object):MovieClip{
var DEFAULTS:Object;
var clip:Object;
var depth:Number;
var mc:MovieClip;
var wh:Array;
var lv:URLVariables;
var k:String;
var server:String;
var hostname:String;
var lc:LocalConnection;
var name:String;
var loader:Loader;
var f:Function;
var g:Function;
var req:URLRequest;
var v:Object;
var options = _arg1;
DEFAULTS = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = MochiAd._parseOptions(options, DEFAULTS);
options.swfv = 9;
options.mav = MochiAd.getVersion();
clip = options.clip;
if (!MochiAd._isNetworkAvailable()){
return (null);
};
if (clip._mochiad_loaded){
return (null);
};
depth = options.depth;
delete options.depth;
mc = createEmptyMovieClip(clip, "_mochiad", depth);
wh = MochiAd._getRes(options, clip);
options.res = ((wh[0] + "x") + wh[1]);
options.server = (options.server + options.id);
delete options.id;
clip._mochiad_loaded = true;
if (clip.loaderInfo.loaderURL.indexOf("http") == 0){
options.as3_swf = clip.loaderInfo.loaderURL;
};
lv = new URLVariables();
for (k in options) {
v = options[k];
if (!(v is Function)){
lv[k] = v;
};
};
server = lv.server;
delete lv.server;
hostname = _allowDomains(server);
lc = new LocalConnection();
lc.client = mc;
name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_");
lc.allowDomain("*", "localhost");
lc.allowInsecureDomain("*", "localhost");
lc.connect(name);
mc.lc = lc;
lv.lc = name;
lv.st = getTimer();
loader = new Loader();
f = function (_arg1:Object):void{
mc._mochiad_ctr_failed = true;
};
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f);
g = function (_arg1:Object):void{
MochiAd.unload(clip);
};
loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g);
req = new URLRequest((server + ".swf"));
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
loader.load(req);
mc.addChild(loader);
mc._mochiad_ctr = loader;
return (mc);
}
public static function sendHighScore(_arg1:Object, _arg2:Object, _arg3:Object=null):Boolean{
var _local4:MovieClip;
_local4 = MochiAd._loadCommunicator({clip:_arg1.clip, id:_arg1.id});
if (!_local4){
return (false);
};
_local4.doSend(["sendHighScore", _arg1], _arg2, _arg3);
return (true);
}
public static function _parseOptions(_arg1:Object, _arg2:Object):Object{
var _local3:Object;
var _local4:String;
var _local5:Array;
var _local6:Number;
var _local7:Array;
_local3 = {};
for (_local4 in _arg2) {
_local3[_local4] = _arg2[_local4];
};
if (_arg1){
for (_local4 in _arg1) {
_local3[_local4] = _arg1[_local4];
};
};
_arg1 = _local3.clip.loaderInfo.parameters.mochiad_options;
if (_arg1){
_local5 = _arg1.split("&");
_local6 = 0;
while (_local6 < _local5.length) {
_local7 = _local5[_local6].split("=");
_local3[unescape(_local7[0])] = unescape(_local7[1]);
_local6++;
};
};
return (_local3);
}
public static function _isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function unload(_arg1:Object):Boolean{
if (((_arg1.clip) && (_arg1.clip._mochiad))){
_arg1 = _arg1.clip;
};
if (!_arg1._mochiad){
return (false);
};
if (_arg1._mochiad.onUnload){
_arg1._mochiad.onUnload();
};
_arg1.removeChild(_arg1._mochiad);
delete _arg1._mochiad_loaded;
delete _arg1._mochiad;
return (true);
}
public static function showInterLevelAd(_arg1:Object):void{
var DEFAULTS:Object;
var clip:Object;
var ad_msec:Number;
var ad_timeout:Number;
var fadeout_time:Number;
var mc:MovieClip;
var wh:Array;
var w:Number;
var h:Number;
var chk:MovieClip;
var options = _arg1;
DEFAULTS = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{
this.clip.stop();
}, ad_finished:function ():void{
this.clip.play();
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
ad_msec = 11000;
ad_timeout = options.ad_timeout;
delete options.ad_timeout;
fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
options.ad_finished();
};
wh = MochiAd._getRes(options, clip);
w = wh[0];
h = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
var _local1:Number;
_local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
mc.unloadAd = function ():void{
MochiAd.unload(clip);
};
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object;
_local2 = mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = (_arg1 - 250);
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Number;
var _local3:Boolean;
var _local4:Number;
_local1 = this.parent._mochiad_ctr;
_local2 = (getTimer() - this.started);
_local3 = false;
if (!chk.showing){
_local4 = _local1.loaderInfo.bytesTotal;
if ((((_local4 > 0)) || (("number" == "undefined")))){
chk.showing = true;
chk.started = getTimer();
} else {
if (_local2 > chk.ad_timeout){
_local3 = true;
};
};
};
if ((((_local2 > chk.ad_msec)) || (this.parent._mochiad_ctr_failed))){
_local3 = true;
};
if (_local3){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function _getRes(_arg1:Object, _arg2:Object):Array{
var _local3:Object;
var _local4:Number;
var _local5:Number;
var _local6:Array;
_local3 = _arg2.getBounds(_arg2.root);
_local4 = 0;
_local5 = 0;
if (typeof(_arg1.res) != "undefined"){
_local6 = _arg1.res.split("x");
_local4 = parseFloat(_local6[0]);
_local5 = parseFloat(_local6[1]);
} else {
_local4 = (_local3.xMax - _local3.xMin);
_local5 = (_local3.yMax - _local3.yMin);
};
if ((((_local4 == 0)) || ((_local5 == 0)))){
_local4 = _arg2.stage.stageWidth;
_local5 = _arg2.stage.stageHeight;
};
return ([_local4, _local5]);
}
public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{
var _local4:MovieClip;
_local4 = new MovieClip();
if (((false) && (_arg3))){
_arg1.addChildAt(_local4, _arg3);
} else {
_arg1.addChild(_local4);
};
_arg1[_arg2] = _local4;
_local4["_name"] = _arg2;
return (_local4);
}
public static function _loadCommunicator(_arg1:Object):MovieClip{
var DEFAULTS:Object;
var clip:Object;
var clipname:String;
var server:String;
var depth:Number;
var mc:MovieClip;
var lv:URLVariables;
var k:String;
var lc:LocalConnection;
var name:String;
var req:URLRequest;
var loader:Loader;
var options = _arg1;
DEFAULTS = {com_server:"http://x.mochiads.com/com/1/", method:"loadCommunicator", depth:10337, id:"_UNKNOWN_"};
options = MochiAd._parseOptions(options, DEFAULTS);
options.swfv = 9;
options.mav = MochiAd.getVersion();
clip = options.clip;
clipname = ("_mochiad_com_" + options.id);
if (!MochiAd._isNetworkAvailable()){
return (null);
};
if (clip[clipname]){
return (clip[clipname]);
};
server = (options.com_server + options.id);
MochiAd._allowDomains(server);
delete options.id;
delete options.com_server;
depth = options.depth;
delete options.depth;
mc = createEmptyMovieClip(clip, clipname, depth);
lv = new URLVariables();
for (k in options) {
lv[k] = options[k];
};
lc = new LocalConnection();
lc.client = mc;
name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_");
lc.allowDomain("*", "localhost");
lc.allowInsecureDomain("*", "localhost");
lc.connect(name);
mc.name = name;
mc.lc = lc;
lv.lc = name;
mc._id = 0;
mc._queue = [];
mc.rpcResult = function (_arg1:Object):void{
var _local3:Array;
var _local4:Array;
var _local5:Number;
var _local6:Object;
var _local7:Object;
_arg1 = parseInt(_arg1.toString());
_local3 = mc._callbacks[_arg1];
if (typeof(_local3) == "undefined"){
return;
};
delete mc._callbacks[_arg1];
_local4 = [];
_local5 = 2;
while (_local5 < _local3.length) {
_local4.push(_local3[_local5]);
_local5++;
};
_local5 = 1;
while (_local5 < arguments.length) {
_local4.push(arguments[_local5]);
_local5++;
};
_local6 = _local3[1];
_local7 = _local3[0];
if (((_local7) && ((typeof(_local6) == "string")))){
_local6 = _local7[_local6];
};
if (typeof(_local6) == "function"){
_local6.apply(_local7, _local4);
};
};
mc._didConnect = function (_arg1:String):void{
var _local2:Array;
var _local3:Function;
var _local4:Number;
var _local5:Array;
mc._endpoint = _arg1;
_local2 = mc._queue;
delete mc._queue;
_local3 = mc.doSend;
_local4 = 0;
while (_local4 < _local2.length) {
_local5 = _local2[_local4];
_local3.apply(this, _local5);
_local4++;
};
};
mc.doSend = function (_arg1:Array, _arg2:Object, _arg3:Object):void{
var _local5:Number;
var _local6:LocalConnection;
var _local7:Array;
var _local8:Number;
if (mc._endpoint == null){
_local7 = [];
_local8 = 0;
while (_local8 < arguments.length) {
_local7.push(arguments[_local8]);
_local8++;
};
mc._queue.push(_local7);
return;
};
mc._id = (mc._id + 1);
_local5 = mc._id;
mc._callbacks[_local5] = [_arg2, ((_arg3) || (_arg2))];
_local6 = new LocalConnection();
_local6.send(mc._endpoint, "rpc", _local5, _arg1);
};
mc._callbacks = {};
mc._callbacks[0] = [mc, "_didConnect"];
lv.st = getTimer();
req = new URLRequest((server + ".swf"));
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
loader = new Loader();
loader.load(req);
mc.addChild(loader);
mc._mochiad_com = loader;
return (mc);
}
public static function showPreGameAd(_arg1:Object):void{
var DEFAULTS:Object;
var clip:Object;
var ad_msec:Number;
var ad_timeout:Number;
var fadeout_time:Number;
var mc:MovieClip;
var wh:Array;
var w:Number;
var h:Number;
var chk:MovieClip;
var bar:MovieClip;
var bar_color:Number;
var bar_background:Number;
var bar_outline:Number;
var backing_mc:MovieClip;
var backing:Object;
var inside_mc:MovieClip;
var inside:Object;
var outline_mc:MovieClip;
var outline:Object;
var complete:Boolean;
var unloaded:Boolean;
var f:Function;
var r:MovieClip;
var options = _arg1;
DEFAULTS = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, ad_started:function ():void{
this.clip.stop();
}, ad_finished:function ():void{
this.clip.play();
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
ad_msec = 11000;
ad_timeout = options.ad_timeout;
delete options.ad_timeout;
fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
var fn:Function;
fn = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
};
wh = MochiAd._getRes(options, clip);
w = wh[0];
h = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.x = (w * -0.5);
chk.y = (h * -0.5);
bar = createEmptyMovieClip(chk, "_mochiad_bar", 4);
bar.x = 10;
bar.y = (h - 20);
bar_color = options.color;
delete options.color;
bar_background = options.background;
delete options.background;
bar_outline = options.outline;
delete options.outline;
backing_mc = createEmptyMovieClip(bar, "_outline", 1);
backing = backing_mc.graphics;
backing.beginFill(bar_background);
backing.moveTo(0, 0);
backing.lineTo((w - 20), 0);
backing.lineTo((w - 20), 10);
backing.lineTo(0, 10);
backing.lineTo(0, 0);
backing.endFill();
inside_mc = createEmptyMovieClip(bar, "_inside", 2);
inside = inside_mc.graphics;
inside.beginFill(bar_color);
inside.moveTo(0, 0);
inside.lineTo((w - 20), 0);
inside.lineTo((w - 20), 10);
inside.lineTo(0, 10);
inside.lineTo(0, 0);
inside.endFill();
inside_mc.scaleX = 0;
outline_mc = createEmptyMovieClip(bar, "_outline", 3);
outline = outline_mc.graphics;
outline.lineStyle(0, bar_outline, 100);
outline.moveTo(0, 0);
outline.lineTo((w - 20), 0);
outline.lineTo((w - 20), 10);
outline.lineTo(0, 10);
outline.lineTo(0, 0);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
var _local1:Number;
_local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
complete = false;
unloaded = false;
f = function (_arg1:Event):void{
complete = true;
if (unloaded){
MochiAd.unload(clip);
};
};
clip.loaderInfo.addEventListener(Event.COMPLETE, f);
if ((clip.root is MovieClip)){
r = (clip.root as MovieClip);
if (r.framesLoaded >= r.totalFrames){
complete = true;
};
};
mc.unloadAd = function ():void{
unloaded = true;
if (complete){
MochiAd.unload(clip);
};
};
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object;
_local2 = mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = _arg1;
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Object;
var _local3:Number;
var _local4:Boolean;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Object;
var _local10:Number;
var _local11:Number;
if (!this.parent.parent){
delete this["onEnterFrame"];
return;
};
_local1 = this.parent.parent.root;
_local2 = this.parent._mochiad_ctr;
_local3 = (getTimer() - this.started);
_local4 = false;
_local5 = _local1.loaderInfo.bytesTotal;
_local6 = _local1.loaderInfo.bytesLoaded;
_local7 = ((100 * _local6) / _local5);
_local8 = ((100 * _local3) / chk.ad_msec);
_local9 = this._mochiad_bar._inside;
_local10 = Math.min(100, Math.min(((_local7) || (0)), _local8));
_local10 = Math.max(this.last_pcnt, _local10);
this.last_pcnt = _local10;
_local9.scaleX = (_local10 * 0.01);
if (!chk.showing){
_local11 = _local2.loaderInfo.bytesTotal;
if ((((_local11 > 0)) || (("number" == "undefined")))){
chk.showing = true;
chk.started = getTimer();
} else {
if (_local3 > chk.ad_timeout){
_local4 = true;
};
};
};
if ((((_local3 > chk.ad_msec)) || (this.parent._mochiad_ctr_failed))){
_local4 = true;
};
if (((complete) && (_local4))){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function showPreloaderAd(_arg1:Object):void{
MochiAd.showPreGameAd(_arg1);
}
public static function fetchHighScores(_arg1:Object, _arg2:Object, _arg3:Object=null):Boolean{
var _local4:MovieClip;
_local4 = MochiAd._loadCommunicator({clip:_arg1.clip, id:_arg1.id});
if (!_local4){
return (false);
};
_local4.doSend(["fetchHighScores", _arg1], _arg2, _arg3);
return (true);
}
public static function doOnEnterFrame(_arg1:MovieClip):void{
var f:Function;
var mc = _arg1;
f = function (_arg1:Object):void{
if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){
mc.onEnterFrame();
} else {
mc.removeEventListener(Event.ENTER_FRAME, f);
};
};
mc.addEventListener(Event.ENTER_FRAME, f);
}
}
}//package
Section 122
//Paddle (Paddle)
package {
import flash.display.*;
import flash.events.*;
public class Paddle extends MovieClip {
protected var left:String;// = "false"
protected var right:String;// = "false"
private var startX:Number;// = 0
protected var vel:Number;// = 0
private var dist:Number;// = 125
protected var correctionFrames:Number;// = 0
private var main:MovieClip;
protected var correctionX:Number;// = 0
private var fric:Number;// = 0.85
public var graphic:MovieClip;
private var accel:Number;// = 3
protected var game:Game;
public function Paddle(_arg1:Number, _arg2:Number, _arg3:Game):void{
vel = 0;
accel = 3;
fric = 0.85;
dist = 125;
correctionFrames = 0;
correctionX = 0;
startX = 0;
right = "false";
left = "false";
main = GetMain.main;
super();
this.game = _arg3;
this.startX = _arg1;
x = _arg1;
y = _arg2;
addEventListener(Event.ENTER_FRAME, go);
main.curPage.paddleHolder.addChild(this);
}
private function go(_arg1:Event){
step();
correct();
}
protected function correct():void{
if (correctionFrames > 0){
correctionFrames--;
x = (x + correctionX);
};
}
public function bounce(_arg1:Ball):void{
graphic.spin.gotoAndPlay("hit");
}
public function setPos(_arg1:Number, _arg2:Number, _arg3:String, _arg4:String, _arg5:Number, _arg6:Number):void{
}
public function remove():void{
removeEventListener(Event.ENTER_FRAME, go);
if (parent != null){
parent.removeChild(this);
};
}
protected function step():void{
x = (x + vel);
graphic.spin.rotation = (graphic.spin.rotation + (vel * 1.5));
if (right == "true"){
vel = (vel + accel);
};
if (left == "true"){
vel = (vel - accel);
};
vel = (vel * fric);
if ((x - startX) > dist){
x = (startX + dist);
};
if ((x - startX) < -(dist)){
x = (startX - dist);
};
x = Math.round(x);
vel = (Math.round((vel * 100)) / 100);
}
public function stopSending():void{
}
}
}//package
Section 123
//Player (Player)
package {
import flash.display.*;
import flash.text.*;
public class Player {
protected var group:Number;// = 0
protected var lastPlayed:Number;// = 0
protected var name:String;// = "unknown"
protected var acceptChallenges:String;// = "true"
protected var id:String;
protected var nameColor:Number;// = 0x666666
protected var score:Number;// = 0
protected var rank:Number;// = 0
protected var main:MovieClip;
protected var rankGroup:String;
protected var available:String;// = "false"
protected var side:String;
protected var scoreBox:TextField;
protected var opponent:Player;
protected var pingTime:Number;// = 0
protected var listName:ListName;
protected var acceptMessages:String;// = "true"
public function Player(_arg1:String):void{
main = GetMain.main;
name = "unknown";
rank = 0;
group = 0;
available = "false";
acceptMessages = "true";
acceptChallenges = "true";
lastPlayed = 0;
nameColor = 0x666666;
pingTime = 0;
score = 0;
super();
this.id = _arg1;
listName = main.playerList.addPlayer(this);
}
public function getGroup():Number{
return (group);
}
public function remove():void{
main.playerList.removePlayer(this);
}
public function getName():String{
return (name);
}
public function setName(_arg1:String):void{
this.name = _arg1;
listName.setName(_arg1);
}
public function setAvailable(_arg1:String):void{
this.available = _arg1;
if (_arg1 == "true"){
this.listName.alpha = 1;
} else {
this.listName.alpha = 0.4;
};
}
public function getAvailable():String{
return (available);
}
public function getAcceptChallenges():String{
return (acceptChallenges);
}
public function getHTMLNameColor():String{
var _local1:String;
_local1 = ("#" + nameColor.toString(16));
return (_local1);
}
public function setAcceptChallenges(_arg1:String):void{
this.acceptChallenges = _arg1;
}
public function scorePoint():void{
setScore((score + 1));
Sounds.startSound(new BadScore(), 0.5);
}
public function getRank():Number{
return (rank);
}
public function setLastPlayed(_arg1:Number):void{
lastPlayed = _arg1;
}
public function setRank(_arg1:Number):void{
this.rank = _arg1;
rankGroup = "Puppy";
if (_arg1 > 5){
rankGroup = "Beginner";
};
if (_arg1 > 10){
rankGroup = "Moderate";
};
if (_arg1 > 25){
rankGroup = "Shark";
};
if (_arg1 > 50){
rankGroup = "Master";
};
listName.setRank(_arg1);
}
public function setGroup(_arg1:Number):void{
this.group = _arg1;
if (_arg1 == 0){
nameColor = 0x666666;
};
if (_arg1 == 1){
nameColor = 301467;
};
if (_arg1 == 2){
nameColor = 0xFF;
};
if (_arg1 == 3){
nameColor = 12192425;
};
listName.setColor(nameColor);
}
public function getListName():ListName{
return (listName);
}
public function setScore(_arg1:Number):void{
score = _arg1;
scoreBox.text = score.toString();
}
public function getScore():Number{
return (score);
}
public function setPingTime(_arg1:Number){
pingTime = _arg1;
listName.setPingTime(pingTime);
}
public function getNameColor():Number{
return (nameColor);
}
public function getAcceptMessages():String{
return (acceptMessages);
}
public function getID():String{
return (id);
}
public function setAcceptMessages(_arg1:String):void{
this.acceptMessages = _arg1;
}
public function makePaddle(_arg1:Number, _arg2:Number, _arg3:Game):Paddle{
var _local4:RemotePaddle;
_local4 = new RemotePaddle(_arg1, _arg2, _arg3);
return (_local4);
}
public function startGame(_arg1:String, _arg2:Player):void{
this.scoreBox = main.curPage[(_arg1 + "Score")];
this.opponent = _arg2;
main.curPage[(_arg1 + "Name")].text = name;
lastPlayed = new Date().valueOf();
setScore(0);
}
public function getRankGroup():String{
return (rankGroup);
}
public function getLastPlayed():Number{
return (lastPlayed);
}
}
}//package
Section 124
//PlayerList (PlayerList)
package {
import flash.display.*;
import flash.utils.*;
public class PlayerList extends MovieClip {
private var paused:Boolean;// = true
private var incY:Number;// = 14
private var listName:ListName;
private var sortInterval:uint;
private var posY:Number;// = 0
private var lobbyPage:LobbyPage;
private var players:Object;
public function PlayerList():void{
players = new Object();
posY = 0;
incY = 14;
paused = true;
super();
}
public function resume(_arg1):void{
this.lobbyPage = _arg1;
if (paused == true){
paused = false;
sortInterval = setInterval(sort, 1000);
sort();
};
}
public function idToPlayer(_arg1:String):Player{
var _local2:Player;
_local2 = players[_arg1];
return (_local2);
}
public function clearList():void{
var _local1:Player;
for each (_local1 in players) {
_local1.remove();
};
while (numChildren > 0) {
removeChildAt(0);
};
}
private function sort():void{
var _local1:Array;
var _local2:Player;
var _local3:int;
var _local4:int;
_local1 = new Array();
for each (_local2 in players) {
_local1.push(_local2);
};
_local1.sort(superSort);
posY = 0;
_local3 = 0;
_local4 = _local1.length;
lobbyPage.playersBox.text = ("Players Online: " + _local4);
_local3 = 0;
while (_local3 < _local4) {
_local2 = _local1[_local3];
_local2.getListName().y = posY;
posY = (posY + incY);
_local3++;
};
}
public function removePlayer(_arg1:Player):void{
var _local2:*;
_local2 = _arg1.getListName();
_local2.remove();
removeChild(_local2);
delete players[_arg1.getID()];
}
private function superSort(_arg1:Player, _arg2:Player):Number{
var _local3:Number;
_local3 = 0;
if (_arg1.getLastPlayed() > _arg2.getLastPlayed()){
_local3 = -1;
} else {
if (_arg1.getLastPlayed() < _arg2.getLastPlayed()){
_local3 = 1;
} else {
if (_arg1.getRank() > _arg2.getRank()){
_local3 = -1;
};
if (_arg1.getRank() < _arg2.getRank()){
_local3 = 1;
};
};
};
return (_local3);
}
public function addPlayer(_arg1:Player):ListName{
players[_arg1.getID()] = _arg1;
listName = new ListName(_arg1);
addChild(listName);
listName.y = posY;
posY = (posY + incY);
return (listName);
}
public function pause():void{
if (paused == false){
paused = true;
clearInterval(sortInterval);
};
}
}
}//package
Section 125
//PlayerMessage (PlayerMessage)
package {
import fl.controls.*;
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class PlayerMessage extends MovieClip {
public var nameBox:TextField;
public var textBox:TextArea;
public var closeButton:Button;
private var main:MovieClip;
public var replyButton:Button;
private var player:Player;
public function PlayerMessage(_arg1:Player, _arg2:String):void{
main = GetMain.main;
super();
this.player = _arg1;
textBox.text = main.chat.sanitize(_arg2);
nameBox.text = _arg1.getName();
closeButton.addEventListener(MouseEvent.CLICK, closeClick);
replyButton.addEventListener(MouseEvent.CLICK, replyClick);
nameBox.addEventListener(MouseEvent.MOUSE_OVER, nameOver);
nameBox.addEventListener(MouseEvent.MOUSE_OUT, nameOut);
nameBox.addEventListener(MouseEvent.CLICK, nameClick);
__setProp_replyButton_PlayerMessage_Layer2_1();
__setProp_closeButton_PlayerMessage_Layer2_1();
__setProp_textBox_PlayerMessage_Layer2_1();
}
function __setProp_replyButton_PlayerMessage_Layer2_1(){
try {
replyButton["componentInspectorSetting"] = true;
} catch(e:Error) {
};
replyButton.emphasized = false;
replyButton.enabled = true;
replyButton.label = "Reply";
replyButton.labelPlacement = "right";
replyButton.selected = false;
replyButton.toggle = false;
replyButton.visible = true;
try {
replyButton["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
private function closeClick(_arg1:MouseEvent):void{
remove();
}
private function remove(){
closeButton.removeEventListener(MouseEvent.CLICK, closeClick);
replyButton.removeEventListener(MouseEvent.CLICK, replyClick);
AlertScreen(parent.parent).gotoAndPlay("die");
}
function __setProp_closeButton_PlayerMessage_Layer2_1(){
try {
closeButton["componentInspectorSetting"] = true;
} catch(e:Error) {
};
closeButton.emphasized = false;
closeButton.enabled = true;
closeButton.label = "Close";
closeButton.labelPlacement = "right";
closeButton.selected = false;
closeButton.toggle = false;
closeButton.visible = true;
try {
closeButton["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
function __setProp_textBox_PlayerMessage_Layer2_1(){
try {
textBox["componentInspectorSetting"] = true;
} catch(e:Error) {
};
textBox.condenseWhite = false;
textBox.editable = false;
textBox.enabled = true;
textBox.horizontalScrollPolicy = "auto";
textBox.htmlText = "";
textBox.maxChars = 0;
textBox.restrict = "";
textBox.text = "";
textBox.verticalScrollPolicy = "auto";
textBox.visible = true;
textBox.wordWrap = true;
try {
textBox["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
private function nameClick(_arg1:MouseEvent):void{
new AlertScreen(new PlayerOptions(player));
}
private function replyClick(_arg1:MouseEvent):void{
new AlertScreen(new ComposeMessage(player));
remove();
}
private function nameOut(_arg1:MouseEvent):void{
nameBox.textColor = 301467;
}
private function nameOver(_arg1:MouseEvent):void{
nameBox.textColor = 0;
}
}
}//package
Section 126
//PlayerOptions (PlayerOptions)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class PlayerOptions extends MovieClip {
public var promoteButton:SimpleButton;
public var meScreen:MovieClip;
public var banButton:SimpleButton;
public var messageButton:SimpleButton;
public var cancelButton:SimpleButton;
public var extraBG:MovieClip;
public var challengeButton:SimpleButton;
public var ignoreButton:SimpleButton;
private var main:MovieClip;
public var flagButton:SimpleButton;
public var ignoreMod:MovieClip;
public var nameBox:TextField;
private var player:Player;
public var rankBox:TextField;
public function PlayerOptions(_arg1:Player){
main = GetMain.main;
super();
this.player = _arg1;
main.deleteableScreen = this;
nameBox.text = _arg1.getName();
rankBox.text = (((("Rank: " + _arg1.getRank()) + " (") + _arg1.getRankGroup()) + ")");
if (_arg1 != main.me){
removeChild(meScreen);
};
if (CommandHandler.ignoreArray.indexOf(_arg1) == -1){
removeChild(ignoreMod);
};
ignoreButton.addEventListener(MouseEvent.CLICK, ignoreClick);
if ((((_arg1.getAvailable() == "true")) && ((_arg1.getAcceptMessages() == "true")))){
messageButton.addEventListener(MouseEvent.CLICK, messageClick);
} else {
messageButton.alpha = 0.4;
};
cancelButton.addEventListener(MouseEvent.CLICK, cancelClick);
if (main.me.getGroup() > 0){
flagButton.addEventListener(MouseEvent.CLICK, flagClick);
} else {
flagButton.alpha = 0.4;
};
if (main.me.getGroup() > 1){
banButton.addEventListener(MouseEvent.CLICK, banClick);
} else {
removeChild(extraBG);
banButton.visible = false;
};
if (main.me.getGroup() > 2){
promoteButton.addEventListener(MouseEvent.CLICK, promoteClick);
} else {
promoteButton.visible = false;
};
if ((((_arg1.getAvailable() == "true")) && ((_arg1.getAcceptChallenges() == "true")))){
challengeButton.addEventListener(MouseEvent.CLICK, challengeClick);
} else {
challengeButton.alpha = 0.25;
};
}
private function cancelClick(_arg1:MouseEvent):void{
remove();
}
private function flagClick(_arg1:MouseEvent):void{
new AlertScreen(new ConfirmFlag(player));
remove();
}
public function remove():void{
ignoreButton.removeEventListener(MouseEvent.CLICK, ignoreClick);
messageButton.removeEventListener(MouseEvent.CLICK, messageClick);
cancelButton.removeEventListener(MouseEvent.CLICK, cancelClick);
flagButton.removeEventListener(MouseEvent.CLICK, flagClick);
banButton.removeEventListener(MouseEvent.CLICK, banClick);
promoteButton.removeEventListener(MouseEvent.CLICK, promoteClick);
challengeButton.removeEventListener(MouseEvent.CLICK, challengeClick);
AlertScreen(parent.parent).gotoAndPlay("die");
}
private function promoteClick(_arg1:MouseEvent):void{
new AlertScreen(new ConfirmPromote(player));
remove();
}
private function messageClick(_arg1:MouseEvent):void{
new AlertScreen(new ComposeMessage(player));
remove();
}
private function banClick(_arg1:MouseEvent):void{
new AlertScreen(new ConfirmBan(player));
remove();
}
private function ignoreClick(_arg1:MouseEvent):void{
new AlertScreen(new ConfirmIgnore(player));
remove();
}
private function challengeClick(_arg1:MouseEvent):void{
new AlertScreen(new SendChallenge(player));
remove();
}
}
}//package
Section 127
//Preloader (Preloader)
package {
import flash.display.*;
import flash.events.*;
public class Preloader extends Sprite {
private var button;
private var bitmap:Bitmap;
private var xRot:Number;
private var percent:Number;// = 0
private var stageWidth:Number;
private var dotHolder:Sprite;
private var dotArray:Array;
private var bitmapData:BitmapData;
private var dotArray2:Array;
private var yRot:Number;
private var lastPercentLoaded:Number;// = 0
private var stageHeight:Number;
private var fov:Number;// = 600
private var bitmapWidth:Number;// = 200
private var finishedDots:Number;// = 0
private var zRot:Number;// = 0
public function Preloader(_arg1, _arg2){
var _local3:*;
var _local4:Dot;
xRot = (Math.random() * Math.PI);
yRot = (Math.random() * Math.PI);
zRot = 0;
fov = 600;
dotArray = new Array();
dotArray2 = new Array();
lastPercentLoaded = 0;
percent = 0;
finishedDots = 0;
bitmapWidth = 200;
dotHolder = new Sprite();
super();
stageWidth = _arg1;
stageHeight = _arg2;
bitmapData = new BitmapData(bitmapWidth, stageHeight, false, 0x222222);
bitmap = new Bitmap(bitmapData);
addChildAt(bitmap, 0);
bitmap.x = ((stageWidth - bitmap.width) / 2);
dotHolder.x = ((stageWidth - bitmapWidth) / 2);
addChild(dotHolder);
_local3 = 0;
while (_local3 < 100) {
_local4 = new Dot();
dotHolder.addChild(_local4);
_local4.xPos = (((_local3 % 10) * 10) - 50);
_local4.yPos = ((Math.floor((_local3 / 10)) * 10) - 50);
_local4.zPos = -50;
dotArray.push(_local4);
dotArray2.push(_local4);
_local3++;
};
addEventListener(Event.ENTER_FRAME, loading);
}
private function loaded(_arg1:Event):void{
moveDots();
bitmapData.draw(dotHolder);
bitmapData.scroll(0, -1);
}
private function loading(_arg1:Event):void{
var _local2:MovieClip;
moveDots();
percent = ((root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal) * 100);
while (percent > lastPercentLoaded) {
_local2 = dotArray2[lastPercentLoaded];
_local2.play();
_local2.addEventListener(Event.ENTER_FRAME, activateDot);
lastPercentLoaded++;
};
if (finishedDots >= 100){
removeEventListener(Event.ENTER_FRAME, loading);
addEventListener(Event.ENTER_FRAME, loaded);
button = addChild(new PreloaderButton());
button.x = (stageWidth / 2);
button.y = (stageHeight / 3);
stage.addEventListener(MouseEvent.CLICK, removeClick);
};
}
private function activateDot(_arg1:Event):void{
var _local2:MovieClip;
_local2 = MovieClip(_arg1.target);
_local2.zPos = (_local2.zPos + 2.5);
if (_local2.zPos >= 50){
_local2.zPos = 50;
finishedDots++;
_local2.removeEventListener(Event.ENTER_FRAME, activateDot);
};
}
private function removeClick(_arg1:MouseEvent):void{
remove();
}
private function remove():void{
var _local1:MovieClip;
while (dotArray.length > 0) {
_local1 = dotArray.pop();
dotHolder.removeChild(_local1);
};
removeEventListener(Event.ENTER_FRAME, loaded);
removeEventListener(Event.ENTER_FRAME, loading);
stage.removeEventListener(MouseEvent.CLICK, removeClick);
bitmapData.dispose();
removeChild(bitmap);
removeChild(dotHolder);
parent.removeChild(this);
GetMain.main.gotoAndPlay("pages");
}
private function arrange(_arg1):void{
var _local2:*;
_arg1.sortOn("scaleX", Array.NUMERIC);
_local2 = 0;
while (_local2 < _arg1.length) {
if (dotHolder.getChildAt(_local2) != _arg1[_local2]){
dotHolder.setChildIndex(_arg1[_local2], _local2);
};
_local2++;
};
}
private function moveDots():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:MovieClip;
var _local8:*;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:*;
var _local13:*;
var _local14:*;
var _local15:*;
var _local16:*;
var _local17:*;
var _local18:*;
xRot = (xRot + 0.01502);
yRot = (yRot + 0.0213);
_local1 = Math.sin(xRot);
_local2 = Math.cos(xRot);
_local3 = Math.sin(yRot);
_local4 = Math.cos(yRot);
_local5 = Math.sin(zRot);
_local6 = Math.cos(zRot);
_local8 = 0;
while (_local8 < dotArray.length) {
_local7 = dotArray[_local8];
_local9 = _local7.xPos;
_local10 = _local7.yPos;
_local11 = _local7.zPos;
_local12 = ((_local2 * _local10) - (_local1 * _local11));
_local13 = ((_local1 * _local10) + (_local2 * _local11));
_local14 = ((_local4 * _local13) - (_local3 * _local9));
_local15 = ((_local3 * _local13) + (_local4 * _local9));
_local16 = ((_local6 * _local15) - (_local5 * _local12));
_local17 = ((_local5 * _local15) + (_local6 * _local12));
_local18 = (fov / (fov - _local14));
_local7.x = ((_local16 * _local18) + 100);
_local7.y = (((_local17 * _local18) + stageHeight) - 100);
_local7.scaleX = (_local7.scaleY = _local18);
_local8++;
};
arrange(dotArray);
}
}
}//package
Section 128
//PreloaderButton (PreloaderButton)
package {
import flash.display.*;
public dynamic class PreloaderButton extends SimpleButton {
}
}//package
Section 129
//RandomMatch (RandomMatch)
package {
import fl.controls.*;
import flash.display.*;
import flash.events.*;
public class RandomMatch extends MovieClip {
public var cancelButton:Button;
public var textBox:TextArea;
private var main:MovieClip;
public function RandomMatch():void{
main = GetMain.main;
super();
main.socket.write("random_match`");
main.deleteableScreen = this;
cancelButton.addEventListener(MouseEvent.CLICK, cancelClick);
__setProp_cancelButton_RandomMatch_Layer1_1();
__setProp_textBox_RandomMatch_Layer1_1();
}
function __setProp_textBox_RandomMatch_Layer1_1(){
try {
textBox["componentInspectorSetting"] = true;
} catch(e:Error) {
};
textBox.condenseWhite = false;
textBox.editable = false;
textBox.enabled = true;
textBox.horizontalScrollPolicy = "auto";
textBox.htmlText = "";
textBox.maxChars = 0;
textBox.restrict = "";
textBox.text = "Waiting for an opponent...";
textBox.verticalScrollPolicy = "auto";
textBox.visible = true;
textBox.wordWrap = true;
try {
textBox["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
private function cancelClick(_arg1:MouseEvent):void{
remove();
main.socket.write("cancel_random_match`");
}
function __setProp_cancelButton_RandomMatch_Layer1_1(){
try {
cancelButton["componentInspectorSetting"] = true;
} catch(e:Error) {
};
cancelButton.emphasized = false;
cancelButton.enabled = true;
cancelButton.label = "Cancel";
cancelButton.labelPlacement = "right";
cancelButton.selected = false;
cancelButton.toggle = false;
cancelButton.visible = true;
try {
cancelButton["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
public function remove():void{
cancelButton.removeEventListener(MouseEvent.CLICK, cancelClick);
AlertScreen(parent.parent).gotoAndPlay("die");
}
}
}//package
Section 130
//RecieveChallenge (RecieveChallenge)
package {
import flash.display.*;
import flash.events.*;
public class RecieveChallenge extends Confirm {
private var dead:Boolean;// = false
private var main:MovieClip;
private var player:Player;
public function RecieveChallenge(_arg1:Player):void{
main = GetMain.main;
dead = false;
super();
this.player = _arg1;
main.deleteableScreen = this;
textBox.text = (_arg1.getName() + " has challenged you to a game of Volly-Bounce! Do you accept?");
okButton.addEventListener(MouseEvent.CLICK, okClick);
cancelButton.addEventListener(MouseEvent.CLICK, cancelClick);
}
private function okClick(_arg1:MouseEvent):void{
main.socket.write("accept_challenge`");
remove();
}
private function cancelClick(_arg1:MouseEvent):void{
var me = _arg1;
try {
main.socket.write("cancel_challenge`");
} catch(exception) {
};
remove();
}
public function remove():void{
if (!dead){
dead = true;
okButton.removeEventListener(MouseEvent.CLICK, okClick);
cancelButton.removeEventListener(MouseEvent.CLICK, cancelClick);
AlertScreen(parent.parent).gotoAndPlay("die");
};
}
}
}//package
Section 131
//RemotePaddle (RemotePaddle)
package {
public class RemotePaddle extends Paddle {
public function RemotePaddle(_arg1:Number, _arg2:Number, _arg3:Game):void{
super(_arg1, _arg2, _arg3);
}
override public function setPos(_arg1:Number, _arg2:Number, _arg3:String, _arg4:String, _arg5:Number, _arg6:Number):void{
var _local7:Number;
var _local8:Number;
var _local9:Number;
_local7 = this.x;
this.left = _arg3;
this.right = _arg4;
x = _arg5;
this.vel = _arg6;
_local8 = (_arg2 - _arg1);
if (_local8 < 25){
while (_local8 > 0) {
step();
_local8--;
};
if (correctionFrames > 0){
_local7 = (_local7 + (correctionX * correctionFrames));
};
_local9 = (x - _local7);
this.x = _local7;
correctionFrames = 4;
correctionX = (_local9 / correctionFrames);
correct();
};
}
}
}//package
Section 132
//ScrollArrowDown_disabledSkin (ScrollArrowDown_disabledSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowDown_disabledSkin extends MovieClip {
}
}//package
Section 133
//ScrollArrowDown_downSkin (ScrollArrowDown_downSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowDown_downSkin extends MovieClip {
}
}//package
Section 134
//ScrollArrowDown_overSkin (ScrollArrowDown_overSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowDown_overSkin extends MovieClip {
}
}//package
Section 135
//ScrollArrowDown_upSkin (ScrollArrowDown_upSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowDown_upSkin extends MovieClip {
}
}//package
Section 136
//ScrollArrowUp_disabledSkin (ScrollArrowUp_disabledSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowUp_disabledSkin extends MovieClip {
}
}//package
Section 137
//ScrollArrowUp_downSkin (ScrollArrowUp_downSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowUp_downSkin extends MovieClip {
}
}//package
Section 138
//ScrollArrowUp_overSkin (ScrollArrowUp_overSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowUp_overSkin extends MovieClip {
}
}//package
Section 139
//ScrollArrowUp_upSkin (ScrollArrowUp_upSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowUp_upSkin extends MovieClip {
}
}//package
Section 140
//ScrollBar_thumbIcon (ScrollBar_thumbIcon)
package {
import flash.display.*;
public dynamic class ScrollBar_thumbIcon extends MovieClip {
}
}//package
Section 141
//ScrollThumb_downSkin (ScrollThumb_downSkin)
package {
import flash.display.*;
public dynamic class ScrollThumb_downSkin extends MovieClip {
}
}//package
Section 142
//ScrollThumb_overSkin (ScrollThumb_overSkin)
package {
import flash.display.*;
public dynamic class ScrollThumb_overSkin extends MovieClip {
}
}//package
Section 143
//ScrollThumb_upSkin (ScrollThumb_upSkin)
package {
import flash.display.*;
public dynamic class ScrollThumb_upSkin extends MovieClip {
}
}//package
Section 144
//ScrollTrack_skin (ScrollTrack_skin)
package {
import flash.display.*;
public dynamic class ScrollTrack_skin extends MovieClip {
}
}//package
Section 145
//SendChallenge (SendChallenge)
package {
import fl.controls.*;
import flash.display.*;
import flash.events.*;
public class SendChallenge extends MovieClip {
public var cancelButton:Button;
private var dead:Boolean;// = false
public var textBox:TextArea;
private var main:MovieClip;
private var player:Player;
public function SendChallenge(_arg1:Player):void{
main = GetMain.main;
dead = false;
super();
this.player = _arg1;
main.deleteableScreen = this;
main.socket.write(("challenge`" + _arg1.getID()));
textBox.text = (("Waiting for " + _arg1.getName()) + "...");
cancelButton.addEventListener(MouseEvent.CLICK, cancelClick);
addEventListener("available", availableListener);
__setProp_cancelButton_SendChallenge_Layer1_1();
__setProp_textBox_SendChallenge_Layer1_1();
}
function __setProp_cancelButton_SendChallenge_Layer1_1(){
try {
cancelButton["componentInspectorSetting"] = true;
} catch(e:Error) {
};
cancelButton.emphasized = false;
cancelButton.enabled = true;
cancelButton.label = "Cancel";
cancelButton.labelPlacement = "right";
cancelButton.selected = false;
cancelButton.toggle = false;
cancelButton.visible = true;
try {
cancelButton["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
private function cancelClick(_arg1:MouseEvent):void{
var me = _arg1;
try {
main.socket.write("cancel_challenge`");
} catch(exception) {
};
remove();
}
function __setProp_textBox_SendChallenge_Layer1_1(){
try {
textBox["componentInspectorSetting"] = true;
} catch(e:Error) {
};
textBox.condenseWhite = false;
textBox.editable = false;
textBox.enabled = true;
textBox.horizontalScrollPolicy = "auto";
textBox.htmlText = "";
textBox.maxChars = 0;
textBox.restrict = "";
textBox.text = "";
textBox.verticalScrollPolicy = "auto";
textBox.visible = true;
textBox.wordWrap = true;
try {
textBox["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
public function remove():void{
if (!dead){
dead = true;
removeEventListener("available", availableListener);
cancelButton.removeEventListener(MouseEvent.CLICK, cancelClick);
AlertScreen(parent.parent).gotoAndPlay("die");
};
}
private function availableListener(_arg1:Event):void{
remove();
}
}
}//package
Section 146
//Sounds (Sounds)
package {
import flash.media.*;
public class Sounds {
private static var channels:Array = new Array();
private static var mute:Boolean = false;
public function Sounds():void{
}
public static function pressMute(){
var _local1:SoundTransform;
_local1 = new SoundTransform();
mute = !(mute);
if (mute){
_local1.volume = 0;
} else {
_local1.volume = 1;
};
SoundMixer.soundTransform = _local1;
}
public static function startSound(_arg1:Sound, _arg2:Number=1, _arg3:Number=0, _arg4:Number=0){
var _local5:SoundChannel;
var _local6:SoundTransform;
if (_arg2 > 0.05){
_local5 = _arg1.play(0, _arg4);
_local6 = new SoundTransform();
_local6.volume = _arg2;
_local6.pan = _arg3;
_local5.soundTransform = _local6;
return (_local5);
};
return (false);
}
}
}//package
Section 147
//TextArea_disabledSkin (TextArea_disabledSkin)
package {
import flash.display.*;
public dynamic class TextArea_disabledSkin extends MovieClip {
}
}//package
Section 148
//TextArea_upSkin (TextArea_upSkin)
package {
import flash.display.*;
public dynamic class TextArea_upSkin extends MovieClip {
}
}//package
Section 149
//TextInput_disabledSkin (TextInput_disabledSkin)
package {
import flash.display.*;
public dynamic class TextInput_disabledSkin extends MovieClip {
}
}//package
Section 150
//TextInput_upSkin (TextInput_upSkin)
package {
import flash.display.*;
public dynamic class TextInput_upSkin extends MovieClip {
}
}//package
Section 151
//ThisIsYou (ThisIsYou)
package {
import flash.display.*;
public dynamic class ThisIsYou extends MovieClip {
}
}//package
Section 152
//VersionMessage (VersionMessage)
package {
import fl.controls.*;
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.system.*;
public dynamic class VersionMessage extends MovieClip {
public var version:String;
public var textBox:TextArea;
public var array:Array;
public var getItButton:Button;
public function VersionMessage(){
addFrameScript(0, frame1);
__setProp_getItButton_VersionMessage_Layer1_1();
__setProp_textBox_VersionMessage_Layer1_1();
}
function __setProp_getItButton_VersionMessage_Layer1_1(){
try {
getItButton["componentInspectorSetting"] = true;
} catch(e:Error) {
};
getItButton.emphasized = false;
getItButton.enabled = true;
getItButton.label = "Get It";
getItButton.labelPlacement = "right";
getItButton.selected = false;
getItButton.toggle = false;
getItButton.visible = true;
try {
getItButton["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
function frame1(){
array = Capabilities.version.split(" ");
version = array[1];
textBox.text = (("You have flash version " + version) + ", and this game likes version 9,0,45,0. You can download it from adobe.com \n xoxo -Jiggmin");
getItButton.addEventListener(MouseEvent.CLICK, getClick);
}
function __setProp_textBox_VersionMessage_Layer1_1(){
try {
textBox["componentInspectorSetting"] = true;
} catch(e:Error) {
};
textBox.condenseWhite = false;
textBox.editable = false;
textBox.enabled = true;
textBox.horizontalScrollPolicy = "auto";
textBox.htmlText = "";
textBox.maxChars = 0;
textBox.restrict = "";
textBox.text = "";
textBox.verticalScrollPolicy = "auto";
textBox.visible = true;
textBox.wordWrap = true;
try {
textBox["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
public function getClick(_arg1:MouseEvent):void{
var _local2:URLRequest;
_local2 = new URLRequest("http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash");
navigateToURL(_local2);
}
}
}//package
Section 153
//VictoryMessage (VictoryMessage)
package {
import fl.controls.*;
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class VictoryMessage extends MovieClip {
public var okButton:Button;
public var nameBox:TextField;
private var player:Player;
public function VictoryMessage(_arg1:String):void{
GetMain.main.deleteableScreen = this;
this.player = player;
nameBox.text = (("- " + _arg1) + "! -");
okButton.addEventListener(MouseEvent.CLICK, okClick);
__setProp_okButton_VictoryMessage_Layer1_1();
}
function __setProp_okButton_VictoryMessage_Layer1_1(){
try {
okButton["componentInspectorSetting"] = true;
} catch(e:Error) {
};
okButton.emphasized = false;
okButton.enabled = true;
okButton.label = "OK";
okButton.labelPlacement = "right";
okButton.selected = false;
okButton.toggle = false;
okButton.visible = true;
try {
okButton["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
private function okClick(_arg1:MouseEvent):void{
remove();
GetMain.main.changePage(new LobbyPage());
}
public function remove():void{
okButton.removeEventListener(MouseEvent.CLICK, okClick);
AlertScreen(parent.parent).gotoAndPlay("die");
}
}
}//package