Section 1
//RightClickClass (com.myflashlab.classes.tools.rightClick.RightClickClass)
package com.myflashlab.classes.tools.rightClick {
import flash.display.*;
import flash.events.*;
import flash.ui.*;
public class RightClickClass extends EventDispatcher {
private var :MovieClip;
private var :String;
private var :ContextMenu;
public static const CLICK:String = "clickEvent";
public function RightClickClass(_arg1:MovieClip){
= _arg1;
= new ContextMenu();
.hideBuiltInItems();
}
public function addMenu(_arg1:String):void{
var _local2:ContextMenuItem = new ContextMenuItem(_arg1);
.customItems.push(_local2);
_local2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,
);
.contextMenu = ;
}
private function
(_arg1:ContextMenuEvent):void{
= _arg1.currentTarget.caption;
dispatchEvent(new ContextMenuEvent(RightClickClass.CLICK, false, false, ));
}
public function get caption():String{
return ( );
}
}
}//package com.myflashlab.classes.tools.rightClick
Section 2
//MyFlashLabSlider (com.myflashlab.classes.tools.slider.MyFlashLabSlider)
package com.myflashlab.classes.tools.slider {
import flash.display.*;
import flash.events.*;
import fl.transitions.*;
import flash.utils.*;
import fl.transitions.easing.*;
import flash.geom.*;
public class MyFlashLabSlider extends MovieClip {
private var :Number;// = 100
private var :String;// = "horizontal"
var :Tween;
private var
:Number;// = 0
private var :Boolean;// = false
private var
:Number;// = 100
var :Object;
private var
:MovieClip;
private var
:MovieClip;
private var
:MovieClip;
private var
:Rectangle;
private var
:MovieClip;
private var
:Number;// = 50
private var
:MovieClip;
private var
:MovieClip;
public function MyFlashLabSlider():void{
}
private function (_arg1:Event):void{
();
}
private function (_arg1:MouseEvent):void{
this.addEventListener(Event.ENTER_FRAME, );
var _local2:Number = (_arg1.currentTarget.mouseX - (
.width / 2));
= new Tween(
, "x", Strong.easeInOut,
.x, _local2, MyFlashLabSliderCons.SPEED, true);
.addEventListener(TweenEvent.MOTION_FINISH,
);
}
private function up(_arg1:MouseEvent):void{
if (){
.gotoAndStop(2);
} else {
.gotoAndStop(1);
};
.stopDrag();
if ( ==
){
();
this.removeEventListener(Event.ENTER_FRAME, );
};
= null;
}
private function down(_arg1:MouseEvent):void{
this.addEventListener(Event.ENTER_FRAME, );
=
;
.gotoAndStop(3);
.startDrag(false,
);
}
public function set min(_arg1:Number):void{
= _arg1;
}
private function (_arg1:Event=null):void{
removeEventListener(Event.ADDED_TO_STAGE, );
= new Rectangle(((-(
.width) / 2) - 1),
.y, ( + 2), 0);
.addEventListener(MouseEvent.ROLL_OVER, over, false, 0, true);
.addEventListener(MouseEvent.ROLL_OUT, , false, 0, true);
.addEventListener(MouseEvent.MOUSE_DOWN, down, false, 0, true);
.stage.addEventListener(MouseEvent.MOUSE_UP, up, false, 0, true);
.addEventListener(MouseEvent.MOUSE_DOWN, , false, 0, true);
}
private function ():void{
var _local1:Number = ((, (
.x + (
.width / 2))) / 100);
var _local2:Number = Math.round(((_local1 * (
-
)) +
));
if (_local2 >
){
_local2 =
;
} else {
if (_local2 <
){
_local2 =
;
};
};
= _local2;
dispatchEvent(new Event(MyFlashLabSliderEvents.CHANGE));
}
private function ():void{
var _local1:Number = ((, (
.x + (
.width / 2))) / 100);
var _local2:Number = Math.round(((_local1 * (
-
)) +
));
if (_local2 >
){
_local2 =
;
} else {
if (_local2 <
){
_local2 =
;
};
};
= _local2;
dispatchEvent(new Event(MyFlashLabSliderEvents.LIVE_CHANGE));
}
private function (_arg1:Number, _arg2:Number):Number{
var _local3:Number = ((_arg2 / _arg1) * 100);
return (_local3);
}
public function set max(_arg1:Number):void{
= _arg1;
}
private function (_arg1:MouseEvent):void{
= false;
if (!_arg1.buttonDown){
.gotoAndStop(1);
};
}
public function set position(_arg1:String):void{
= _arg1;
}
public function set length(_arg1:Number):void{
= _arg1;
}
private function over(_arg1:MouseEvent):void{
= true;
if (!_arg1.buttonDown){
.gotoAndStop(2);
};
}
public function get min():Number{
return (
);
}
public function get max():Number{
return (
);
}
public function set value(_arg1:Number):void{
= _arg1;
}
public function get length():Number{
return ();
}
private function
(_arg1:TweenEvent):void{
.removeEventListener(TweenEvent.MOTION_FINISH,
);
this.removeEventListener(Event.ENTER_FRAME, );
();
}
public function get value():Number{
return (
);
}
public function set skin(_arg1:String):void{
var _local2:Class = (getDefinitionByName(_arg1) as Class);
= new (_local2);
=
.slider_bg;
.x = 0;
.y = 0;
=
.slider_bg.sliderLeft;
=
.slider_bg.sliderMid;
=
.slider_bg.sliderRight;
=
.slider_btn;
();
if ( == MyFlashLabSliderCons.HORIZONTAL){
.rotation = 0;
} else {
if ( == MyFlashLabSliderCons.VERTICAL){
.rotation = 270;
.y = (
.y +
.height);
};
};
addEventListener(Event.ADDED_TO_STAGE, );
this.addChild(
);
}
private function
():void{
var _local1:Number = ((
-
), (
-
));
.x = 0;
.y = 0;
.x = (
.width +
.x);
.y =
.y;
.width = (( -
.width) -
.width);
.x = (
.width +
.x);
.y =
.y;
.x = (((_local1 / 100) * ) - (
.width / 2));
.y = ((
.height / 2) - (
.height / 2));
}
}
}//package com.myflashlab.classes.tools.slider
Section 3
//MyFlashLabSliderCons (com.myflashlab.classes.tools.slider.MyFlashLabSliderCons)
package com.myflashlab.classes.tools.slider {
public class MyFlashLabSliderCons {
public static const HORIZONTAL:String = "horizontal";
public static const VERTICAL:String = "vertical";
public static const SPEED:Number = 0.5;
}
}//package com.myflashlab.classes.tools.slider
Section 4
//MyFlashLabSliderEvents (com.myflashlab.classes.tools.slider.MyFlashLabSliderEvents)
package com.myflashlab.classes.tools.slider {
public class MyFlashLabSliderEvents {
public static const CHANGE:String = "change";
public static const LIVE_CHANGE:String = "liveChange";
}
}//package com.myflashlab.classes.tools.slider
Section 5
//OBO_ToolTip (com.onebyonedesign.utils.OBO_ToolTip)
package com.onebyonedesign.utils {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import fl.transitions.*;
import fl.transitions.easing.*;
import flash.filters.*;
public class OBO_ToolTip extends Sprite {
private var :DisplayObjectContainer;
private var :String;
private var :int;
private var
:int;
private var :TextFormat;
private var
:Number;
private var :uint;
private var :TextField;
private var :DropShadowFilter;
private var :Boolean;
public static const SQUARE_TIP:String = "squareTip";
public static const ROUND_TIP:String = "roundTip";
private static var OBO_TT:OBO_ToolTip;
public function OBO_ToolTip(_arg1:TipCreator, _arg2:DisplayObjectContainer, _arg3:Font, _arg4:uint=0xFFFFFF, _arg5:Number=1, _arg6:String="roundTip", _arg7:uint=0, _arg8:int=11, _arg9:Boolean=true){
if ((!(_arg1) is TipCreator)){
throw (new Error("OBO_ToolTip class must be instantiated with static method OBO_ToolTip.createToolTip() method."));
};
= _arg2;
= _arg4;
= _arg5;
= _arg6;
= _arg9;
= new TextFormat(_arg3.fontName, _arg8, _arg7);
= new DropShadowFilter(3, 45, 0, 0.7, 2, 2, 1, 3);
this.mouseEnabled = false;
}
public function set tipShape(_arg1:String):void{
if (((!((_arg1 == ROUND_TIP))) && (!((_arg1 == SQUARE_TIP))))){
throw (new Error((("Invalid tip shape \"" + _arg1) + "\" specified at OBO_ToolTip.tipShape.")));
};
= _arg1;
}
private function (_arg1:MouseEvent):void{
this.x = Math.round(_arg1.stageX);
this.y = Math.round((_arg1.stageY - 2));
if ((this.y - this.height) < 0){
this.scaleY = (.scaleY = -1);
.y = (()==ROUND_TIP) ? -18 : -16;
this.y = Math.round((_arg1.stageY + 5));
} else {
this.scaleY = (.scaleY = 1);
.y =
;
};
if ((this.x - (this.width - 18)) < 0){
if ( == ROUND_TIP){
this.scaleX = (.scaleX = -1);
.x = 5;
};
} else {
this.scaleX = (.scaleX = 1);
.x = ;
};
_arg1.updateAfterEvent();
}
public function removeTip():void{
stage.removeEventListener(MouseEvent.MOUSE_MOVE, );
this.removeChild();
this.graphics.clear();
.removeChild(this);
}
public function addTip(_arg1:String):void{
var _local4:Array;
.addChild(this);
this.alpha = 0;
= new TextField();
.mouseEnabled = false;
.selectable = false;
.defaultTextFormat = ;
.antiAliasType = () ? AntiAliasType.ADVANCED : AntiAliasType.NORMAL;
.width = 1;
.height = 1;
.autoSize = TextFieldAutoSize.LEFT;
.embedFonts = true;
.multiline = true;
.htmlText = _arg1;
var _local2:Number = .textWidth;
var _local3:Number = .textHeight;
switch (){
case ROUND_TIP:
_local4 = [[0, -13.42], [0, -2], [10.52, -15.7], [13.02, -18.01, 13.02, -22.65], [13.02, (-16 - _local3)], [13.23, (-25.23 - _local3), 3.1, (-25.23 - _local3)], [-(_local2), (-25.23 - _local3)], [(-(_local2) - 7), (-25.23 - _local3), (-(_local2) - 7), (-16 - _local3)], [(-(_local2) - 7), -22.65], [(-(_local2) - 7), -13.42, -(_local2), -13.42]];
break;
case SQUARE_TIP:
_local4 = [[-(((_local2 / 2) + 5)), -16], [-(((_local2 / 2) + 5)), -(((18 + _local3) + 4))], [((_local2 / 2) + 5), -(((18 + _local3) + 4))], [((_local2 / 2) + 5), -16], [6, -16], [0, 0], [-6, -16], [-(((_local2 / 2) + 5)), -16]];
break;
default:
throw (new Error("Undefined tool tip shape in OBO_ToolTip!"));
};
var _local5:int = _local4.length;
this.graphics.beginFill(,
);
var _local6:int;
while (_local6 < _local5) {
if (_local6 == 0){
this.graphics.moveTo(_local4[_local6][0], _local4[_local6][1]);
} else {
if (_local4[_local6].length == 2){
this.graphics.lineTo(_local4[_local6][0], _local4[_local6][1]);
} else {
if (_local4[_local6].length == 4){
this.graphics.curveTo(_local4[_local6][0], _local4[_local6][1], _local4[_local6][2], _local4[_local6][3]);
};
};
};
_local6++;
};
this.graphics.endFill();
this.x = stage.mouseX;
this.y = stage.mouseY;
this.filters = [];
.x = (()==ROUND_TIP) ? Math.round(-(_local2)) : (Math.round(-((_local2 / 2))) - 2);
= .x;
.y = Math.round((-21 - _local3));
= .y;
this.addChild();
stage.addEventListener(MouseEvent.MOUSE_MOVE, );
var _local7:* = new Tween(this, "alpha", Strong.easeIn, 0, 1, 1, true);
}
public static function createToolTip(_arg1:DisplayObjectContainer, _arg2:Font, _arg3:uint=0xFFFFFF, _arg4:Number=1, _arg5:String="roundTip", _arg6:uint=0, _arg7:int=11, _arg8:Boolean=true):OBO_ToolTip{
if (OBO_TT == null){
OBO_TT = new OBO_ToolTip(new TipCreator(), _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8);
};
return (OBO_TT);
}
}
}//package com.onebyonedesign.utils
class TipCreator {
private function TipCreator(){
}
}
Section 6
//BaseButton (fl.controls.BaseButton)
package fl.controls {
import flash.display.*;
import fl.core.*;
import flash.events.*;
import flash.utils.*;
import fl.events.*;
public class BaseButton extends UIComponent {
protected var :Timer;
protected var :Boolean;// = false
protected var
:Boolean;// = false
protected var background:DisplayObject;
private var :String;
protected var mouseState:String;
private var :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(){
buttonMode = true;
mouseChildren = false;
useHandCursor = false;
();
setMouseState("up");
= new Timer(1, 0);
.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true);
}
override public function get enabled():Boolean{
return (super.enabled);
}
protected function startPress():void{
if (){
.delay = Number(getStyleValue("repeatDelay"));
.start();
};
dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true));
}
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 drawLayout():void{
background.width = width;
background.height = height;
}
override public function set enabled(_arg1:Boolean):void{
super.enabled = _arg1;
mouseEnabled = _arg1;
}
public function set autoRepeat(_arg1:Boolean):void{
= _arg1;
}
protected function (_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();
};
};
};
}
protected function drawBackground():void{
var _local1:String = (enabled) ? mouseState : "disabled";
if (selected){
_local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1));
};
_local1 = (_local1 + "Skin");
var _local2:DisplayObject = background;
background = getDisplayObjectInstance(getStyleValue(_local1));
addChildAt(background, 0);
if (((!((_local2 == null))) && (!((_local2 == background))))){
removeChild(_local2);
};
}
public function get selected():Boolean{
return (
);
}
protected function ():void{
addEventListener(MouseEvent.ROLL_OVER, , false, 0, true);
addEventListener(MouseEvent.MOUSE_DOWN, , false, 0, true);
addEventListener(MouseEvent.MOUSE_UP, , false, 0, true);
addEventListener(MouseEvent.ROLL_OUT, , false, 0, true);
}
protected function endPress():void{
.reset();
}
public function set mouseStateLocked(_arg1:Boolean):void{
= _arg1;
if (_arg1 == false){
setMouseState();
} else {
= mouseState;
};
}
public function get autoRepeat():Boolean{
return ();
}
public function set selected(_arg1:Boolean):void{
if (
== _arg1){
return;
};
= _arg1;
invalidate(InvalidationType.STATE);
}
protected function buttonDown(_arg1:TimerEvent):void{
if (!){
endPress();
return;
};
if (.currentCount == 1){
.delay = Number(getStyleValue("repeatInterval"));
};
dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true));
}
public function setMouseState(_arg1:String):void{
if (){
= _arg1;
return;
};
if (mouseState == _arg1){
return;
};
mouseState = _arg1;
invalidate(InvalidationType.STATE);
}
public static function getStyleDefinition():Object{
return (defaultStyles);
}
}
}//package fl.controls
Section 7
//Button (fl.controls.Button)
package fl.controls {
import flash.display.*;
import fl.core.*;
import fl.managers.*;
public class Button extends LabelButton implements IFocusManagerComponent {
protected var :Boolean;// = false
protected var :DisplayObject;
private static var defaultStyles:Object = {emphasizedSkin:"Button_emphasizedSkin", emphasizedPadding:2};
public static var createAccessibilityImplementation:Function;
public function set emphasized(_arg1:Boolean):void{
= _arg1;
invalidate(InvalidationType.STYLES);
}
override protected function initializeAccessibility():void{
if (Button.createAccessibilityImplementation != null){
Button.createAccessibilityImplementation(this);
};
}
protected function ():void{
var _local2:Number;
if ( != null){
removeChild();
};
= null;
if (! ){
return;
};
var _local1:Object = getStyleValue("emphasizedSkin");
if (_local1 != null){
= getDisplayObjectInstance(_local1);
};
if ( != null){
addChildAt(, 0);
_local2 = Number(getStyleValue("emphasizedPadding"));
.x = (.y = -(_local2));
.width = (width + (_local2 * 2));
.height = (height + (_local2 * 2));
};
}
public function get emphasized():Boolean{
return ( );
}
override protected function draw():void{
if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){
();
};
super.draw();
if ( != null){
setChildIndex(, (numChildren - 1));
};
}
override public function drawFocus(_arg1:Boolean):void{
var _local2:Number;
var _local3:*;
super.drawFocus(_arg1);
if (_arg1){
_local2 = Number(getStyleValue("emphasizedPadding"));
if ((((_local2 < 0)) || (!( )))){
_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 static function getStyleDefinition():Object{
return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles));
}
}
}//package fl.controls
Section 8
//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 9
//CheckBox (fl.controls.CheckBox)
package fl.controls {
import flash.display.*;
public class CheckBox extends LabelButton {
private static var defaultStyles:Object = {icon:null, upIcon:"CheckBox_upIcon", downIcon:"CheckBox_downIcon", overIcon:"CheckBox_overIcon", disabledIcon:"CheckBox_disabledIcon", selectedDisabledIcon:"CheckBox_selectedDisabledIcon", focusRectSkin:null, focusRectPadding:null, selectedUpIcon:"CheckBox_selectedUpIcon", selectedDownIcon:"CheckBox_selectedDownIcon", selectedOverIcon:"CheckBox_selectedOverIcon", textFormat:null, disabledTextFormat:null, embedFonts:null, textPadding:5};
public static var createAccessibilityImplementation:Function;
override protected function drawBackground():void{
}
override public function get toggle():Boolean{
return (true);
}
override protected function initializeAccessibility():void{
if (CheckBox.createAccessibilityImplementation != null){
CheckBox.createAccessibilityImplementation(this);
};
}
override public function set toggle(_arg1:Boolean):void{
throw (new Error("Warning: You cannot change a CheckBox's toggle."));
}
override public function get autoRepeat():Boolean{
return (false);
}
override public function set autoRepeat(_arg1:Boolean):void{
}
override public function drawFocus(_arg1:Boolean):void{
var _local2:Number;
super.drawFocus(_arg1);
if (_arg1){
_local2 = Number(getStyleValue("focusRectPadding"));
uiFocusRect.x = (background.x - _local2);
uiFocusRect.y = (background.y - _local2);
uiFocusRect.width = (background.width + (_local2 << 1));
uiFocusRect.height = (background.height + (_local2 << 1));
};
}
override protected function configUI():void{
super.configUI();
super.toggle = true;
var _local1:Shape = new Shape();
var _local2:Graphics = _local1.graphics;
_local2.beginFill(0, 0);
_local2.drawRect(0, 0, 100, 100);
_local2.endFill();
background = (_local1 as DisplayObject);
addChildAt(background, 0);
}
override protected function drawLayout():void{
super.drawLayout();
var _local1:Number = Number(getStyleValue("textPadding"));
switch (_labelPlacement){
case ButtonLabelPlacement.RIGHT:
icon.x = _local1;
textField.x = (icon.x + (icon.width + _local1));
background.width = ((textField.x + textField.width) + _local1);
background.height = (Math.max(textField.height, icon.height) + (_local1 * 2));
break;
case ButtonLabelPlacement.LEFT:
icon.x = ((width - icon.width) - _local1);
textField.x = (((width - icon.width) - (_local1 * 2)) - textField.width);
background.width = ((textField.width + icon.width) + (_local1 * 3));
background.height = (Math.max(textField.height, icon.height) + (_local1 * 2));
break;
case ButtonLabelPlacement.TOP:
case ButtonLabelPlacement.BOTTOM:
background.width = (Math.max(textField.width, icon.width) + (_local1 * 2));
background.height = ((textField.height + icon.height) + (_local1 * 3));
break;
};
background.x = Math.min((icon.x - _local1), (textField.x - _local1));
background.y = Math.min((icon.y - _local1), (textField.y - _local1));
}
public static function getStyleDefinition():Object{
return (defaultStyles);
}
}
}//package fl.controls
Section 10
//LabelButton (fl.controls.LabelButton)
package fl.controls {
import flash.display.*;
import fl.core.*;
import flash.events.*;
import fl.managers.*;
import flash.text.*;
import fl.events.*;
import flash.ui.*;
public class LabelButton extends BaseButton implements IFocusManagerComponent {
protected var :Boolean;// = false
public var textField:TextField;
protected var :String;// = "center"
protected var _labelPlacement:String;// = "right"
protected var :String;
protected var :String;// = "Label"
protected var icon:DisplayObject;
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;
override protected function draw():void{
if (textField.text != ){
label = ;
};
if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){
drawBackground();
();
();
invalidate(InvalidationType.SIZE, false);
};
if (isInvalid(InvalidationType.SIZE)){
drawLayout();
};
if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){
if (((isFocused) && (focusManager.showFocusIndicator))){
drawFocus(true);
};
};
validate();
}
override protected function drawLayout():void{
var _local7:Number;
var _local8:Number;
var _local1:Number = Number(getStyleValue("textPadding"));
var _local2:String = ((((icon == null)) && (( == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement;
textField.height = (textField.textHeight + 4);
var _local3:Number = (textField.textWidth + 4);
var _local4:Number = (textField.textHeight + 4);
var _local5:Number = ((icon)==null) ? 0 : (icon.width + _local1);
var _local6:Number = ((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();
}
protected function (_arg1:MouseEvent):void{
selected = !(selected);
dispatchEvent(new Event(Event.CHANGE, true));
}
override protected function keyUpHandler(_arg1:KeyboardEvent):void{
if (!enabled){
return;
};
if (_arg1.keyCode == Keyboard.SPACE){
setMouseState();
= null;
endPress();
dispatchEvent(new MouseEvent(MouseEvent.CLICK));
};
}
public function get labelPlacement():String{
return (_labelPlacement);
}
public function get toggle():Boolean{
return ();
}
protected function (){
var _local1:Object = getStyleValue("embedFonts");
if (_local1 != null){
textField.embedFonts = _local1;
};
}
override public function get selected():Boolean{
return (() ?
: false);
}
override protected function configUI():void{
super.configUI();
textField = new TextField();
textField.type = TextFieldType.DYNAMIC;
textField.selectable = false;
addChild(textField);
}
override protected function initializeAccessibility():void{
if (LabelButton.createAccessibilityImplementation != null){
LabelButton.createAccessibilityImplementation(this);
};
}
public function set labelPlacement(_arg1:String):void{
_labelPlacement = _arg1;
invalidate(InvalidationType.SIZE);
}
protected function ():void{
var _local1:DisplayObject = icon;
var _local2:String = (enabled) ? mouseState : "disabled";
if (selected){
_local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1));
};
_local2 = (_local2 + "Icon");
var _local3:Object = 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{
= _arg1;
if (textField.text != ){
textField.text = ;
dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE));
};
invalidate(InvalidationType.SIZE);
invalidate(InvalidationType.STYLES);
}
override protected function keyDownHandler(_arg1:KeyboardEvent):void{
if (!enabled){
return;
};
if (_arg1.keyCode == Keyboard.SPACE){
if ( == null){
= mouseState;
};
setMouseState("down");
startPress();
};
}
public function set toggle(_arg1:Boolean):void{
if (((!(_arg1)) && (super.selected))){
selected = false;
};
= _arg1;
if (){
addEventListener(MouseEvent.CLICK, , false, 0, true);
} else {
removeEventListener(MouseEvent.CLICK, );
};
invalidate(InvalidationType.STATE);
}
override public function set selected(_arg1:Boolean):void{
= _arg1;
if (){
invalidate(InvalidationType.STATE);
};
}
protected function ():void{
var _local1:Object = UIComponent.getStyleDefinition();
var _local2:TextFormat = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat);
textField.setTextFormat(_local2);
var _local3:TextFormat = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat);
if (_local3 != null){
textField.setTextFormat(_local3);
} else {
_local3 = _local2;
};
textField.defaultTextFormat = _local3;
();
}
public function get label():String{
return ();
}
public static function getStyleDefinition():Object{
return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition()));
}
}
}//package fl.controls
Section 11
//ComponentShim (fl.core.ComponentShim)
package fl.core {
import flash.display.*;
public dynamic class ComponentShim extends MovieClip {
}
}//package fl.core
Section 12
//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 13
//UIComponent (fl.core.UIComponent)
package fl.core {
import flash.display.*;
import flash.events.*;
import fl.managers.*;
import flash.text.*;
import flash.utils.*;
import fl.events.*;
import flash.system.*;
public class UIComponent extends Sprite {
protected var
:Number;
protected var
:Boolean;// = true
protected var
:Dictionary;
private var
:Boolean;// = true
private var
:TextField;
private var
:Boolean;// = true
protected var
:Number;
protected var :Number;
protected var :Boolean;// = false
protected var :String;// = null
protected var :Boolean;// = false
protected var
:Number;
public var :IFocusManagerComponent;
protected var :Boolean;// = false
protected var :Object;
protected var :Object;
protected var uiFocusRect:DisplayObject;
protected var :Boolean;// = false
protected var :String;// = null
protected var :Number;
protected var :Object;
public var
:String;// = "3.0.0.16"
protected var isFocused:Boolean;// = false
protected var :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(){
= {};
= {};
= {};
= new Dictionary();
StyleManager.registerInstance(this);
configUI();
invalidate(InvalidationType.ALL);
tabEnabled = (this is IFocusManagerComponent);
focusRect = false;
if (tabEnabled){
addEventListener(FocusEvent.FOCUS_IN, );
addEventListener(FocusEvent.FOCUS_OUT, );
addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
};
();
addEventListener(Event.ENTER_FRAME, , false, 0, true);
}
public function
(_arg1:String):Object{
return ([_arg1]);
}
protected function
():Boolean{
var className:String;
if (parent == null){
return (false);
};
try {
className = getQualifiedClassName(parent);
} catch(e:Error) {
};
return ((className == "fl.livepreview::LivePreviewParent"));
}
private function
(_arg1:Event):void{
var _local3:Object;
if (_arg1.type == Event.ADDED_TO_STAGE){
removeEventListener(Event.ADDED_TO_STAGE,
);
stage.addEventListener(Event.RENDER,
, false, 0, true);
stage.invalidate();
return;
};
_arg1.target.removeEventListener(Event.RENDER,
);
if (stage == null){
addEventListener(Event.ADDED_TO_STAGE,
, false, 0, true);
return;
};
inCallLaterPhase = true;
var _local2:Dictionary =
;
for (_local3 in _local2) {
_local3();
delete _local2[_local3];
};
inCallLaterPhase = false;
}
protected function validate():void{
= {};
}
protected function (_arg1:FocusEvent):void{
if (
((_arg1.target as DisplayObject))){
drawFocus(false);
isFocused = false;
};
}
public function set mouseFocusEnabled(_arg1:Boolean):void{
= _arg1;
}
public function getFocus():InteractiveObject{
if (stage){
return (stage.focus);
};
return (null);
}
override public function get height():Number{
return ();
}
private function (_arg1:Event):void{
removeEventListener("addedToStage", );
();
}
protected function getStyleValue(_arg1:String):Object{
return ((([_arg1])==null) ? [_arg1] : [_arg1]);
}
public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{
[_arg1] = true;
if (_arg2){
this.
(draw);
};
}
protected function
(_arg1:DisplayObject):Boolean{
return ((_arg1 == this));
}
public function get enabled():Boolean{
return (
);
}
protected function ():Number{
return (super.scaleX);
}
protected function ():Number{
return (super.scaleY);
}
public function get focusEnabled():Boolean{
return (
);
}
protected function ():void{
}
override public function get scaleY():Number{
return ((height /
));
}
protected function (_arg1:Boolean){
var enabled = _arg1;
if ( != null){
if (enabled){
IME.enabled = true;
= IME.conversionMode;
try {
if (((!()) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){
IME.conversionMode = ;
};
= false;
} catch(e:Error) {
= true;
throw (new Error(("IME mode not supported: " + )));
};
} else {
if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!(( == IMEConversionMode.UNKNOWN))))){
IME.conversionMode = ;
};
IME.enabled = false;
};
};
}
protected function draw():void{
if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){
if (((isFocused) && (focusManager.showFocusIndicator))){
drawFocus(true);
};
};
validate();
}
override public function set height(_arg1:Number):void{
if ( == _arg1){
return;
};
(width, _arg1);
}
protected function configUI():void{
=
();
var _local1:Number = rotation;
rotation = 0;
var _local2:Number = super.width;
var _local3:Number = super.height;
var _local4 = 1;
super.scaleY = _local4;
super.scaleX = _local4;
(_local2, _local3);
move(super.x, super.y);
rotation = _local1;
= _local2;
= _local3;
if (numChildren > 0){
removeChildAt(0);
};
}
protected function (_arg1:Number):void{
super.scaleY = _arg1;
}
override public function get scaleX():Number{
return ((width /
));
}
protected function
(_arg1:Number):void{
super.scaleX = _arg1;
}
private function ():void{
if (stage == null){
addEventListener(Event.ADDED_TO_STAGE, , false, 0, true);
} else {
();
};
}
protected function keyDownHandler(_arg1:KeyboardEvent):void{
}
public function set focusManager(_arg1:IFocusManager):void{
UIComponent.focusManagers[this] = _arg1;
}
public function (_arg1:String):void{
(_arg1, null);
}
protected function isInvalid(_arg1:String, ... _args):Boolean{
if ((([_arg1]) || ([InvalidationType.ALL]))){
return (true);
};
while (_args.length > 0) {
if ([_args.pop()]){
return (true);
};
};
return (false);
}
public function (_arg1:String, _arg2:Object):void{
if (((([_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){
return;
};
[_arg1] = _arg2;
invalidate(InvalidationType.STYLES);
}
override public function get visible():Boolean{
return (super.visible);
}
protected function (_arg1:FocusEvent):void{
var _local2:IFocusManager;
if (
((_arg1.target as DisplayObject))){
_local2 = focusManager;
if (((_local2) && (_local2.showFocusIndicator))){
drawFocus(true);
isFocused = true;
};
};
}
public function get componentInspectorSetting():Boolean{
return ();
}
override public function get x():Number{
return ((isNaN(
)) ? super.x :
);
}
override public function get y():Number{
return ((isNaN()) ? super.y : );
}
public function set enabled(_arg1:Boolean):void{
if (_arg1 ==
){
return;
};
= _arg1;
invalidate(InvalidationType.STATE);
}
public function (_arg1:Number, _arg2:Number):void{
= _arg1;
= _arg2;
invalidate(InvalidationType.SIZE);
dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false));
}
protected function keyUpHandler(_arg1:KeyboardEvent):void{
}
public function
(_arg1:String, _arg2:Object):void{
if (((([_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){
return;
};
[_arg1] = _arg2;
if ([_arg1] == null){
invalidate(InvalidationType.STYLES);
};
}
public function set focusEnabled(_arg1:Boolean):void{
= _arg1;
}
override public function set width(_arg1:Number):void{
if ( == _arg1){
return;
};
(_arg1, height);
}
public function setFocus():void{
if (stage){
stage.focus = this;
};
}
override public function set scaleX(_arg1:Number):void{
((
* _arg1), height);
}
public function get mouseFocusEnabled():Boolean{
return (
);
}
override public function set scaleY(_arg1:Number):void{
(width, (
* _arg1));
}
protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{
var skin = _arg1;
var classDef:Object;
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 (_arg1:UIComponent, _arg2:Object):void{
var _local3:String;
for (_local3 in _arg2) {
_arg1.(_local3, getStyleValue(_arg2[_local3]));
};
}
protected function initializeAccessibility():void{
if (UIComponent.createAccessibilityImplementation != null){
UIComponent.createAccessibilityImplementation(this);
};
}
public function get focusManager():IFocusManager{
var _local1:DisplayObject = 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 ();
}
protected function ():void{
}
protected function
(_arg1:Function):void{
if (inCallLaterPhase){
return;
};
[_arg1] = true;
if (stage != null){
stage.addEventListener(Event.RENDER,
, false, 0, true);
stage.invalidate();
} else {
addEventListener(Event.ADDED_TO_STAGE,
, false, 0, true);
};
}
public function move(_arg1:Number, _arg2:Number):void{
= _arg1;
= _arg2;
super.x = Math.round(_arg1);
super.y = Math.round(_arg2);
dispatchEvent(new ComponentEvent(ComponentEvent.MOVE));
}
public function ():void{
invalidate(InvalidationType.ALL, false);
draw();
}
override public function set visible(_arg1:Boolean):void{
if (super.visible == _arg1){
return;
};
super.visible = _arg1;
var _local2:String = (_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE;
dispatchEvent(new ComponentEvent(_local2, true));
}
protected function ():void{
if (focusManagers[stage] == null){
focusManagers[stage] = new FocusManager(stage);
};
}
protected function (_arg1:Event):void{
removeEventListener(Event.ENTER_FRAME, );
initializeAccessibility();
}
public function set componentInspectorSetting(_arg1:Boolean):void{
= _arg1;
if (){
();
} else {
();
};
}
override public function set y(_arg1:Number):void{
move(
, _arg1);
}
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);
};
}
override public function set x(_arg1:Number):void{
move(_arg1, );
}
public function ():void{
draw();
}
public static function getStyleDefinition():Object{
return (defaultStyles);
}
public static function mergeStyles(... _args):Object{
var _local5:Object;
var _local6:String;
var _local2:Object = {};
var _local3:uint = _args.length;
var _local4:uint;
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 14
//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 15
//FocusManager (fl.managers.FocusManager)
package fl.managers {
import fl.controls.*;
import flash.display.*;
import fl.core.*;
import flash.events.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
public class FocusManager implements IFocusManager {
private var :Dictionary;
private var :Boolean;// = true
private var :Button;
private var
:Array;
private var :DisplayObjectContainer;
private var :Boolean;// = true
private var :Boolean;// = false
private var :Button;
private var :Boolean;// = true
private var :InteractiveObject;
private var :String;
public function FocusManager(_arg1:DisplayObjectContainer){
= new Dictionary(true);
if (_arg1 != null){
= _arg1;
(DisplayObject(_arg1));
_arg1.addEventListener(Event.ADDED, );
_arg1.addEventListener(Event.REMOVED, );
();
};
}
public function get showFocusIndicator():Boolean{
return ();
}
private function (_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{
var _local7:DisplayObject;
var _local8:IFocusManagerGroup;
var _local9:int;
var _local10:DisplayObject;
var _local11:IFocusManagerGroup;
var _local5:int =
.length;
var _local6:int = _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 ( (
[_arg1], _arg4)){
_local7 = DisplayObject((
[_arg1]));
if ((_local7 is IFocusManagerGroup)){
_local8 = IFocusManagerGroup(_local7);
_local9 = 0;
while (_local9 <
.length) {
_local10 =
[_local9];
if ((_local10 is IFocusManagerGroup)){
_local11 = IFocusManagerGroup(_local10);
if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){
_arg1 = _local9;
break;
};
};
_local9++;
};
};
return (_arg1);
};
};
return (_arg1);
}
private function (_arg1:FocusEvent):void{
if ((_arg1.relatedObject is TextField)){
return;
};
_arg1.preventDefault();
}
public function set form(_arg1:DisplayObjectContainer):void{
= _arg1;
}
private function (_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) && ( (o)))){
[o] = true;
= true;
};
o.addEventListener(Event.TAB_ENABLED_CHANGE, );
o.addEventListener(Event.TAB_INDEX_CHANGE, );
};
} else {
if ((o is InteractiveObject)){
io = (o as InteractiveObject);
if (((((io) && (io.tabEnabled))) && (((io) == io)))){
[io] = true;
= true;
};
io.addEventListener(Event.TAB_ENABLED_CHANGE, );
io.addEventListener(Event.TAB_INDEX_CHANGE, );
};
};
};
if ((o is DisplayObjectContainer)){
doc = DisplayObjectContainer(o);
o.addEventListener(Event.TAB_CHILDREN_CHANGE, );
if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){
i = 0;
while (i < doc.numChildren) {
try {
child = doc.getChildAt(i);
if (child != null){
(doc.getChildAt(i));
};
} catch(error:SecurityError) {
};
i = (i + 1);
};
};
};
}
private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{
return (_arg1.getChildIndex(_arg2));
}
public function (_arg1:InteractiveObject):InteractiveObject{
var _local2:InteractiveObject = _arg1;
while (_arg1) {
if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){
return (_arg1);
};
_arg1 = _arg1.parent;
};
return (_local2);
}
private function (_arg1:FocusEvent):void{
var _local2:InteractiveObject = (_arg1.target as InteractiveObject);
}
private function (_arg1:DisplayObject, _arg2:String):Boolean{
var _local3:IFocusManagerGroup;
if (!(_arg1)){
return (false);
};
if ((_arg1 is IFocusManagerGroup)){
_local3 = IFocusManagerGroup(_arg1);
if (_arg2 == _local3.groupName){
return (false);
};
};
return (true);
}
private function (_arg1:FocusEvent):void{
if (!()){
return;
};
var _local2:InteractiveObject =
(_arg1.shiftKey);
if (_local2){
setFocus(_local2);
};
}
private function
():void{
var _local1:Object;
var _local2:InteractiveObject;
= [];
for (_local1 in ) {
_local2 = InteractiveObject(_local1);
if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){
.push(_local2);
};
};
.sort( );
}
private function (_arg1:DisplayObject):void{
var _local2:Object;
var _local3:DisplayObject;
if ((_arg1 is DisplayObjectContainer)){
_arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, );
_arg1.removeEventListener(Event.TAB_INDEX_CHANGE, );
for (_local2 in ) {
_local3 = DisplayObject(_local2);
if (DisplayObjectContainer(_arg1).contains(_local3)){
if (_local3 == ){
= null;
};
_local3.removeEventListener(Event.TAB_ENABLED_CHANGE, );
delete [_local2];
= true;
};
};
};
}
private function (_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);
}
public function ():void{
.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
}
private function (_arg1:Event):void{
var _local2:DisplayObject = DisplayObject(_arg1.target);
if (_local2.stage){
(DisplayObject(_arg1.target));
};
}
private function (_arg1:DisplayObject):Boolean{
var _local3:TextField;
var _local4:SimpleButton;
var _local2:DisplayObjectContainer = 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);
}
private function (_arg1:Event):void{
if (_arg1.target != _arg1.currentTarget){
return;
};
= true;
var _local2:DisplayObjectContainer = DisplayObjectContainer(_arg1.target);
if (_local2.tabChildren){
(_local2, true);
} else {
(_local2);
};
}
private function (_arg1:Event):void{
var _local2:InteractiveObject = InteractiveObject(_arg1.target);
}
public function setFocus(_arg1:InteractiveObject):void{
if ((_arg1 is IFocusManagerComponent)){
IFocusManagerComponent(_arg1).setFocus();
} else {
form.stage.focus = _arg1;
};
}
public function getFocus():InteractiveObject{
var _local1:InteractiveObject = form.stage.focus;
return ((_local1));
}
private function ():Boolean{
var _local1:Object;
for (_local1 in ) {
return (true);
};
return (false);
}
private function (_arg1:Event):void{
= true;
}
public function set defaultButton(_arg1:Button):void{
var _local2:Button = (_arg1) ? Button(_arg1) : null;
if (_local2 != ){
if (){
.emphasized = false;
};
if (){
.emphasized = false;
};
= _local2;
= _local2;
if (_local2){
_local2.emphasized = true;
};
};
}
private function ():void{
var _local1:Object;
var _local2:InteractiveObject;
= [];
for (_local1 in ) {
_local2 = InteractiveObject(_local1);
if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){
();
return;
};
.push(_local2);
};
.sort(
);
}
private function (_arg1:FocusEvent):void{
showFocusIndicator = true;
if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){
(_arg1);
_arg1.preventDefault();
};
}
private function
(_arg1:DisplayObject):int{
var _local2:int =
.length;
var _local3:int;
_local3 = 0;
while (_local3 < _local2) {
if (
[_local3] == _arg1){
return (_local3);
};
_local3++;
};
return (-1);
}
public function ():void{
}
private function (_arg1:Event):void{
var _local2:int;
var _local4:InteractiveObject;
var _local3:DisplayObject = DisplayObject(_arg1.target);
if ((((_local3 is IFocusManagerComponent)) && (([_local3] == true)))){
if (_local3 == ){
IFocusManagerComponent( ).drawFocus(false);
= null;
};
_local3.removeEventListener(Event.TAB_ENABLED_CHANGE, );
delete [_local3];
= true;
} else {
if ((((_local3 is InteractiveObject)) && (([_local3] == true)))){
_local4 = (_local3 as InteractiveObject);
if (_local4){
if (_local4 == ){
= null;
};
delete [_local4];
= true;
};
_local3.addEventListener(Event.TAB_ENABLED_CHANGE, );
};
};
(_local3);
}
private function
(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{
var _local5:int;
var _local6:String;
var _local7:String;
var _local3 = "";
var _local4 = "";
var _local8 = "0000";
var _local9:DisplayObject = DisplayObject(_arg1);
var _local10:DisplayObject = 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 ();
}
private function (_arg1:Event):void{
var _local2:InteractiveObject = InteractiveObject(_arg1.target);
if ( ){
if (( is IFocusManagerComponent)){
IFocusManagerComponent( ).setFocus();
} else {
form.stage.focus = ;
};
};
= "ACTIVATE";
}
public function ():void{
}
public function set defaultButtonEnabled(_arg1:Boolean):void{
= _arg1;
}
public function
(_arg1:Boolean=false):InteractiveObject{
var _local8:IFocusManagerGroup;
if (!()){
return (null);
};
if (){
();
= false;
};
var _local2:DisplayObject = form.stage.focus;
_local2 = DisplayObject((InteractiveObject(_local2)));
var _local3 = "";
if ((_local2 is IFocusManagerGroup)){
_local8 = IFocusManagerGroup(_local2);
_local3 = _local8.groupName;
};
var _local4:int =
(_local2);
var _local5:Boolean;
var _local6:int = _local4;
if (_local4 == -1){
if (_arg1){
_local4 =
.length;
};
_local5 = true;
};
var _local7:int = (_local4, _arg1, _local5, _local3);
return ((
[_local7]));
}
private function (_arg1:MouseEvent):void{
if (_arg1.isDefaultPrevented()){
return;
};
var _local2:InteractiveObject = (InteractiveObject(_arg1.target));
if (!_local2){
return;
};
showFocusIndicator = false;
if (((((!((_local2 == ))) || (( == "ACTIVATE")))) && (!((_local2 is TextField))))){
setFocus(_local2);
};
= "MOUSEDOWN";
}
private function (_arg1:DisplayObject):Boolean{
var _local2:DisplayObjectContainer = _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){
= "KEY";
if (){
();
= false;
};
};
if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (.enabled))){
();
};
}
private function (_arg1:FocusEvent):void{
var _local3:Button;
var _local2:InteractiveObject = InteractiveObject(_arg1.target);
if (form.contains(_local2)){
= (InteractiveObject(_local2));
if (( is Button)){
_local3 = Button( );
if (){
.emphasized = false;
= _local3;
_local3.emphasized = true;
};
} else {
if ((() && (!(( == ))))){
.emphasized = false;
= ;
.emphasized = true;
};
};
};
}
private function (_arg1:Event):void{
= true;
var _local2:InteractiveObject = InteractiveObject(_arg1.target);
var _local3 = ([_local2] == true);
if (_local2.tabEnabled){
if (((!(_local3)) && ( (_local2)))){
if (!(_local2 is IFocusManagerComponent)){
_local2.focusRect = false;
};
[_local2] = true;
};
} else {
if (_local3){
delete [_local2];
};
};
}
public function set showFocusIndicator(_arg1:Boolean):void{
= _arg1;
}
public function get form():DisplayObjectContainer{
return ();
}
private function (_arg1:InteractiveObject, _arg2:InteractiveObject):int{
return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 :
(_arg1, _arg2));
}
public function get defaultButtonEnabled():Boolean{
return ();
}
public function ():void{
if (){
return;
};
form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, , false, 0, true);
form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, , false, 0, true);
form.addEventListener(FocusEvent.FOCUS_IN, , true);
form.addEventListener(FocusEvent.FOCUS_OUT, , true);
form.stage.addEventListener(Event.ACTIVATE, , false, 0, true);
form.stage.addEventListener(Event.DEACTIVATE, , false, 0, true);
form.addEventListener(MouseEvent.MOUSE_DOWN, );
form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true);
= true;
if ( ){
setFocus( );
};
}
public function ():void{
form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, );
form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, );
form.removeEventListener(FocusEvent.FOCUS_IN, , true);
form.removeEventListener(FocusEvent.FOCUS_OUT, , true);
form.stage.removeEventListener(Event.ACTIVATE, );
form.stage.removeEventListener(Event.DEACTIVATE, );
form.removeEventListener(MouseEvent.MOUSE_DOWN, );
form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true);
= false;
}
}
}//package fl.managers
Section 16
//IFocusManager (fl.managers.IFocusManager)
package fl.managers {
import fl.controls.*;
import flash.display.*;
public interface IFocusManager {
function getFocus():InteractiveObject;
function ():void;
function set defaultButton(_arg1:Button):void;
function set showFocusIndicator(_arg1:Boolean):void;
function get defaultButtonEnabled():Boolean;
function (_arg1:InteractiveObject):InteractiveObject;
function get nextTabIndex():int;
function get defaultButton():Button;
function get showFocusIndicator():Boolean;
function ():void;
function ():void;
function ():void;
function set defaultButtonEnabled(_arg1:Boolean):void;
function setFocus(_arg1:InteractiveObject):void;
function
(_arg1:Boolean=false):InteractiveObject;
}
}//package fl.managers
Section 17
//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 18
//IFocusManagerGroup (fl.managers.IFocusManagerGroup)
package fl.managers {
public interface IFocusManagerGroup {
function get groupName():String;
function get selected():Boolean;
function set groupName(_arg1:String):void;
function set selected(_arg1:Boolean):void;
}
}//package fl.managers
Section 19
//StyleManager (fl.managers.StyleManager)
package fl.managers {
import fl.core.*;
import flash.text.*;
import flash.utils.*;
public class StyleManager {
private var classToInstancesDict:Dictionary;
private var globalStyles:Object;
private var styleToClassesHash:Object;
private var classToStylesDict:Dictionary;
private var :Dictionary;
private static var _instance:StyleManager;
public function StyleManager(){
styleToClassesHash = {};
classToInstancesDict = new Dictionary(true);
classToStylesDict = new Dictionary(true);
= new Dictionary(true);
globalStyles = UIComponent.getStyleDefinition();
}
public static function clearComponentStyle(_arg1:Object, _arg2:String):void{
var _local3:Class = getClassDef(_arg1);
var _local4:Object = 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 (_arg1:String):void{
(_arg1, null);
}
public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{
var _local4:Class = getClassDef(_arg1);
var _local5:Object = 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 _local5:String;
var _local2:StyleManager = getInstance();
var _local3:Class = getClassDef(_arg1);
var _local4:Object = _local2.[_local3];
for (_local5 in _local4) {
_arg1.
(_local5, getSharedStyle(_arg1, _local5));
};
}
public static function getComponentStyle(_arg1:Object, _arg2:String):Object{
var _local3:Class = getClassDef(_arg1);
var _local4:Object = 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 _local4:Object;
var _local5:UIComponent;
var _local3:Dictionary = getInstance().classToInstancesDict[_arg1];
if (_local3 == null){
return;
};
for (_local4 in _local3) {
_local5 = (_local4 as UIComponent);
if (_local5 == null){
} else {
_local5.
(_arg2, getSharedStyle(_local5, _arg2));
};
};
}
private static function invalidateStyle(_arg1:String):void{
var _local3:Object;
var _local2:Dictionary = getInstance().styleToClassesHash[_arg1];
if (_local2 == null){
return;
};
for (_local3 in _local2) {
invalidateComponentStyle(Class(_local3), _arg1);
};
}
public static function registerInstance(_arg1:UIComponent):void{
var target:Class;
var defaultStyles:Object;
var styleToClasses:Object;
var n:String;
var instance = _arg1;
var inst:StyleManager = getInstance();
var classDef:Class = 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.[classDef] = defaultStyles;
if (inst.classToStylesDict[classDef] == null){
inst.classToStylesDict[classDef] = {};
};
};
inst.classToInstancesDict[classDef][instance] = true;
setSharedStyles(instance);
}
public static function
(_arg1:String):Object{
return (getInstance().globalStyles[_arg1]);
}
private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{
var _local3:Class = getClassDef(_arg1);
var _local4:StyleManager = getInstance();
var _local5:Object = _local4.classToStylesDict[_local3][_arg2];
if (_local5 != null){
return (_local5);
};
_local5 = _local4.globalStyles[_arg2];
if (_local5 != null){
return (_local5);
};
return (_local4.[_local3][_arg2]);
}
public static function (_arg1:String, _arg2:Object):void{
var _local3:Object = getInstance().globalStyles;
if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){
return;
};
_local3[_arg1] = _arg2;
invalidateStyle(_arg1);
}
}
}//package fl.managers
Section 20
//Strong (fl.transitions.easing.Strong)
package fl.transitions.easing {
public class Strong {
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2));
}
}
}//package fl.transitions.easing
Section 21
//Tween (fl.transitions.Tween)
package fl.transitions {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class Tween extends EventDispatcher {
private var :Number;// = NAN
public var
:Number;// = NAN
public var
:Number;// = NAN
public var
:Boolean;// = false
private var
:Number;// = NAN
private var
:Number;// = NAN
public var
:Number;// = NAN
private var
:Number;// = NAN
public var change:Number;// = NAN
public var :Boolean;// = false
private var :uint;// = 0
public var :Function;
private var
:Timer;// = null
private var :Number;// = NAN
public var :String;// = ""
private var :Number;// = NAN
public var :Object;// = null
public var :Boolean;// = false
protected static var _mc:MovieClip = new MovieClip();
public function Tween(_arg1:Object, _arg2:String, _arg3:Function, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean=false){
this. = function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
};
super();
if (!arguments.length){
return;
};
this. = _arg1;
this. = _arg2;
this.
= _arg4;
this.position = _arg4;
this.duration = _arg6;
this. = _arg7;
if ((_arg3 is Function)){
this. = _arg3;
};
this.finish = _arg5;
this.
= new Timer(100);
this.start();
}
public function
(_arg1:Number, _arg2:Number):void{
this.
= this.position;
this.finish = _arg1;
if (!isNaN(_arg2)){
this.duration = _arg2;
};
this.start();
}
protected function ():void{
var _local1:Number;
if (isNaN(this.
)){
_mc.addEventListener(Event.ENTER_FRAME, this., false, 0, true);
} else {
_local1 = (1000 / this.
);
this.
.delay = _local1;
this.
.addEventListener(TimerEvent.TIMER, this., false, 0, true);
this.
.start();
};
this.
= true;
}
public function stop():void{
this.
();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_STOP, this.
, this. ));
}
private function
():void{
if (this.){
this. = (getTimer() - (this.
* 1000));
};
}
public function set FPS(_arg1:Number):void{
var _local2:Boolean = this.
;
this.
();
this.
= _arg1;
if (_local2){
this. ();
};
}
public function get finish():Number{
return ((this.
+ this.change));
}
public function get duration():Number{
return (this.);
}
protected function
():void{
if (isNaN(this.
)){
_mc.removeEventListener(Event.ENTER_FRAME, this.);
} else {
this.
.stop();
};
this.
= false;
}
public function set time(_arg1:Number):void{
this.
= this.
;
if (_arg1 > this.duration){
if (this.){
this. ((_arg1 - this.));
this.
();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_LOOP, this.
, this. ));
} else {
if (this.){
this.
= this.;
this.
();
};
this.stop();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_FINISH, this.
, this. ));
};
} else {
if (_arg1 < 0){
this. ();
this.
();
} else {
this.
= _arg1;
this.
();
};
};
}
public function
(_arg1:Number=NaN):Number{
if (isNaN(_arg1)){
_arg1 = this.
;
};
return (this.(_arg1, this.
, this.change, this.));
}
public function set finish(_arg1:Number):void{
this.change = (_arg1 - this.
);
}
public function set duration(_arg1:Number):void{
this. = ((_arg1)<=0) ? Infinity : _arg1;
}
public function get position():Number{
return (this.
(this.
));
}
public function
(_arg1:Number):void{
this.
= this. ;
if (this..length){
this.[this.] = (this. = _arg1);
};
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_CHANGE, this.
, this. ));
}
public function
():void{
this.
();
this. ();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_RESUME, this.
, this. ));
}
public function
():void{
this.time = this.;
this.
();
}
protected function (_arg1:Event):void{
this.();
}
public function ():void{
this.
(this.
, this.time);
}
public function ():void{
if (this.){
this.time = ((getTimer() - this.) / 1000);
} else {
this.time = (this.
+ 1);
};
}
protected function (_arg1:TimerEvent):void{
this.();
_arg1.updateAfterEvent();
}
public function get FPS():Number{
return (this.
);
}
public function (_arg1:Number=0):void{
this.
= _arg1;
this.
();
this.
();
}
public function set position(_arg1:Number):void{
this.
(_arg1);
}
public function get time():Number{
return (this.
);
}
private function
():void{
this.
(this.
(this.
));
}
public function start():void{
this. ();
this. ();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_START, this.
, this. ));
}
public function ():void{
if (!this.){
this.time = (this.
- 1);
};
}
}
}//package fl.transitions
Section 22
//TweenEvent (fl.transitions.TweenEvent)
package fl.transitions {
import flash.events.*;
public class TweenEvent extends Event {
public var position:Number;// = NAN
public var time:Number;// = NAN
public static const MOTION_START:String = "motionStart";
public static const MOTION_STOP:String = "motionStop";
public static const MOTION_LOOP:String = "motionLoop";
public static const MOTION_CHANGE:String = "motionChange";
public static const MOTION_FINISH:String = "motionFinish";
public static const MOTION_RESUME:String = "motionResume";
public function TweenEvent(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Boolean=false){
super(_arg1, _arg4, _arg5);
this.time = _arg2;
this.position = _arg3;
}
override public function clone():Event{
return (new TweenEvent(this.type, this.time, this.position, this.bubbles, this.cancelable));
}
}
}//package fl.transitions
Section 23
//btn_37 (simulator_fla.btn_37)
package simulator_fla {
import flash.display.*;
public dynamic class btn_37 extends MovieClip {
public function btn_37(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package simulator_fla
Section 24
//logo_58 (simulator_fla.logo_58)
package simulator_fla {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public dynamic class logo_58 extends MovieClip {
public var logo:MovieClip;
public function logo_58(){
addFrameScript(0, frame1);
}
function frame1(){
logo.addEventListener(MouseEvent.CLICK, onLogoClick);
logo.buttonMode = true;
}
public function onLogoClick(_arg1:MouseEvent):void{
var _local2 = "http://www.nauticed.org/";
var _local3:URLRequest = new URLRequest(_local2);
navigateToURL(_local3, "_blank");
}
}
}//package simulator_fla
Section 25
//slider_btn_66 (simulator_fla.slider_btn_66)
package simulator_fla {
import flash.display.*;
public dynamic class slider_btn_66 extends MovieClip {
public function slider_btn_66(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package simulator_fla
Section 26
//Symbol16_29 (simulator_fla.Symbol16_29)
package simulator_fla {
import flash.display.*;
public dynamic class Symbol16_29 extends MovieClip {
public function Symbol16_29(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package simulator_fla
Section 27
//wind_16 (simulator_fla.wind_16)
package simulator_fla {
import flash.display.*;
public dynamic class wind_16 extends MovieClip {
public function wind_16(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package simulator_fla
Section 28
//CheckBox_disabledIcon (CheckBox_disabledIcon)
package {
import flash.display.*;
public dynamic class CheckBox_disabledIcon extends MovieClip {
}
}//package
Section 29
//CheckBox_downIcon (CheckBox_downIcon)
package {
import flash.display.*;
public dynamic class CheckBox_downIcon extends MovieClip {
}
}//package
Section 30
//CheckBox_overIcon (CheckBox_overIcon)
package {
import flash.display.*;
public dynamic class CheckBox_overIcon extends MovieClip {
}
}//package
Section 31
//CheckBox_selectedDisabledIcon (CheckBox_selectedDisabledIcon)
package {
import flash.display.*;
public dynamic class CheckBox_selectedDisabledIcon extends MovieClip {
}
}//package
Section 32
//CheckBox_selectedDownIcon (CheckBox_selectedDownIcon)
package {
import flash.display.*;
public dynamic class CheckBox_selectedDownIcon extends MovieClip {
}
}//package
Section 33
//CheckBox_selectedOverIcon (CheckBox_selectedOverIcon)
package {
import flash.display.*;
public dynamic class CheckBox_selectedOverIcon extends MovieClip {
}
}//package
Section 34
//CheckBox_selectedUpIcon (CheckBox_selectedUpIcon)
package {
import flash.display.*;
public dynamic class CheckBox_selectedUpIcon extends MovieClip {
}
}//package
Section 35
//CheckBox_upIcon (CheckBox_upIcon)
package {
import flash.display.*;
public dynamic class CheckBox_upIcon extends MovieClip {
}
}//package
Section 36
//focusRectSkin (focusRectSkin)
package {
import flash.display.*;
public dynamic class focusRectSkin extends MovieClip {
}
}//package
Section 37
//LibraryFont (LibraryFont)
package {
import flash.text.*;
public dynamic class LibraryFont extends Font {
}
}//package
Section 38
//MyFlashLabSliderSkin (MyFlashLabSliderSkin)
package {
import flash.display.*;
public dynamic class MyFlashLabSliderSkin extends MovieClip {
public var slider_bg:MovieClip;
public var slider_btn:MovieClip;
}
}//package
Section 39
//Simulator (Simulator)
package {
import fl.controls.*;
import flash.display.*;
import flash.events.*;
import com.onebyonedesign.utils.*;
import flash.text.*;
import fl.transitions.*;
import flash.utils.*;
import fl.transitions.easing.*;
import com.myflashlab.classes.tools.slider.*;
import com.myflashlab.classes.tools.rightClick.*;
import flash.net.*;
public class Simulator extends MovieClip {
private var :TextField;
private var :TextField;
private var :TextField;
private var :MovieClip;
public var eMeter:MovieClip;
private var
:TextField;
private var :TextField;
public var topLcd:MovieClip;
private var :Tween;
private var :Timer;
private var :MovieClip;
private var :MovieClip;
private var :Number;
public var navigator:MovieClip;
private var :Tween;
private var
:Tween;
private var
:Boolean;// = false
private var :Timer;
private var :Number;// = 0
private var :MovieClip;
private var :String;
private var :Number;// = 100
public var angleDescriptionTxt:TextField;
private var :Number;
private var :MovieClip;
private var
:Number;
private var :int;
private var
:Number;
private var :Number;
private var :OBO_ToolTip;
public var toolTipCheckBox:CheckBox;
private var :TextField;
private var :String;// = ""
private var :Boolean;// = false
private var :MovieClip;
private var
:MovieClip;
private var :MovieClip;
private var :Boolean;// = false
private var :Timer;
private var :MovieClip;
private var :MovieClip;
private var :MovieClip;
private var :Boolean;// = false
public var mainWinch:MovieClip;
private var :MovieClip;
private var
:Tween;
private var :Boolean;// = true
private var :Boolean;// = false
private var :Tween;
public var helm:MovieClip;
private var :MovieClip;
private var
:Tween;
private var
:MovieClip;
private var :MovieClip;
private var :Tween;
private var :MovieClip;
private var :Number;
private var :MovieClip;
private var :RightClickClass;
private var :MovieClip;
private var :MovieClip;
private var :MovieClip;
private var :Number;// = 10
private var
:MyFlashLabSlider;
private var
:Number;// = 0
private var :Number;// = 36
public var sponsor_1_logo:MovieClip;
private var
:Number;
private var
:MovieClip;
private var
:MovieClip;
private var
:MovieClip;
private var
:TextField;
private var
:Number;// = 29
private var
:Tween;
private var
:Timer;
private var
:MovieClip;
private var
:TextField;
private var :Boolean;// = false
private var :MovieClip;
public var jibWinch:MovieClip;
public function Simulator():void{
= new Timer(SimulatorConstants.WINCH_PALS);
= new Timer(SimulatorConstants.BACK_TO_DEFAULT, 1);
= new Timer(3000);
= new Timer(SimulatorConstants.MANEUVER, 1);
super();
addFrameScript(0, frame1);
addEventListener(Event.ADDED_TO_STAGE, );
();
}
private function (_arg1:Number):int{
var _local2 = -1;
var _local3:* = Math.round((_arg1 / 5));
_local3 = (_local3 * 5);
if (_local3 < 0){
_local3 = (_local3 * -1);
};
if (_local3 < 20){
_local3 = 0;
};
if (_local3 > 180){
_local3 = (360 - _local3);
};
_local2 = SimulatorConstants.WIND_ANGLE_ARRAY.indexOf(_local3);
return (_local2);
}
private function (_arg1:TweenEvent):void{
.visible = false;
}
private function
(_arg1:Number, _arg2:Number):Number{
var _local3:Number = 0;
if (_arg1 < 0){
_arg1 = (_arg1 * -1);
};
if ((((_arg1 >= _arg2)) && ((_arg1 < 360)))){
_local3 = (_arg1 - _arg2);
} else {
if ((((_arg1 >= 0)) && ((_arg1 < _arg2)))){
_local3 = (_arg1 + (360 - _arg2));
};
};
return (_local3);
}
private function (_arg1:MouseEvent):void{
_arg1.currentTarget.gotoAndStop(1);
}
private function ():void{
.text = .toString();
.text = .toString();
var _local1:String =
.toString();
.text = _local1.substr(0, 4);
.text = .toString();
.text = .toString();
.text = ;
}
private function ():void{
= this.topLcd.digits.speed_txt;
= this.topLcd.digits.heel_txt;
= this.topLcd.digits.wind_txt;
= this.topLcd.digits.hdg_txt;
= this.topLcd.digits.depth_txt;
= this.mainWinch.digit.main_txt;
= this.jibWinch.digit.main_txt;
= this.angleDescriptionTxt;
.text =
.toString();
.text = .toString();
.addEventListener(MouseEvent.ROLL_OVER,
);
.addEventListener(MouseEvent.ROLL_OVER,
);
.addEventListener(MouseEvent.ROLL_OVER,
);
.addEventListener(MouseEvent.ROLL_OVER,
);
.addEventListener(MouseEvent.ROLL_OVER,
);
.addEventListener(MouseEvent.ROLL_OVER,
);
.addEventListener(MouseEvent.ROLL_OUT, );
.addEventListener(MouseEvent.ROLL_OUT, );
.addEventListener(MouseEvent.ROLL_OUT, );
.addEventListener(MouseEvent.ROLL_OUT, );
.addEventListener(MouseEvent.ROLL_OUT, );
.addEventListener(MouseEvent.ROLL_OUT, );
}
private function (_arg1:TweenEvent):void{
.visible = false;
}
function frame1(){
sponsor_1_logo.addEventListener(MouseEvent.CLICK, onLogoClick);
sponsor_1_logo.buttonMode = true;
}
private function (_arg1:TimerEvent):void{
--;
if ( >= -179){
();
} else {
= -179;
.removeEventListener(TimerEvent.TIMER, );
};
}
private function (_arg1:ContextMenuEvent):void{
var _local2 = "http://www.myflashlab.com";
var _local3:URLRequest = new URLRequest(_local2);
navigateToURL(_local3, "_blank");
}
private function ():void{
= this.mainWinch.buttons.r_btn;
= this.mainWinch.buttons.l_btn;
= this.helm.buttons.r_btn;
= this.helm.buttons.l_btn;
= this.jibWinch.buttons.r_btn;
= this.jibWinch.buttons.l_btn;
= this.navigator.wind;
this.mainWinch.addEventListener(MouseEvent.ROLL_OVER,
);
this.mainWinch.addEventListener(MouseEvent.ROLL_OUT, );
this.jibWinch.addEventListener(MouseEvent.ROLL_OVER,
);
this.jibWinch.addEventListener(MouseEvent.ROLL_OUT, );
this.helm.addEventListener(MouseEvent.ROLL_OVER,
);
this.helm.addEventListener(MouseEvent.ROLL_OUT, );
.addEventListener(MouseEvent.ROLL_OVER, over);
.addEventListener(MouseEvent.ROLL_OUT, );
.addEventListener(MouseEvent.MOUSE_DOWN, down);
.stage.addEventListener(MouseEvent.MOUSE_UP, up);
.addEventListener(MouseEvent.ROLL_OVER, over);
.addEventListener(MouseEvent.ROLL_OUT, );
.addEventListener(MouseEvent.MOUSE_DOWN, down);
.stage.addEventListener(MouseEvent.MOUSE_UP, up);
.addEventListener(MouseEvent.ROLL_OVER, over);
.addEventListener(MouseEvent.ROLL_OUT, );
.addEventListener(MouseEvent.MOUSE_DOWN, down);
.stage.addEventListener(MouseEvent.MOUSE_UP, up);
.addEventListener(MouseEvent.ROLL_OVER, over);
.addEventListener(MouseEvent.ROLL_OUT, );
.addEventListener(MouseEvent.MOUSE_DOWN, down);
.stage.addEventListener(MouseEvent.MOUSE_UP, up);
.addEventListener(MouseEvent.ROLL_OVER, over);
.addEventListener(MouseEvent.ROLL_OUT, );
.addEventListener(MouseEvent.MOUSE_DOWN, down);
.stage.addEventListener(MouseEvent.MOUSE_UP, up);
.addEventListener(MouseEvent.ROLL_OVER, over);
.addEventListener(MouseEvent.ROLL_OUT, );
.addEventListener(MouseEvent.MOUSE_DOWN, down);
.stage.addEventListener(MouseEvent.MOUSE_UP, up);
.addEventListener(MouseEvent.ROLL_OVER, );
.addEventListener(MouseEvent.ROLL_OUT, );
.stage.addEventListener(MouseEvent.MOUSE_UP, );
.buttonMode = true;
this.toolTipCheckBox.addEventListener(MouseEvent.CLICK, );
= ;
}
private function (_arg1:TimerEvent):void{
if (.visible){
= new Tween(, "alpha", Strong.easeOut, .alpha, 0, 1, true);
.addEventListener(TweenEvent.MOTION_FINISH, , false, 0, true);
} else {
if (.visible){
= new Tween(, "alpha", Strong.easeOut, .alpha, 0, 1, true);
.addEventListener(TweenEvent.MOTION_FINISH, , false, 0, true);
};
};
.removeEventListener(TimerEvent.TIMER, );
}
private function (_arg1:TweenEvent):void{
.visible = false;
}
private function up(_arg1:MouseEvent):void{
if (){
.gotoAndStop(2);
} else {
.gotoAndStop(1);
};
.removeEventListener(TimerEvent.TIMER, );
.removeEventListener(TimerEvent.TIMER, );
.removeEventListener(TimerEvent.TIMER, );
.removeEventListener(TimerEvent.TIMER, );
.removeEventListener(TimerEvent.TIMER, );
.removeEventListener(TimerEvent.TIMER, );
if ( .parent.parent.name == "helm"){
= new Tween(
, "rotation", Strong.easeOut,
.rotation, SimulatorConstants.RUDDER_DEFAULT, 1, true);
.start();
.addEventListener(TimerEvent.TIMER,
);
};
}
private function down(_arg1:MouseEvent):void{
= (_arg1.currentTarget as MovieClip);
_arg1.currentTarget.gotoAndStop(3);
();
}
private function ():void{
switch ( .parent.parent.name){
case "mainWinch":
if ( .name == "r_btn"){
.start();
.addEventListener(TimerEvent.TIMER, );
} else {
if ( .name == "l_btn"){
.start();
.addEventListener(TimerEvent.TIMER, );
};
};
break;
case "helm":
.stop();
.removeEventListener(TimerEvent.TIMER,
);
if ( .name == "r_btn"){
.start();
.addEventListener(TimerEvent.TIMER, );
= new Tween(
, "rotation", Strong.easeOut,
.rotation, SimulatorConstants.RUDDER_MIN, 1, true);
} else {
if ( .name == "l_btn"){
.start();
.addEventListener(TimerEvent.TIMER, );
= new Tween(
, "rotation", Strong.easeOut,
.rotation, SimulatorConstants.RUDDER_MAX, 1, true);
};
};
break;
case "jibWinch":
if ( .name == "r_btn"){
.start();
.addEventListener(TimerEvent.TIMER, );
} else {
if ( .name == "l_btn"){
.start();
.addEventListener(TimerEvent.TIMER, );
};
};
break;
};
}
private function ():void{
= 180;
= 0;
= ;
= ;
}
private function ():void{
= -180;
= SimulatorConstants.JIB_WINCH_MAX;
= SimulatorConstants.JIB_WINCH_MIN;
= ;
= ;
}
private function (_arg1:TimerEvent):void{
++;
if ( <= SimulatorConstants.JIB_WINCH_MAX){
.text = .toString();
();
} else {
= SimulatorConstants.JIB_WINCH_MAX;
.removeEventListener(TimerEvent.TIMER, );
};
}
private function
(_arg1:Event):void{
var newRealR:Number;
var newR:Number;
var percent:Number;
var newE:Number;
var shakePercent:Number;
var e = _arg1;
try {
if ((((.parent.parent.name == "mainWinch")) || ((.parent.parent.name == "jibWinch")))){
percent = (( - ), ( - ));
newR = ((
/ 100) * percent);
.rotation = (.rotation - ((newR + .rotation) / 5));
if (.parent.parent.name == "mainWinch"){
newRealR = (((SimulatorConstants.MAIN_WINCH_REAL_MAX - SimulatorConstants.MAIN_WINCH_REAL_MIN) / 100) * percent);
.rotation = (.rotation - ((newRealR + .rotation) / 5));
.rotation = -(.rotation);
} else {
if (.parent.parent.name == "jibWinch"){
newRealR = (((SimulatorConstants.JIB_WINCH_REAL_MAX - SimulatorConstants.JIB_WINCH_REAL_MIN) / 100) * percent);
.rotation = ( .rotation - ((newRealR + .rotation) / 5));
.rotation = -( .rotation);
};
};
} else {
percent = (( - ), ( - ));
newR = ((-(( - )) / 100) * percent);
.rotation = (.rotation - ((newR + .rotation) / 5));
};
newE = ((
.width / 100) * (
* 100));
.x = (
.x + ((newE -
.x) / 5));
} catch(e:Error) {
};
= Math.round((.rotation - .rotation));
var windAngleIndex:int = (
);
var windSpeedIndex:int = SimulatorConstants.WIND_SPEED_ARRAY.indexOf( );
var optBoatSpeed:Number = SimulatorConstants.OPT_BOAT_SPEED_V[windAngleIndex][windSpeedIndex];
var optJib:int = SimulatorConstants.OPT_JIB[windAngleIndex];
var optMain:int = SimulatorConstants.OPT_MAIN[windAngleIndex];
var heelMultiplier:int = SimulatorConstants.HEEL_ANGLE[windAngleIndex];
= Math.round(((heelMultiplier * ) / 25));
var mainSpeedMultiplier:Number = (
, optMain);
var jibSpeedMultiplier:Number = ( , optJib);
= (mainSpeedMultiplier * jibSpeedMultiplier);
= (optBoatSpeed *
);
=
(SimulatorConstants.WIND_DEFAULT,
);
= (
);
();
if ((((
< SimulatorConstants.SHAKE_MAX)) && ((
> SimulatorConstants.SHAKE_MIN)))){
shakePercent = (Math.pow((
/ SimulatorConstants.SHAKE_MAX), 2) - 1);
.rotation =
(( - shakePercent), ( + shakePercent));
};
if ((((
>= 0)) && ((
<= 180)))){
.visible = true;
.visible = false;
} else {
if ((((
< 0)) && ((
>= -180)))){
.visible = false;
.visible = true;
} else {
if ((((
> 180)) && ((
< 360)))){
.visible = false;
.visible = true;
} else {
if ((((
< -180)) && ((
> -360)))){
.visible = true;
.visible = false;
};
};
};
};
if ((((
>= 5)) && ((
<= 165)))){
.visible = true;
.visible = false;
} else {
if ((((
< -195)) && ((
> -355)))){
.visible = true;
.visible = false;
} else {
if ((((
> 190)) && ((
< 355)))){
.visible = false;
.visible = true;
} else {
if ((((
< -5)) && ((
> -170)))){
.visible = false;
.visible = true;
};
};
};
};
if ((((
< 10)) && ((
> -10)))){
("tacking");
} else {
if ((((
> 175)) && ((
< 185)))){
("gybing");
} else {
if ((((
< -175)) && ((
> -185)))){
("gybing");
} else {
= false;
};
};
};
if ( != ){
= ;
if (){
("closeHaul", );
};
};
}
private function (_arg1:MouseEvent):void{
if (_arg1.target.name == "wind"){
if (
.visible){
.visible = false;
} else {
.visible = true;
};
} else {
.visible = false;
};
}
private function over(_arg1:MouseEvent):void{
_arg1.currentTarget.gotoAndStop(2);
= true;
}
private function (_arg1:MouseEvent):void{
if (){
.removeTip();
};
}
private function (_arg1:MouseEvent):void{
= _arg1.currentTarget.selected;
}
private function (_arg1:MouseEvent):void{
_arg1.currentTarget.gotoAndStop(2);
}
private function (_arg1:Number):String{
var _local2 = "Wait...";
if (_arg1 < 0){
_arg1 = (_arg1 * -1);
};
if (_arg1 >= 180){
_arg1 = (360 - _arg1);
};
if ((((_arg1 >= 0)) && ((_arg1 < 30)))){
_local2 = "No Sail Zone";
};
if ((((_arg1 >= 30)) && ((_arg1 < 40)))){
_local2 = "Close Haul";
};
if ((((_arg1 >= 40)) && ((_arg1 < 70)))){
_local2 = "Close Reach";
};
if ((((_arg1 >= 70)) && ((_arg1 < 110)))){
_local2 = "Reach";
};
if ((((_arg1 >= 110)) && ((_arg1 < 150)))){
_local2 = "Broad Reach";
};
if ((((_arg1 >= 150)) && ((_arg1 <= 180)))){
_local2 = "Running";
};
return (_local2);
}
private function (_arg1:Number, _arg2:int):Number{
var _local3:Number = 0;
if (_arg1 >= _arg2){
_local3 = Math.pow((1 - ((_arg1 - _arg2) / _arg1)), 0.8);
} else {
_local3 = Math.pow((1 - ((_arg2 - _arg1) / _arg2)), 0.8);
};
return (_local3);
}
private function (_arg1:Event):void{
= _arg1.currentTarget.value;
}
private function (_arg1:TimerEvent):void{
= ( + Math.round(
(-5, 5)));
if ( < SimulatorConstants.DEPTH_MIN){
= ( + 100);
} else {
if ( > SimulatorConstants.DEPTH_MAX){
= ( - 100);
};
};
}
private function ():void{
if ( ){
if ( != ){
= new Tween( , "alpha", Strong.easeOut, .alpha, 1, 1, true);
= ;
};
} else {
if (! ){
if ( != ){
= new Tween( , "alpha", Strong.easeOut, .alpha, 0, 1, true);
= ;
};
};
};
if (){
if ( !=
){
= new Tween( , "alpha", Strong.easeOut, .alpha, 1, 1, true);
= ;
};
} else {
if (!){
if ( !=
){
= new Tween( , "alpha", Strong.easeOut, .alpha, 0, 1, true);
= ;
};
};
};
}
private function (_arg1:TimerEvent):void{
--;
if ( >= SimulatorConstants.JIB_WINCH_MIN){
.text = .toString();
();
} else {
= SimulatorConstants.JIB_WINCH_MIN;
.removeEventListener(TimerEvent.TIMER, );
};
}
private function (_arg1:TimerEvent):void{
--;
if (
>= SimulatorConstants.MAIN_WINCH_MIN){
.text =
.toString();
();
} else {
= SimulatorConstants.MAIN_WINCH_MIN;
.removeEventListener(TimerEvent.TIMER, );
};
}
private function (_arg1:Number, _arg2:Number):Number{
var _local3:Number = Math.floor(((_arg2 / _arg1) * 100));
return (_local3);
}
private function (_arg1:TimerEvent):void{
if (
.visible){
= new Tween(
, "alpha", Strong.easeOut,
.alpha, 0, 1, true);
.addEventListener(TweenEvent.MOTION_FINISH, , false, 0, true);
};
}
private function ():void{
= new RightClickClass(this);
.addMenu("Coded by MyFlashLab.com");
.addEventListener(RightClickClass.CLICK, );
}
private function (_arg1:MouseEvent):void{
if (!_arg1.buttonDown){
_arg1.currentTarget.gotoAndStop(1);
};
= false;
}
public function onLogoClick(_arg1:MouseEvent):void{
var _local2 = "http://www.harken.com/";
var _local3:URLRequest = new URLRequest(_local2);
navigateToURL(_local3, "_blank");
}
private function (_arg1:TimerEvent):void{
++;
if ( <= 180){
();
} else {
= 180;
.removeEventListener(TimerEvent.TIMER, );
};
}
private function (_arg1:Event=null):void{
= OBO_ToolTip.createToolTip(this, new LibraryFont(), 0x333333, 0.8, OBO_ToolTip.ROUND_TIP, 0xCCCCCC, 12, true);
();
();
();
= this.mainWinch.halfCircle.theMask;
= this.jibWinch.halfCircle.theMask;
= this.navigator.sailBoat.sails.mainSail;
= this.navigator.sailBoat.sails.mainSailMirror;
= this.navigator.sailBoat.sails.jibSail;
= this.navigator.sailBoat.sails.jibSailMirror;
= this.navigator.sailBoat.sails.rudder;
= this.navigator.sailBoat;
= this.navigator.dial;
= this.eMeter;
= this.eMeter.dots;
= this.navigator.dialDisplay.redDisplay;
= this.navigator.dialDisplay.greenDisplay;
= this.navigator.maneuverGybing;
= this.navigator.maneuverTacking;
= this.navigator.closeHaul;
.addEventListener(MouseEvent.ROLL_OVER,
);
.addEventListener(MouseEvent.ROLL_OVER,
);
.addEventListener(MouseEvent.ROLL_OVER,
);
.addEventListener(MouseEvent.ROLL_OVER,
);
.addEventListener(MouseEvent.ROLL_OVER,
);
.addEventListener(MouseEvent.ROLL_OVER,
);
.addEventListener(MouseEvent.ROLL_OVER,
);
.addEventListener(MouseEvent.ROLL_OVER,
);
.addEventListener(MouseEvent.ROLL_OUT, );
.addEventListener(MouseEvent.ROLL_OUT, );
.addEventListener(MouseEvent.ROLL_OUT, );
.addEventListener(MouseEvent.ROLL_OUT, );
.addEventListener(MouseEvent.ROLL_OUT, );
.addEventListener(MouseEvent.ROLL_OUT, );
.addEventListener(MouseEvent.ROLL_OUT, );
.addEventListener(MouseEvent.ROLL_OUT, );
.rotation = SimulatorConstants.MAIN_WINCH_REAL_MIN;
.rotation = -(.rotation);
.rotation = SimulatorConstants.JIB_WINCH_REAL_MIN;
.rotation = -( .rotation);
.rotation = SimulatorConstants.RUDDER_DEFAULT;
.rotation = SimulatorConstants.HELM_DEFAULT;
.rotation = SimulatorConstants.WIND_DEFAULT;
.x = 0;
.alpha = 1;
.alpha = 1;
.alpha = 0;
.visible = false;
.alpha = 0;
.visible = false;
.alpha = 0;
.visible = false;
();
addEventListener(Event.ENTER_FRAME,
);
.start();
.addEventListener(TimerEvent.TIMER, );
();
setTimeout(, 500);
}
private function ():void{
= -180;
= SimulatorConstants.MAIN_WINCH_MAX;
= SimulatorConstants.MAIN_WINCH_MIN;
=
;
= ;
}
private function
(_arg1:MouseEvent):void{
if (){
switch (_arg1.currentTarget.name){
case "speed_txt":
.addTip("The speed of the boat is maximized<br>when the sails are set correctly.");
break;
case "heel_txt":
.addTip("The boat heels over<br>when on a close haul.");
break;
case "wind_txt":
.addTip("The speed of the wind can be<br>adjusted by clicking on the red<br>wind triangle.");
break;
case "hdg_txt":
.addTip("The compass heading.");
break;
case "depth_txt":
.addTip("Indicates the depth of the water<br>below the surface. This changes to<br>simulate the boat is moving");
break;
case "jibSail":
.addTip("The jib sail can be adjusted by<br>cranking on the starboard winch.<br>Set the sails to maximize the<br>speed of the boat.");
break;
case "jibSailMirror":
.addTip("The jib sail can be adjusted by<br>cranking on the starboard winch.<br>Set the sails to maximize the<br>speed of the boat.");
break;
case "mainSail":
.addTip("The main sail can be adjusted by<br>cranking on the port winch.<br>Set the sails to maximize<br>the speed of the boat.");
break;
case "mainSailMirror":
.addTip("The main sail can be adjusted by<br>cranking on the port winch.<br>Set the sails to maximize<br>the speed of the boat.");
break;
case "rudder":
.addTip("The Rudder. Steer the boat<br>by clicking the split center helm<br>button below.");
break;
case "dial":
.addTip("Angles show the direction of<br>the wind relative to the boat.");
break;
case "wind":
.addTip("The direction of the wind<br>relative to the boat.<br>Click to increase or decrease<br>the speed of the wind.");
break;
case "eMeter":
.addTip("Indicates how well your sails are set<br>for the specific wind angle.");
break;
case "mainWinch":
.addTip("Controls the main sail. Adjust the<br>number of turns on the winch to<br>maximize the speed of the boat.");
break;
case "jibWinch":
.addTip("Controls the jib sail. Adjust the<br>number of turns on the winch to<br>maximize the speed of the boat.");
break;
case "helm":
.addTip("Click to steer the boat to port<br>or starboard. Upon release, the<br>boat will return to the upright position.<br>The wind angle and heading will<br>have changed accordingly.");
break;
case "angleDescriptionTxt":
.addTip("This is the \"Point of Sail\" angle");
break;
};
};
}
function
(){
try {
toolTipCheckBox["componentInspectorSetting"] = true;
} catch(e:Error) {
};
toolTipCheckBox.enabled = true;
toolTipCheckBox.label = "";
toolTipCheckBox.labelPlacement = "right";
toolTipCheckBox.selected = true;
toolTipCheckBox.visible = true;
try {
toolTipCheckBox["componentInspectorSetting"] = false;
} catch(e:Error) {
};
}
private function
(_arg1:String, _arg2:String=""):void{
if (_arg1 == "tacking"){
if (!){
.visible = true;
= new Tween(, "alpha", Strong.easeOut, .alpha, 1, 1, true);
= true;
.start();
.addEventListener(TimerEvent.TIMER, );
};
} else {
if (_arg1 == "gybing"){
if (!){
.visible = true;
= new Tween(, "alpha", Strong.easeOut, .alpha, 1, 1, true);
= true;
.start();
.addEventListener(TimerEvent.TIMER, );
};
} else {
if (_arg1 == "closeHaul"){
.txt.text = _arg2;
.visible = true;
= new Tween(
, "alpha", Strong.easeOut,
.alpha, 1, 1, true);
.start();
.addEventListener(TimerEvent.TIMER, );
};
};
};
}
private function
(_arg1:TimerEvent):void{
= 0;
= new Tween(, "rotation", Strong.easeInOut, .rotation, , 1, true);
();
= new Tween(, "rotation", Strong.easeInOut, .rotation, ( +
), 1, true);
}
private function
():void{
= new MyFlashLabSlider();
.length = 150;
.position = MyFlashLabSliderCons.VERTICAL;
.min = SimulatorConstants.WIND_SPEED_MIN;
.max = SimulatorConstants.WIND_SPEED_MAX;
.value = ;
.skin = "MyFlashLabSliderSkin";
.addEventListener(MyFlashLabSliderEvents.LIVE_CHANGE, );
.x = -5;
.y = -130;
.visible = false;
.addChild(
);
}
private function
(_arg1:Number, _arg2:Number):Number{
return (((Math.random() * (_arg2 - _arg1)) + _arg1));
}
private function (_arg1:TimerEvent):void{
++;
if (
<= SimulatorConstants.MAIN_WINCH_MAX){
.text =
.toString();
();
} else {
= SimulatorConstants.MAIN_WINCH_MAX;
.removeEventListener(TimerEvent.TIMER, );
};
}
}
}//package
Section 40
//SimulatorConstants (SimulatorConstants)
package {
public class SimulatorConstants {
public static const OPT_MAIN:Array = new Array(0, 35, 35, 35, 34, 33, 32, 31, 30, 29, 27, 25, 23, 21, 19, 17, 15, 13, 12, 11, 10, 9, 8, 7, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5);
public static const MAIN_WINCH_MIN:Number = 5;
public static const WIND_SPEED_DEFAULT:Number = 10;
public static const HEEL_ANGLE:Array = new Array(3, 20, 30, 45, 43, 41, 39, 37, 35, 33, 31, 29, 27, 25, 23, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0);
public static const MAIN_WINCH_MAX:Number = 35;
public static const HELM_DEFAULT:Number = 0;
public static const OPT_JIB:Array = new Array(0, 42, 42, 42, 41, 40, 39, 38, 37, 36, 34, 32, 30, 28, 26, 24, 22, 20, 18, 18, 17, 16, 15, 14, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12);
public static const OPT_BOAT_SPEED_0:Array = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
public static const OPT_BOAT_SPEED_3:Array = new Array(2.1, 2.7, 3.2, 3.8, 4.4, 4.7, 5, 5.1, 5.2, 5.4, 5.5, 5.6, 5.7, 5.7, 5.8, 5.8, 5.8, 5.8, 5.8, 5.9, 5.9, 5.9, 5.9, 5.9, 6, 6, 6);
public static const OPT_BOAT_SPEED_4:Array = new Array(2.7, 3.3, 3.9, 4.5, 5.1, 5.4, 5.8, 5.9, 6.1, 6.2, 6.3, 6.3, 6.4, 6.4, 6.5, 6.5, 6.5, 6.5, 6.5, 6.6, 6.6, 6.6, 6.6, 6.6, 6.6, 6.6, 6.7);
public static const OPT_BOAT_SPEED_5:Array = new Array(3.2, 3.9, 4.6, 5.2, 5.8, 6.2, 6.5, 6.8, 7, 7, 7, 7.1, 7.1, 7.1, 7.2, 7.2, 7.2, 7.2, 7.2, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3, 7.3);
public static const JIB_WINCH_REAL_MIN:Number = 0;
public static const OPT_BOAT_SPEED_7:Array = new Array(3.9, 4.7, 5.4, 6.1, 6.7, 6.9, 7.1, 7.3, 7.5, 7.6, 7.7, 7.8, 7.8, 7.8, 7.9, 7.9, 7.9, 7.9, 7.9, 8, 8, 8, 8, 8, 8.1, 8.1, 8.1);
public static const OPT_BOAT_SPEED_1:Array = new Array(0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
public static const OPT_BOAT_SPEED_6:Array = new Array(3.6, 4.3, 5, 5.6, 6.3, 6.5, 6.8, 7, 7.3, 7.3, 7.4, 7.4, 7.5, 7.5, 7.5, 7.5, 7.6, 7.6, 7.6, 7.6, 7.6, 7.7, 7.7, 7.7, 7.7, 7.7, 7.7);
public static const OPT_BOAT_SPEED_9:Array = new Array(4.3, 5.2, 6, 6.5, 7, 7.3, 7.5, 7.8, 8, 8.1, 8.2, 8.3, 8.4, 8.4, 8.5, 8.5, 8.5, 8.5, 8.5, 8.6, 8.6, 8.6, 8.6, 8.6, 8.6, 8.6, 8.6);
public static const OPT_BOAT_SPEED_2:Array = new Array(1.3, 1.5, 1.7, 2, 2.3, 2.5, 2.7, 2.8, 2.9, 2.9, 3, 3, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.2, 3.2, 3.2);
public static const SHAKE_MIN:Number = -20;
public static const OPT_BOAT_SPEED_8:Array = new Array(4.1, 4.9, 5.7, 6.3, 6.9, 7.1, 7.3, 7.5, 7.8, 7.9, 8, 8, 8.1, 8.1, 8.2, 8.2, 8.2, 8.2, 8.2, 8.3, 8.3, 8.3, 8.3, 8.3, 8.3, 8.3, 8.4);
public static const JIB_WINCH_REAL_MAX:Number = 70;
public static const RUDDER_MIN:Number = -30;
public static const SHAKE_MAX:Number = 20;
public static const WIND_SPEED_ARRAY:Array = new Array(4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30);
public static const OPT_BOAT_SPEED_V:Array = new Array(OPT_BOAT_SPEED_0, OPT_BOAT_SPEED_1, OPT_BOAT_SPEED_2, OPT_BOAT_SPEED_3, OPT_BOAT_SPEED_4, OPT_BOAT_SPEED_5, OPT_BOAT_SPEED_6, OPT_BOAT_SPEED_7, OPT_BOAT_SPEED_8, OPT_BOAT_SPEED_9, OPT_BOAT_SPEED_10, OPT_BOAT_SPEED_11, OPT_BOAT_SPEED_12, OPT_BOAT_SPEED_13, OPT_BOAT_SPEED_14, OPT_BOAT_SPEED_15, OPT_BOAT_SPEED_16, OPT_BOAT_SPEED_17, OPT_BOAT_SPEED_18, OPT_BOAT_SPEED_19, OPT_BOAT_SPEED_20, OPT_BOAT_SPEED_21, OPT_BOAT_SPEED_22, OPT_BOAT_SPEED_23, OPT_BOAT_SPEED_24, OPT_BOAT_SPEED_25, OPT_BOAT_SPEED_26, OPT_BOAT_SPEED_27, OPT_BOAT_SPEED_28, OPT_BOAT_SPEED_29, OPT_BOAT_SPEED_30, OPT_BOAT_SPEED_31, OPT_BOAT_SPEED_32, OPT_BOAT_SPEED_33);
public static const RUDDER_MAX:Number = 30;
public static const DEPTH_DEFAULT:Number = 100;
public static const WINCH_PALS:Number = 100;
public static const WIND_SPEED_MIN:Number = 4;
public static const DEPTH_MIN:Number = 20;
public static const JIB_WINCH_DEFAULT:Number = 36;
public static const DEPTH_MAX:Number = 200;
public static const OPT_BOAT_SPEED_10:Array = new Array(4.4, 5.3, 6.2, 6.6, 7.1, 7.3, 7.6, 7.9, 8.1, 8.2, 8.4, 8.4, 8.5, 8.5, 8.6, 8.6, 8.7, 8.7, 8.7, 8.7, 8.8, 8.8, 8.8, 8.8, 8.8, 8.8, 8.9);
public static const OPT_BOAT_SPEED_11:Array = new Array(4.5, 5.4, 6.3, 6.7, 7.1, 7.4, 7.8, 8, 8.2, 8.4, 8.5, 8.6, 8.6, 8.7, 8.7, 8.8, 8.8, 8.8, 8.9, 8.9, 9, 9, 9, 9, 9.1, 9.1, 9.1);
public static const OPT_BOAT_SPEED_12:Array = new Array(4.6, 5.5, 6.4, 6.8, 7.2, 7.5, 7.8, 8.1, 8.4, 8.5, 8.6, 8.7, 8.8, 8.8, 8.9, 8.9, 9, 9, 9.1, 9.1, 9.2, 9.2, 9.2, 9.2, 9.3, 9.3, 9.3);
public static const OPT_BOAT_SPEED_13:Array = new Array(4.6, 5.6, 6.5, 6.9, 7.2, 7.5, 7.9, 8.2, 8.5, 8.6, 8.6, 8.8, 8.9, 9, 9.1, 9.1, 9.2, 9.2, 9.3, 9.3, 9.4, 9.4, 9.4, 9.4, 9.5, 9.5, 9.5);
public static const OPT_BOAT_SPEED_15:Array = new Array(4.5, 5.4, 6.3, 6.8, 7.2, 7.5, 7.8, 8.2, 8.5, 8.6, 8.6, 8.8, 9, 9.2, 9.3, 9.5, 9.6, 9.7, 9.8, 9.8, 9.9, 10, 10, 10.1, 10.1, 10.2, 10.2);
public static const OPT_BOAT_SPEED_16:Array = new Array(4.5, 5.3, 6.2, 6.7, 7.1, 7.4, 7.8, 8.1, 8.4, 8.5, 8.6, 8.8, 9, 9.1, 9.3, 9.5, 9.7, 9.8, 9.9, 10, 10.1, 10.3, 10.3, 10.4, 10.5, 10.5, 10.6);
public static const OPT_BOAT_SPEED_17:Array = new Array(4.4, 5.3, 6.1, 6.6, 7, 7.4, 7.7, 8, 8.3, 8.4, 8.5, 8.7, 8.9, 9.1, 9.3, 9.5, 9.7, 9.9, 10, 10.2, 10.3, 10.5, 10.6, 10.7, 10.8, 10.9, 11);
public static const OPT_BOAT_SPEED_19:Array = new Array(4.1, 4.9, 5.8, 6.3, 6.8, 7.2, 7.5, 7.8, 8.1, 8.2, 8.4, 8.7, 8.9, 9.1, 9.2, 9.4, 9.5, 9.8, 10, 10.3, 10.5, 10.8, 11, 11.2, 11.3, 11.5, 11.7);
public static const BACK_TO_DEFAULT:Number = 600;
public static const JIB_WINCH_MIN:Number = 12;
public static const WIND_SPEED_MAX:Number = 30;
public static const OPT_BOAT_SPEED_14:Array = new Array(4.6, 5.5, 6.4, 6.8, 7.2, 7.5, 7.8, 8.2, 8.5, 8.6, 8.6, 8.8, 9, 9.1, 9.2, 9.3, 9.4, 9.5, 9.5, 9.6, 9.6, 9.7, 9.7, 9.8, 9.8, 9.8, 9.9);
public static const OPT_BOAT_SPEED_18:Array = new Array(4.3, 5.1, 5.9, 6.4, 6.9, 7.3, 7.6, 7.9, 8.2, 8.3, 8.5, 8.7, 8.9, 9.1, 9.3, 9.4, 9.6, 9.8, 10, 10.2, 10.4, 10.7, 10.8, 10.9, 11.1, 11.2, 11.4);
public static const MAIN_WINCH_REAL_MIN:Number = 0;
public static const MAIN_WINCH_REAL_MAX:Number = 70;
public static const OPT_BOAT_SPEED_20:Array = new Array(3.9, 4.7, 5.4, 6, 6.7, 7, 7.4, 7.6, 7.8, 8.1, 8.3, 8.5, 8.7, 8.9, 9, 9.2, 9.4, 9.6, 9.9, 10.1, 10.4, 10.7, 10.9, 11.1, 11.4, 11.6, 11.9);
public static const JIB_WINCH_MAX:Number = 45;
public static const OPT_BOAT_SPEED_22:Array = new Array(3.4, 4.1, 4.8, 5.5, 6.2, 6.6, 7.1, 7.2, 7.3, 7.7, 8.1, 8.2, 8.4, 8.6, 8.8, 8.9, 9.1, 9.3, 9.6, 9.8, 10, 10.3, 10.6, 10.9, 11.2, 11.5, 11.8);
public static const OPT_BOAT_SPEED_23:Array = new Array(3, 3.8, 4.5, 5.2, 5.8, 6.4, 6.9, 6.9, 7.1, 7.4, 7.9, 8.1, 8.3, 8.5, 8.7, 8.8, 9, 9.2, 9.4, 9.6, 9.8, 10.1, 10.3, 10.6, 10.9, 11.2, 11.5);
public static const OPT_BOAT_SPEED_24:Array = new Array(2.9, 3.6, 4.4, 5, 5.6, 6.1, 6.5, 6.7, 7.1, 7.4, 7.7, 7.9, 8.1, 8.3, 8.4, 8.6, 8.8, 9, 9.2, 9.4, 9.6, 9.8, 10.1, 10.3, 10.6, 10.9, 11.3);
public static const OPT_BOAT_SPEED_25:Array = new Array(2.8, 3.5, 4.2, 4.8, 5.4, 5.9, 6, 6.5, 7, 7.3, 7.5, 7.7, 7.8, 8, 8.2, 8.4, 8.6, 8.7, 8.9, 9.1, 9.3, 9.5, 9.8, 10.1, 10.3, 10.6, 11);
public static const OPT_BOAT_SPEED_26:Array = new Array(2.7, 3.4, 4.1, 4.7, 5.3, 5.7, 5.8, 6.3, 7.6, 7.4, 7.2, 7.4, 7.6, 7.8, 8, 8.1, 8.3, 8.5, 8.7, 8.9, 9.1, 9.3, 9.5, 9.8, 10, 10.3, 10.7);
public static const OPT_BOAT_SPEED_27:Array = new Array(2.6, 3.3, 4, 4.5, 5.1, 5.5, 5.6, 6.1, 6.2, 6.6, 7, 7.2, 7.4, 7.6, 7.8, 7.9, 8.1, 8.2, 8.4, 8.6, 8.8, 9, 9.2, 9.5, 9.7, 10, 10.3);
public static const OPT_BOAT_SPEED_21:Array = new Array(3.8, 4.4, 5.1, 5.8, 6.5, 6.9, 7.2, 7.4, 7.6, 7.9, 8.2, 8.4, 8.5, 8.7, 8.9, 9, 9.2, 9.5, 9.7, 10, 10.2, 10.5, 10.8, 11.1, 11.4, 11.7, 12);
public static const RUDDER_DEFAULT:Number = 0;
public static const OPT_BOAT_SPEED_28:Array = new Array(2.5, 3.2, 3.9, 4.4, 4.9, 5.3, 5.4, 5.8, 6, 6.3, 6.7, 6.9, 7.2, 7.4, 7.5, 7.7, 7.8, 8, 8.2, 8.4, 8.6, 8.8, 9, 9.2, 9.4, 9.6, 10);
public static const MANEUVER:Number = 2500;
public static const OPT_BOAT_SPEED_29:Array = new Array(2.4, 3.1, 3.7, 4.2, 4.7, 5.1, 5.3, 5.6, 5.8, 6.1, 6.4, 6.7, 7, 7.2, 7.3, 7.4, 7.6, 7.7, 7.9, 8.1, 8.3, 8.5, 8.7, 8.9, 9.1, 9.3, 9.6);
public static const OPT_BOAT_SPEED_30:Array = new Array(2.3, 2.9, 3.6, 4.1, 4.5, 4.9, 5.1, 5.4, 5.6, 5.9, 6.1, 6.5, 6.8, 7, 7.1, 7.2, 7.3, 7.5, 7.7, 7.9, 8.1, 8.3, 8.4, 8.6, 8.8, 9, 9.3);
public static const OPT_BOAT_SPEED_31:Array = new Array(2.2, 2.8, 3.5, 3.9, 4.4, 4.7, 4.9, 5.2, 5.4, 5.6, 5.9, 6.2, 6.6, 6.7, 6.9, 7, 7, 7.2, 7.4, 7.6, 7.8, 8, 8.1, 8.3, 8.5, 8.7, 8.9);
public static const OPT_BOAT_SPEED_33:Array = new Array(2, 2.6, 3.2, 3.6, 4, 4.3, 4.5, 4.8, 5, 5.2, 5.3, 5.8, 6.2, 6.3, 6.4, 6.5, 6.5, 6.7, 6.9, 7.1, 7.3, 7.5, 7.6, 7.7, 7.9, 8.1, 8.2);
public static const WIND_DEFAULT:Number = 60;
public static const WIND_ANGLE_ARRAY:Array = new Array(0, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145, 150, 155, 160, 165, 170, 175, 180);
public static const OPT_BOAT_SPEED_32:Array = new Array(2.1, 2.7, 3.3, 3.8, 4.2, 4.5, 4.7, 5, 5.2, 5.4, 5.6, 6, 6.4, 6.5, 6.6, 6.7, 6.8, 7, 7.2, 7.4, 7.6, 7.8, 7.9, 8, 8.2, 8.4, 8.6);
public static const MAIN_WINCH_DEFAULT:Number = 29;
}
}//package