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

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

Frenziac.swf

This is the info page for
Flash #30470

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


Text
START

START

HIGH SCORES

HELP

MORE GAMES

LEVEL UP!

GAME
OVER

ActionScript [AS3]

Section 1
//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 _selected:Boolean;// = false private var unlockedMouseState:String; protected var pressTimer:Timer; protected var mouseState:String; protected var background:DisplayObject; private var _mouseStateLocked:Boolean;// = false protected var _autoRepeat:Boolean;// = false private static var defaultStyles:Object = {upSkin:"Button_upSkin", downSkin:"Button_downSkin", overSkin:"Button_overSkin", disabledSkin:"Button_disabledSkin", selectedDisabledSkin:"Button_selectedDisabledSkin", selectedUpSkin:"Button_selectedUpSkin", selectedDownSkin:"Button_selectedDownSkin", selectedOverSkin:"Button_selectedOverSkin", focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35}; public function BaseButton(){ _selected = false; _autoRepeat = false; _mouseStateLocked = false; super(); buttonMode = true; mouseChildren = false; useHandCursor = false; setupMouseEvents(); setMouseState("up"); pressTimer = new Timer(1, 0); pressTimer.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true); } protected function endPress():void{ pressTimer.reset(); } public function set mouseStateLocked(_arg1:Boolean):void{ _mouseStateLocked = _arg1; if (_arg1 == false){ setMouseState(unlockedMouseState); } else { unlockedMouseState = mouseState; }; } public function get autoRepeat():Boolean{ return (_autoRepeat); } public function set autoRepeat(_arg1:Boolean):void{ _autoRepeat = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; mouseEnabled = _arg1; } public function get selected():Boolean{ return (_selected); } protected function mouseEventHandler(_arg1:MouseEvent):void{ if (_arg1.type == MouseEvent.MOUSE_DOWN){ setMouseState("down"); startPress(); } else { if ((((_arg1.type == MouseEvent.ROLL_OVER)) || ((_arg1.type == MouseEvent.MOUSE_UP)))){ setMouseState("over"); endPress(); } else { if (_arg1.type == MouseEvent.ROLL_OUT){ setMouseState("up"); endPress(); }; }; }; } public function setMouseState(_arg1:String):void{ if (_mouseStateLocked){ unlockedMouseState = _arg1; return; }; if (mouseState == _arg1){ return; }; mouseState = _arg1; invalidate(InvalidationType.STATE); } protected function startPress():void{ if (_autoRepeat){ pressTimer.delay = Number(getStyleValue("repeatDelay")); pressTimer.start(); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } protected function buttonDown(_arg1:TimerEvent):void{ if (!_autoRepeat){ endPress(); return; }; if (pressTimer.currentCount == 1){ pressTimer.delay = Number(getStyleValue("repeatInterval")); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } public function set selected(_arg1:Boolean):void{ if (_selected == _arg1){ return; }; _selected = _arg1; invalidate(InvalidationType.STATE); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function setupMouseEvents():void{ addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false, 0, true); } protected function drawLayout():void{ background.width = width; background.height = height; } protected function drawBackground():void{ var _local1:String; var _local2:DisplayObject; _local1 = (enabled) ? mouseState : "disabled"; if (selected){ _local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1)); }; _local1 = (_local1 + "Skin"); _local2 = background; background = getDisplayObjectInstance(getStyleValue(_local1)); addChildAt(background, 0); if (((!((_local2 == null))) && (!((_local2 == background))))){ removeChild(_local2); }; } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 2
//Button (fl.controls.Button) package fl.controls { import flash.display.*; import fl.core.*; import fl.managers.*; public class Button extends LabelButton implements IFocusManagerComponent { protected var emphasizedBorder:DisplayObject; protected var _emphasized:Boolean;// = false private static var defaultStyles:Object = {emphasizedSkin:"Button_emphasizedSkin", emphasizedPadding:2}; public static var createAccessibilityImplementation:Function; public function Button(){ _emphasized = false; super(); } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; var _local3:*; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("emphasizedPadding")); if ((((_local2 < 0)) || (!(_emphasized)))){ _local2 = 0; }; _local3 = getStyleValue("focusRectPadding"); _local3 = ((_local3)==null) ? 2 : _local3; _local3 = (_local3 + _local2); uiFocusRect.x = -(_local3); uiFocusRect.y = -(_local3); uiFocusRect.width = (width + (_local3 * 2)); uiFocusRect.height = (height + (_local3 * 2)); }; } public function set emphasized(_arg1:Boolean):void{ _emphasized = _arg1; invalidate(InvalidationType.STYLES); } override protected function draw():void{ if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){ drawEmphasized(); }; super.draw(); if (emphasizedBorder != null){ setChildIndex(emphasizedBorder, (numChildren - 1)); }; } public function get emphasized():Boolean{ return (_emphasized); } override protected function initializeAccessibility():void{ if (Button.createAccessibilityImplementation != null){ Button.createAccessibilityImplementation(this); }; } protected function drawEmphasized():void{ var _local1:Object; var _local2:Number; if (emphasizedBorder != null){ removeChild(emphasizedBorder); }; emphasizedBorder = null; if (!_emphasized){ return; }; _local1 = getStyleValue("emphasizedSkin"); if (_local1 != null){ emphasizedBorder = getDisplayObjectInstance(_local1); }; if (emphasizedBorder != null){ addChildAt(emphasizedBorder, 0); _local2 = Number(getStyleValue("emphasizedPadding")); emphasizedBorder.x = (emphasizedBorder.y = -(_local2)); emphasizedBorder.width = (width + (_local2 * 2)); emphasizedBorder.height = (height + (_local2 * 2)); }; } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles)); } } }//package fl.controls
Section 3
//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 4
//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 _labelPlacement:String;// = "right" protected var _toggle:Boolean;// = false protected var icon:DisplayObject; protected var oldMouseState:String; protected var mode:String;// = "center" public var textField:TextField; protected var _label:String;// = "Label" private static var defaultStyles:Object = {icon:null, upIcon:null, downIcon:null, overIcon:null, disabledIcon:null, selectedDisabledIcon:null, selectedUpIcon:null, selectedDownIcon:null, selectedOverIcon:null, textFormat:null, disabledTextFormat:null, textPadding:5, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function LabelButton(){ _labelPlacement = ButtonLabelPlacement.RIGHT; _toggle = false; _label = "Label"; mode = "center"; super(); } protected function toggleSelected(_arg1:MouseEvent):void{ selected = !(selected); dispatchEvent(new Event(Event.CHANGE, true)); } public function get labelPlacement():String{ return (_labelPlacement); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ if (oldMouseState == null){ oldMouseState = mouseState; }; setMouseState("down"); startPress(); }; } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ setMouseState(oldMouseState); oldMouseState = null; endPress(); dispatchEvent(new MouseEvent(MouseEvent.CLICK)); }; } override public function get selected():Boolean{ return ((_toggle) ? _selected : false); } public function set labelPlacement(_arg1:String):void{ _labelPlacement = _arg1; invalidate(InvalidationType.SIZE); } public function set toggle(_arg1:Boolean):void{ if (((!(_arg1)) && (super.selected))){ selected = false; }; _toggle = _arg1; if (_toggle){ addEventListener(MouseEvent.CLICK, toggleSelected, false, 0, true); } else { removeEventListener(MouseEvent.CLICK, toggleSelected); }; invalidate(InvalidationType.STATE); } public function get label():String{ return (_label); } override public function set selected(_arg1:Boolean):void{ _selected = _arg1; if (_toggle){ invalidate(InvalidationType.STATE); }; } override protected function draw():void{ if (textField.text != _label){ label = _label; }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); drawIcon(); drawTextFormat(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } public function get toggle():Boolean{ return (_toggle); } override protected function configUI():void{ super.configUI(); textField = new TextField(); textField.type = TextFieldType.DYNAMIC; textField.selectable = false; addChild(textField); } override protected function drawLayout():void{ var _local1:Number; var _local2:String; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local1 = Number(getStyleValue("textPadding")); _local2 = ((((icon == null)) && ((mode == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement; textField.height = (textField.textHeight + 4); _local3 = (textField.textWidth + 4); _local4 = (textField.textHeight + 4); _local5 = ((icon)==null) ? 0 : (icon.width + _local1); _local6 = ((icon)==null) ? 0 : (icon.height + _local1); textField.visible = (label.length > 0); if (icon != null){ icon.x = Math.round(((width - icon.width) / 2)); icon.y = Math.round(((height - icon.height) / 2)); }; if (textField.visible == false){ textField.width = 0; textField.height = 0; } else { if ((((_local2 == ButtonLabelPlacement.BOTTOM)) || ((_local2 == ButtonLabelPlacement.TOP)))){ _local7 = Math.max(0, Math.min(_local3, (width - (2 * _local1)))); if ((height - 2) > _local4){ _local8 = _local4; } else { _local8 = (height - 2); }; _local3 = _local7; textField.width = _local3; _local4 = _local8; textField.height = _local4; textField.x = Math.round(((width - _local3) / 2)); textField.y = Math.round(((((height - textField.height) - _local6) / 2) + ((_local2)==ButtonLabelPlacement.BOTTOM) ? _local6 : 0)); if (icon != null){ icon.y = Math.round(((_local2)==ButtonLabelPlacement.BOTTOM) ? (textField.y - _local6) : ((textField.y + textField.height) + _local1)); }; } else { _local7 = Math.max(0, Math.min(_local3, ((width - _local5) - (2 * _local1)))); _local3 = _local7; textField.width = _local3; textField.x = Math.round(((((width - _local3) - _local5) / 2) + ((_local2)!=ButtonLabelPlacement.LEFT) ? _local5 : 0)); textField.y = Math.round(((height - textField.height) / 2)); if (icon != null){ icon.x = Math.round(((_local2)!=ButtonLabelPlacement.LEFT) ? (textField.x - _local5) : ((textField.x + _local3) + _local1)); }; }; }; super.drawLayout(); } override protected function initializeAccessibility():void{ if (LabelButton.createAccessibilityImplementation != null){ LabelButton.createAccessibilityImplementation(this); }; } protected function drawIcon():void{ var _local1:DisplayObject; var _local2:String; var _local3:Object; _local1 = icon; _local2 = (enabled) ? mouseState : "disabled"; if (selected){ _local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1)); }; _local2 = (_local2 + "Icon"); _local3 = getStyleValue(_local2); if (_local3 == null){ _local3 = getStyleValue("icon"); }; if (_local3 != null){ icon = getDisplayObjectInstance(_local3); }; if (icon != null){ addChildAt(icon, 1); }; if (((!((_local1 == null))) && (!((_local1 == icon))))){ removeChild(_local1); }; } public function set label(_arg1:String):void{ _label = _arg1; if (textField.text != _label){ textField.text = _label; dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE)); }; invalidate(InvalidationType.SIZE); invalidate(InvalidationType.STYLES); } protected function drawTextFormat():void{ var _local1:Object; var _local2:TextFormat; var _local3:TextFormat; _local1 = UIComponent.getStyleDefinition(); _local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); _local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition())); } } }//package fl.controls
Section 5
//RadioButton (fl.controls.RadioButton) package fl.controls { import flash.display.*; import flash.events.*; import fl.managers.*; import flash.ui.*; public class RadioButton extends LabelButton implements IFocusManagerGroup { protected var _value:Object; protected var defaultGroupName:String;// = "RadioButtonGroup" protected var _group:RadioButtonGroup; private static var defaultStyles:Object = {icon:null, upIcon:"RadioButton_upIcon", downIcon:"RadioButton_downIcon", overIcon:"RadioButton_overIcon", disabledIcon:"RadioButton_disabledIcon", selectedDisabledIcon:"RadioButton_selectedDisabledIcon", selectedUpIcon:"RadioButton_selectedUpIcon", selectedDownIcon:"RadioButton_selectedDownIcon", selectedOverIcon:"RadioButton_selectedOverIcon", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, embedFonts:null, textPadding:5}; public static var createAccessibilityImplementation:Function; public function RadioButton(){ defaultGroupName = "RadioButtonGroup"; super(); mode = "border"; groupName = defaultGroupName; } 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 * 2)); uiFocusRect.height = (background.height + (_local2 * 2)); }; } private function setThis():void{ var _local1:RadioButtonGroup; _local1 = _group; if (_local1 != null){ if (_local1.selection != this){ _local1.selection = this; }; } else { super.selected = true; }; } override public function get autoRepeat():Boolean{ return (false); } override public function set autoRepeat(_arg1:Boolean):void{ } protected function handleClick(_arg1:MouseEvent):void{ if (_group == null){ return; }; _group.dispatchEvent(new MouseEvent(MouseEvent.CLICK, true)); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ switch (_arg1.keyCode){ case Keyboard.DOWN: setNext(!(_arg1.ctrlKey)); _arg1.stopPropagation(); break; case Keyboard.UP: setPrev(!(_arg1.ctrlKey)); _arg1.stopPropagation(); break; case Keyboard.LEFT: setPrev(!(_arg1.ctrlKey)); _arg1.stopPropagation(); break; case Keyboard.RIGHT: setNext(!(_arg1.ctrlKey)); _arg1.stopPropagation(); break; case Keyboard.SPACE: setThis(); _toggle = false; default: super.keyDownHandler(_arg1); break; }; } private function setNext(_arg1:Boolean=true):void{ var _local2:RadioButtonGroup; var _local3:IFocusManager; var _local4:int; var _local5:Number; var _local6:int; var _local7:*; _local2 = _group; if (_local2 == null){ return; }; _local3 = focusManager; if (_local3){ _local3.showFocusIndicator = true; }; _local4 = _local2.getRadioButtonIndex(this); _local5 = _local2.numRadioButtons; _local6 = _local4; if (_local4 != -1){ do { _local6++; _local6 = ((_local6)>(_local2.numRadioButtons - 1)) ? 0 : _local6; _local7 = _local2.getRadioButtonAt(_local6); if (((_local7) && (_local7.enabled))){ if (_arg1){ _local2.selection = _local7; }; _local7.setFocus(); return; }; if (((_arg1) && (!((_local2.getRadioButtonAt(_local6) == _local2.selection))))){ _local2.selection = this; }; this.drawFocus(true); } while (_local6 != _local4); }; } public function get group():RadioButtonGroup{ return (_group); } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ super.keyUpHandler(_arg1); if ((((_arg1.keyCode == Keyboard.SPACE)) && (!(_toggle)))){ _toggle = true; }; } override public function get selected():Boolean{ return (super.selected); } override public function set toggle(_arg1:Boolean):void{ throw (new Error("Warning: You cannot change a RadioButtons toggle.")); } public function set value(_arg1:Object):void{ _value = _arg1; } public function set group(_arg1:RadioButtonGroup):void{ groupName = _arg1.name; } override public function set selected(_arg1:Boolean):void{ if ((((_arg1 == false)) || (selected))){ return; }; if (_group != null){ _group.selection = this; } else { super.selected = _arg1; }; } override protected function draw():void{ super.draw(); } override public function get toggle():Boolean{ return (true); } override protected function configUI():void{ var _local1:Shape; var _local2:Graphics; super.configUI(); super.toggle = true; _local1 = new Shape(); _local2 = _local1.graphics; _local2.beginFill(0, 0); _local2.drawRect(0, 0, 100, 100); _local2.endFill(); background = (_local1 as DisplayObject); addChildAt(background, 0); addEventListener(MouseEvent.CLICK, handleClick, false, 0, true); } public function set groupName(_arg1:String):void{ if (_group != null){ _group.removeRadioButton(this); _group.removeEventListener(Event.CHANGE, handleChange); }; _group = ((_arg1)==null) ? null : RadioButtonGroup.getGroup(_arg1); if (_group != null){ _group.addRadioButton(this); _group.addEventListener(Event.CHANGE, handleChange, false, 0, true); }; } public function get value():Object{ return (_value); } override protected function drawLayout():void{ var _local1:Number; super.drawLayout(); _local1 = 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)); } override protected function drawBackground():void{ } override protected function initializeAccessibility():void{ if (RadioButton.createAccessibilityImplementation != null){ RadioButton.createAccessibilityImplementation(this); }; } public function get groupName():String{ return (((_group)==null) ? null : _group.name); } private function setPrev(_arg1:Boolean=true):void{ var _local2:RadioButtonGroup; var _local3:IFocusManager; var _local4:int; var _local5:int; var _local6:*; _local2 = _group; if (_local2 == null){ return; }; _local3 = focusManager; if (_local3){ _local3.showFocusIndicator = true; }; _local4 = _local2.getRadioButtonIndex(this); _local5 = _local4; if (_local4 != -1){ do { --_local5; _local5 = ((_local5)==-1) ? (_local2.numRadioButtons - 1) : _local5; _local6 = _local2.getRadioButtonAt(_local5); if (((_local6) && (_local6.enabled))){ if (_arg1){ _local2.selection = _local6; }; _local6.setFocus(); return; }; if (((_arg1) && (!((_local2.getRadioButtonAt(_local5) == _local2.selection))))){ _local2.selection = this; }; this.drawFocus(true); } while (_local5 != _local4); }; } protected function handleChange(_arg1:Event):void{ super.selected = (_group.selection == this); dispatchEvent(new Event(Event.CHANGE, true)); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 6
//RadioButtonGroup (fl.controls.RadioButtonGroup) package fl.controls { import flash.events.*; public class RadioButtonGroup extends EventDispatcher { protected var _selection:RadioButton; protected var radioButtons:Array; protected var _name:String; private static var groups:Object; private static var groupCount:uint = 0; public function RadioButtonGroup(_arg1:String){ _name = _arg1; radioButtons = []; registerGroup(this); } public function getRadioButtonIndex(_arg1:RadioButton):int{ var _local2:int; var _local3:RadioButton; _local2 = 0; while (_local2 < radioButtons.length) { _local3 = (radioButtons[_local2] as RadioButton); if (_local3 == _arg1){ return (_local2); }; _local2++; }; return (-1); } public function get numRadioButtons():int{ return (radioButtons.length); } public function get name():String{ return (_name); } public function get selection():RadioButton{ return (_selection); } public function set selection(_arg1:RadioButton):void{ if ((((((_selection == _arg1)) || ((_arg1 == null)))) || ((getRadioButtonIndex(_arg1) == -1)))){ return; }; _selection = _arg1; dispatchEvent(new Event(Event.CHANGE, true)); } public function set selectedData(_arg1:Object):void{ var _local2:int; var _local3:RadioButton; _local2 = 0; while (_local2 < radioButtons.length) { _local3 = (radioButtons[_local2] as RadioButton); if (_local3.value == _arg1){ selection = _local3; return; }; _local2++; }; } public function removeRadioButton(_arg1:RadioButton):void{ var _local2:int; _local2 = getRadioButtonIndex(_arg1); if (_local2 != -1){ radioButtons.splice(_local2, 1); }; if (_selection == _arg1){ _selection = null; }; } public function addRadioButton(_arg1:RadioButton):void{ if (_arg1.groupName != name){ _arg1.groupName = name; return; }; radioButtons.push(_arg1); if (_arg1.selected){ selection = _arg1; }; } public function getRadioButtonAt(_arg1:int):RadioButton{ return (RadioButton(radioButtons[_arg1])); } public function get selectedData():Object{ var _local1:RadioButton; _local1 = _selection; return (((_local1)==null) ? null : _local1.value); } public static function getGroup(_arg1:String):RadioButtonGroup{ var _local2:RadioButtonGroup; if (groups == null){ groups = {}; }; _local2 = (groups[_arg1] as RadioButtonGroup); if (_local2 == null){ _local2 = new RadioButtonGroup(_arg1); if ((++groupCount % 20) == 0){ cleanUpGroups(); }; }; return (_local2); } private static function registerGroup(_arg1:RadioButtonGroup):void{ if (groups == null){ groups = {}; }; groups[_arg1.name] = _arg1; } private static function cleanUpGroups():void{ var _local1:String; var _local2:RadioButtonGroup; for (_local1 in groups) { _local2 = (groups[_local1] as RadioButtonGroup); if (_local2.radioButtons.length == 0){ delete groups[_local1]; }; }; } } }//package fl.controls
Section 7
//ComponentShim (fl.core.ComponentShim) package fl.core { import flash.display.*; public dynamic class ComponentShim extends MovieClip { } }//package fl.core
Section 8
//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 9
//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 _enabled:Boolean;// = true private var _mouseFocusEnabled:Boolean;// = true protected var startHeight:Number; protected var _height:Number; protected var _oldIMEMode:String;// = null protected var startWidth:Number; public var focusTarget:IFocusManagerComponent; protected var errorCaught:Boolean;// = false protected var uiFocusRect:DisplayObject; protected var _width:Number; public var version:String;// = "3.0.0.15" protected var isFocused:Boolean;// = false protected var callLaterMethods:Dictionary; private var _focusEnabled:Boolean;// = true private var tempText:TextField; protected var invalidateFlag:Boolean;// = false protected var _inspector:Boolean;// = false protected var sharedStyles:Object; protected var invalidHash:Object; protected var isLivePreview:Boolean;// = false protected var _imeMode:String;// = null protected var instanceStyles:Object; protected var _x:Number; protected var _y:Number; public static var inCallLaterPhase:Boolean = false; private static var defaultStyles:Object = {focusRectSkin:"focusRectSkin", focusRectPadding:2, textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), disabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultTextFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultDisabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)}; public static var createAccessibilityImplementation:Function; private static var focusManagers:Dictionary = new Dictionary(false); public function UIComponent(){ version = "3.0.0.15"; isLivePreview = false; invalidateFlag = false; _enabled = true; isFocused = false; _focusEnabled = true; _mouseFocusEnabled = true; _imeMode = null; _oldIMEMode = null; errorCaught = false; _inspector = false; super(); instanceStyles = {}; sharedStyles = {}; invalidHash = {}; callLaterMethods = new Dictionary(); StyleManager.registerInstance(this); configUI(); invalidate(InvalidationType.ALL); tabEnabled = (this is IFocusManagerComponent); focusRect = false; if (tabEnabled){ addEventListener(FocusEvent.FOCUS_IN, focusInHandler); addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler); addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); }; initializeFocusManager(); addEventListener(Event.ENTER_FRAME, hookAccessibility, false, 0, true); } public function drawFocus(_arg1:Boolean):void{ var _local2:Number; isFocused = _arg1; if (((!((uiFocusRect == null))) && (contains(uiFocusRect)))){ removeChild(uiFocusRect); uiFocusRect = null; }; if (_arg1){ uiFocusRect = (getDisplayObjectInstance(getStyleValue("focusRectSkin")) as Sprite); if (uiFocusRect == null){ return; }; _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.x = -(_local2); uiFocusRect.y = -(_local2); uiFocusRect.width = (width + (_local2 * 2)); uiFocusRect.height = (height + (_local2 * 2)); addChildAt(uiFocusRect, 0); }; } private function callLaterDispatcher(_arg1:Event):void{ var _local2:Dictionary; var _local3:Object; if (_arg1.type == Event.ADDED_TO_STAGE){ removeEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher); stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); return; }; _arg1.target.removeEventListener(Event.RENDER, callLaterDispatcher); if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); return; }; inCallLaterPhase = true; _local2 = callLaterMethods; for (_local3 in _local2) { _local3(); delete _local2[_local3]; }; inCallLaterPhase = false; } private function addedHandler(_arg1:Event):void{ removeEventListener("addedToStage", addedHandler); initializeFocusManager(); } protected function getStyleValue(_arg1:String):Object{ return (((instanceStyles[_arg1])==null) ? sharedStyles[_arg1] : instanceStyles[_arg1]); } protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((_arg1 == this)); } override public function get scaleX():Number{ return ((width / startWidth)); } override public function get scaleY():Number{ return ((height / startHeight)); } override public function set height(_arg1:Number):void{ if (_height == _arg1){ return; }; setSize(width, _arg1); } protected function keyDownHandler(_arg1:KeyboardEvent):void{ } protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (isOurFocus((_arg1.target as DisplayObject))){ _local2 = focusManager; if (((_local2) && (_local2.showFocusIndicator))){ drawFocus(true); isFocused = true; }; }; } public function setStyle(_arg1:String, _arg2:Object):void{ if ((((instanceStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; instanceStyles[_arg1] = _arg2; invalidate(InvalidationType.STYLES); } override public function get visible():Boolean{ return (super.visible); } public function get componentInspectorSetting():Boolean{ return (_inspector); } override public function get x():Number{ return ((isNaN(_x)) ? super.x : _x); } override public function get y():Number{ return ((isNaN(_y)) ? super.y : _y); } protected function setIMEMode(_arg1:Boolean){ var enabled = _arg1; if (_imeMode != null){ if (enabled){ IME.enabled = true; _oldIMEMode = IME.conversionMode; try { if (((!(errorCaught)) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _imeMode; }; errorCaught = false; } catch(e:Error) { errorCaught = true; throw (new Error(("IME mode not supported: " + _imeMode))); }; } else { if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!((_oldIMEMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _oldIMEMode; }; IME.enabled = false; }; }; } public function set enabled(_arg1:Boolean):void{ if (_arg1 == _enabled){ return; }; _enabled = _arg1; invalidate(InvalidationType.STATE); } public function setSharedStyle(_arg1:String, _arg2:Object):void{ if ((((sharedStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; sharedStyles[_arg1] = _arg2; if (instanceStyles[_arg1] == null){ invalidate(InvalidationType.STYLES); }; } protected function keyUpHandler(_arg1:KeyboardEvent):void{ } public function set focusEnabled(_arg1:Boolean):void{ _focusEnabled = _arg1; } override public function set scaleX(_arg1:Number):void{ setSize((startWidth * _arg1), height); } public function get mouseFocusEnabled():Boolean{ return (_mouseFocusEnabled); } override public function set scaleY(_arg1:Number):void{ setSize(width, (startHeight * _arg1)); } protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{ var classDef:Object; var skin = _arg1; classDef = null; if ((skin is Class)){ return ((new (skin) as DisplayObject)); }; if ((skin is DisplayObject)){ (skin as DisplayObject).x = 0; (skin as DisplayObject).y = 0; return ((skin as DisplayObject)); }; try { classDef = getDefinitionByName(skin.toString()); } catch(e:Error) { try { classDef = (loaderInfo.applicationDomain.getDefinition(skin.toString()) as Object); } catch(e:Error) { }; }; if (classDef == null){ return (null); }; return ((new (classDef) as DisplayObject)); } protected function copyStylesToChild(_arg1:UIComponent, _arg2:Object):void{ var _local3:String; for (_local3 in _arg2) { _arg1.setStyle(_local3, getStyleValue(_arg2[_local3])); }; } protected function beforeComponentParameters():void{ } protected function callLater(_arg1:Function):void{ if (inCallLaterPhase){ return; }; callLaterMethods[_arg1] = true; if (stage != null){ stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); } else { addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); }; } protected function createFocusManager():void{ if (focusManagers[stage] == null){ focusManagers[stage] = new FocusManager(stage); }; } override public function set visible(_arg1:Boolean):void{ var _local2:String; if (super.visible == _arg1){ return; }; super.visible = _arg1; _local2 = (_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE; dispatchEvent(new ComponentEvent(_local2, true)); } protected function hookAccessibility(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, hookAccessibility); initializeAccessibility(); } public function set componentInspectorSetting(_arg1:Boolean):void{ _inspector = _arg1; if (_inspector){ beforeComponentParameters(); } else { afterComponentParameters(); }; } override public function set x(_arg1:Number):void{ move(_arg1, _y); } public function drawNow():void{ draw(); } override public function set y(_arg1:Number):void{ move(_x, _arg1); } protected function checkLivePreview():Boolean{ var className:String; if (parent == null){ return (false); }; try { className = getQualifiedClassName(parent); } catch(e:Error) { }; return ((className == "fl.livepreview::LivePreviewParent")); } protected function focusOutHandler(_arg1:FocusEvent):void{ if (isOurFocus((_arg1.target as DisplayObject))){ drawFocus(false); isFocused = false; }; } public function set mouseFocusEnabled(_arg1:Boolean):void{ _mouseFocusEnabled = _arg1; } public function getFocus():InteractiveObject{ if (stage){ return (stage.focus); }; return (null); } protected function validate():void{ invalidHash = {}; } override public function get height():Number{ return (_height); } public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{ invalidHash[_arg1] = true; if (_arg2){ this.callLater(draw); }; } public function get enabled():Boolean{ return (_enabled); } protected function getScaleX():Number{ return (super.scaleX); } protected function getScaleY():Number{ return (super.scaleY); } public function get focusEnabled():Boolean{ return (_focusEnabled); } protected function afterComponentParameters():void{ } protected function draw():void{ if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } protected function configUI():void{ var _local1:Number; var _local2:Number; var _local3:Number; isLivePreview = checkLivePreview(); _local1 = rotation; rotation = 0; _local2 = super.width; _local3 = super.height; var _local4 = 1; super.scaleY = _local4; super.scaleX = _local4; setSize(_local2, _local3); move(super.x, super.y); rotation = _local1; startWidth = _local2; startHeight = _local3; if (numChildren > 0){ removeChildAt(0); }; } protected function setScaleX(_arg1:Number):void{ super.scaleX = _arg1; } protected function setScaleY(_arg1:Number):void{ super.scaleY = _arg1; } private function initializeFocusManager():void{ if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, addedHandler, false, 0, true); } else { createFocusManager(); }; } public function set focusManager(_arg1:IFocusManager):void{ UIComponent.focusManagers[this] = _arg1; } public function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } protected function isInvalid(_arg1:String, ... _args):Boolean{ if (((invalidHash[_arg1]) || (invalidHash[InvalidationType.ALL]))){ return (true); }; while (_args.length > 0) { if (invalidHash[_args.pop()]){ return (true); }; }; return (false); } public function setSize(_arg1:Number, _arg2:Number):void{ _width = _arg1; _height = _arg2; invalidate(InvalidationType.SIZE); dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false)); } override public function set width(_arg1:Number):void{ if (_width == _arg1){ return; }; setSize(_arg1, height); } public function setFocus():void{ if (stage){ stage.focus = this; }; } protected function initializeAccessibility():void{ if (UIComponent.createAccessibilityImplementation != null){ UIComponent.createAccessibilityImplementation(this); }; } public function get focusManager():IFocusManager{ var _local1:DisplayObject; _local1 = this; while (_local1) { if (UIComponent.focusManagers[_local1] != null){ return (IFocusManager(UIComponent.focusManagers[_local1])); }; _local1 = _local1.parent; }; return (null); } override public function get width():Number{ return (_width); } public function move(_arg1:Number, _arg2:Number):void{ _x = _arg1; _y = _arg2; super.x = Math.round(_arg1); super.y = Math.round(_arg2); dispatchEvent(new ComponentEvent(ComponentEvent.MOVE)); } public function validateNow():void{ invalidate(InvalidationType.ALL, false); draw(); } public function getStyle(_arg1:String):Object{ return (instanceStyles[_arg1]); } public static function getStyleDefinition():Object{ return (defaultStyles); } public static function mergeStyles(... _args):Object{ var _local2:Object; var _local3:uint; var _local4:uint; var _local5:Object; var _local6:String; _local2 = {}; _local3 = _args.length; _local4 = 0; while (_local4 < _local3) { _local5 = _args[_local4]; for (_local6 in _local5) { if (_local2[_local6] != null){ } else { _local2[_local6] = _args[_local4][_local6]; }; }; _local4++; }; return (_local2); } } }//package fl.core
Section 10
//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 11
//FocusManager (fl.managers.FocusManager) package fl.managers { import fl.controls.*; import flash.display.*; import fl.core.*; import flash.events.*; import flash.text.*; import flash.utils.*; import flash.ui.*; public class FocusManager implements IFocusManager { private var focusableObjects:Dictionary; private var _showFocusIndicator:Boolean;// = true private var defButton:Button; private var focusableCandidates:Array; private var _form:DisplayObjectContainer; private var _defaultButtonEnabled:Boolean;// = true private var activated:Boolean;// = false private var _defaultButton:Button; private var calculateCandidates:Boolean;// = true private var lastFocus:InteractiveObject; private var lastAction:String; public function FocusManager(_arg1:DisplayObjectContainer){ activated = false; calculateCandidates = true; _showFocusIndicator = true; _defaultButtonEnabled = true; super(); focusableObjects = new Dictionary(true); if (_arg1 != null){ _form = _arg1; addFocusables(DisplayObject(_arg1)); _arg1.addEventListener(Event.ADDED, addedHandler); _arg1.addEventListener(Event.REMOVED, removedHandler); activate(); }; } public function get showFocusIndicator():Boolean{ return (_showFocusIndicator); } private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{ var _local5:int; var _local6:int; var _local7:DisplayObject; var _local8:IFocusManagerGroup; var _local9:int; var _local10:DisplayObject; var _local11:IFocusManagerGroup; _local5 = focusableCandidates.length; _local6 = _arg1; while (true) { if (_arg2){ _arg1--; } else { _arg1++; }; if (_arg3){ if (((_arg2) && ((_arg1 < 0)))){ break; }; if (((!(_arg2)) && ((_arg1 == _local5)))){ break; }; } else { _arg1 = ((_arg1 + _local5) % _local5); if (_local6 == _arg1){ break; }; }; if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){ _local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1])); if ((_local7 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local7); _local9 = 0; while (_local9 < focusableCandidates.length) { _local10 = focusableCandidates[_local9]; if ((_local10 is IFocusManagerGroup)){ _local11 = IFocusManagerGroup(_local10); if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){ _arg1 = _local9; break; }; }; _local9++; }; }; return (_arg1); }; }; return (_arg1); } public function set form(_arg1:DisplayObjectContainer):void{ _form = _arg1; } private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{ var focusable:IFocusManagerComponent; var io:InteractiveObject; var doc:DisplayObjectContainer; var i:int; var child:DisplayObject; var o = _arg1; var skipTopLevel = _arg2; if (!skipTopLevel){ if ((o is IFocusManagerComponent)){ focusable = IFocusManagerComponent(o); if (focusable.focusEnabled){ if (((focusable.tabEnabled) && (isTabVisible(o)))){ focusableObjects[o] = true; calculateCandidates = true; }; o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; } else { if ((o is InteractiveObject)){ io = (o as InteractiveObject); if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){ focusableObjects[io] = true; calculateCandidates = true; }; io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; }; }; if ((o is DisplayObjectContainer)){ doc = DisplayObjectContainer(o); o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){ i = 0; while (i < doc.numChildren) { try { child = doc.getChildAt(i); if (child != null){ addFocusables(doc.getChildAt(i)); }; } catch(error:SecurityError) { }; i = (i + 1); }; }; }; } private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{ return (_arg1.getChildIndex(_arg2)); } private function mouseFocusChangeHandler(_arg1:FocusEvent):void{ if ((_arg1.relatedObject is TextField)){ return; }; _arg1.preventDefault(); } private function focusOutHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; _local2 = (_arg1.target as InteractiveObject); } private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{ var _local3:IFocusManagerGroup; if (!isEnabledAndVisible(_arg1)){ return (false); }; if ((_arg1 is IFocusManagerGroup)){ _local3 = IFocusManagerGroup(_arg1); if (_arg2 == _local3.groupName){ return (false); }; }; return (true); } public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{ var _local2:InteractiveObject; _local2 = _arg1; while (_arg1) { if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){ return (_arg1); }; _arg1 = _arg1.parent; }; return (_local2); } private function sortFocusableObjectsTabIndex():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){ focusableCandidates.push(_local2); }; }; focusableCandidates.sort(sortByTabIndex); } private function removeFocusables(_arg1:DisplayObject):void{ var _local2:Object; var _local3:DisplayObject; if ((_arg1 is DisplayObjectContainer)){ _arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); _arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); for (_local2 in focusableObjects) { _local3 = DisplayObject(_local2); if (DisplayObjectContainer(_arg1).contains(_local3)){ if (_local3 == lastFocus){ lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local2]; calculateCandidates = true; }; }; }; } private function addedHandler(_arg1:Event):void{ var _local2:DisplayObject; _local2 = DisplayObject(_arg1.target); if (_local2.stage){ addFocusables(DisplayObject(_arg1.target)); }; } private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{ while (_arg1 != InteractiveObject(form)) { if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){ return (_arg1); }; _arg1 = _arg1.parent; if (_arg1 == null){ break; }; }; return (null); } private function tabChildrenChangeHandler(_arg1:Event):void{ var _local2:DisplayObjectContainer; if (_arg1.target != _arg1.currentTarget){ return; }; calculateCandidates = true; _local2 = DisplayObjectContainer(_arg1.target); if (_local2.tabChildren){ addFocusables(_local2, true); } else { removeFocusables(_local2); }; } public function sendDefaultButtonEvent():void{ defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); } public function getFocus():InteractiveObject{ var _local1:InteractiveObject; _local1 = form.stage.focus; return (findFocusManagerComponent(_local1)); } private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; var _local3:TextField; var _local4:SimpleButton; _local2 = DisplayObject(form).parent; while (_arg1 != _local2) { if ((_arg1 is UIComponent)){ if (!UIComponent(_arg1).enabled){ return (false); }; } else { if ((_arg1 is TextField)){ _local3 = TextField(_arg1); if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){ return (false); }; } else { if ((_arg1 is SimpleButton)){ _local4 = SimpleButton(_arg1); if (!_local4.enabled){ return (false); }; }; }; }; if (!_arg1.visible){ return (false); }; _arg1 = _arg1.parent; }; return (true); } public function set defaultButton(_arg1:Button):void{ var _local2:Button; _local2 = (_arg1) ? Button(_arg1) : null; if (_local2 != _defaultButton){ if (_defaultButton){ _defaultButton.emphasized = false; }; if (defButton){ defButton.emphasized = false; }; _defaultButton = _local2; defButton = _local2; if (_local2){ _local2.emphasized = true; }; }; } private function deactivateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); } public function setFocus(_arg1:InteractiveObject):void{ if ((_arg1 is IFocusManagerComponent)){ IFocusManagerComponent(_arg1).setFocus(); } else { form.stage.focus = _arg1; }; } private function setFocusToNextObject(_arg1:FocusEvent):void{ var _local2:InteractiveObject; if (!hasFocusableObjects()){ return; }; _local2 = getNextFocusManagerComponent(_arg1.shiftKey); if (_local2){ setFocus(_local2); }; } private function hasFocusableObjects():Boolean{ var _local1:Object; for (_local1 in focusableObjects) { return (true); }; return (false); } private function tabIndexChangeHandler(_arg1:Event):void{ calculateCandidates = true; } private function sortFocusableObjects():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){ sortFocusableObjectsTabIndex(); return; }; focusableCandidates.push(_local2); }; focusableCandidates.sort(sortByDepth); } private function keyFocusChangeHandler(_arg1:FocusEvent):void{ showFocusIndicator = true; if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){ setFocusToNextObject(_arg1); _arg1.preventDefault(); }; } private function getIndexOfFocusedObject(_arg1:DisplayObject):int{ var _local2:int; var _local3:int; _local2 = focusableCandidates.length; _local3 = 0; _local3 = 0; while (_local3 < _local2) { if (focusableCandidates[_local3] == _arg1){ return (_local3); }; _local3++; }; return (-1); } public function hideFocus():void{ } private function removedHandler(_arg1:Event):void{ var _local2:int; var _local3:DisplayObject; var _local4:InteractiveObject; _local3 = DisplayObject(_arg1.target); if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){ if (_local3 == lastFocus){ IFocusManagerComponent(lastFocus).drawFocus(false); lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local3]; calculateCandidates = true; } else { if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){ _local4 = (_local3 as InteractiveObject); if (_local4){ if (_local4 == lastFocus){ lastFocus = null; }; delete focusableObjects[_local4]; calculateCandidates = true; }; _local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); }; }; removeFocusables(_local3); } private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{ var _local3:String; var _local4:String; var _local5:int; var _local6:String; var _local7:String; var _local8:String; var _local9:DisplayObject; var _local10:DisplayObject; _local3 = ""; _local4 = ""; _local8 = "0000"; _local9 = DisplayObject(_arg1); _local10 = DisplayObject(_arg2); while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) { _local5 = getChildIndex(_local9.parent, _local9); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local3 = (_local7 + _local3); _local9 = _local9.parent; }; while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) { _local5 = getChildIndex(_local10.parent, _local10); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local4 = (_local7 + _local4); _local10 = _local10.parent; }; return (((_local3 > _local4)) ? 1 : ((_local3 < _local4)) ? -1 : 0); } public function get defaultButton():Button{ return (_defaultButton); } private function activateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); if (lastFocus){ if ((lastFocus is IFocusManagerComponent)){ IFocusManagerComponent(lastFocus).setFocus(); } else { form.stage.focus = lastFocus; }; }; lastAction = "ACTIVATE"; } public function showFocus():void{ } public function set defaultButtonEnabled(_arg1:Boolean):void{ _defaultButtonEnabled = _arg1; } public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{ var _local2:DisplayObject; var _local3:String; var _local4:int; var _local5:Boolean; var _local6:int; var _local7:int; var _local8:IFocusManagerGroup; if (!hasFocusableObjects()){ return (null); }; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; _local2 = form.stage.focus; _local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2))); _local3 = ""; if ((_local2 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local2); _local3 = _local8.groupName; }; _local4 = getIndexOfFocusedObject(_local2); _local5 = false; _local6 = _local4; if (_local4 == -1){ if (_arg1){ _local4 = focusableCandidates.length; }; _local5 = true; }; _local7 = getIndexOfNextObject(_local4, _arg1, _local5, _local3); return (findFocusManagerComponent(focusableCandidates[_local7])); } private function mouseDownHandler(_arg1:MouseEvent):void{ var _local2:InteractiveObject; if (_arg1.isDefaultPrevented()){ return; }; _local2 = getTopLevelFocusTarget(InteractiveObject(_arg1.target)); if (!_local2){ return; }; showFocusIndicator = false; if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){ setFocus(_local2); }; lastAction = "MOUSEDOWN"; } private function isTabVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; _local2 = _arg1.parent; while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) { if (!_local2.tabChildren){ return (false); }; _local2 = _local2.parent; }; return (true); } public function get nextTabIndex():int{ return (0); } private function keyDownHandler(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.TAB){ lastAction = "KEY"; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; }; if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){ sendDefaultButtonEvent(); }; } private function focusInHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; var _local3:Button; _local2 = InteractiveObject(_arg1.target); if (form.contains(_local2)){ lastFocus = findFocusManagerComponent(InteractiveObject(_local2)); if ((lastFocus is Button)){ _local3 = Button(lastFocus); if (defButton){ defButton.emphasized = false; defButton = _local3; _local3.emphasized = true; }; } else { if (((defButton) && (!((defButton == _defaultButton))))){ defButton.emphasized = false; defButton = _defaultButton; _defaultButton.emphasized = true; }; }; }; } private function tabEnabledChangeHandler(_arg1:Event):void{ var _local2:InteractiveObject; var _local3:Boolean; calculateCandidates = true; _local2 = InteractiveObject(_arg1.target); _local3 = (focusableObjects[_local2] == true); if (_local2.tabEnabled){ if (((!(_local3)) && (isTabVisible(_local2)))){ if (!(_local2 is IFocusManagerComponent)){ _local2.focusRect = false; }; focusableObjects[_local2] = true; }; } else { if (_local3){ delete focusableObjects[_local2]; }; }; } public function set showFocusIndicator(_arg1:Boolean):void{ _showFocusIndicator = _arg1; } public function get form():DisplayObjectContainer{ return (_form); } private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{ return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2)); } public function activate():void{ if (activated){ return; }; form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true); form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true); form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true); form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true); form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = true; if (lastFocus){ setFocus(lastFocus); }; } public function deactivate():void{ form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler); form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler); form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.removeEventListener(Event.ACTIVATE, activateHandler); form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler); form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = false; } public function get defaultButtonEnabled():Boolean{ return (_defaultButtonEnabled); } } }//package fl.managers
Section 12
//IFocusManager (fl.managers.IFocusManager) package fl.managers { import fl.controls.*; import flash.display.*; public interface IFocusManager { function getFocus():InteractiveObject; function deactivate():void; function set defaultButton(_arg1:Button):void; function set showFocusIndicator(_arg1:Boolean):void; function get defaultButtonEnabled():Boolean; function get nextTabIndex():int; function get defaultButton():Button; function get showFocusIndicator():Boolean; function setFocus(_arg1:InteractiveObject):void; function activate():void; function showFocus():void; function set defaultButtonEnabled(_arg1:Boolean):void; function hideFocus():void; function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject; function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject; } }//package fl.managers
Section 13
//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 14
//IFocusManagerGroup (fl.managers.IFocusManagerGroup) package fl.managers { public interface IFocusManagerGroup { function set groupName(_arg1:String):void; function set selected(_arg1:Boolean):void; function get groupName():String; function get selected():Boolean; } }//package fl.managers
Section 15
//StyleManager (fl.managers.StyleManager) package fl.managers { import fl.core.*; import flash.text.*; import flash.utils.*; public class StyleManager { private var globalStyles:Object; private var classToDefaultStylesDict:Dictionary; private var styleToClassesHash:Object; private var classToStylesDict:Dictionary; private var classToInstancesDict:Dictionary; private static var _instance:StyleManager; public function StyleManager(){ styleToClassesHash = {}; classToInstancesDict = new Dictionary(true); classToStylesDict = new Dictionary(true); classToDefaultStylesDict = new Dictionary(true); globalStyles = UIComponent.getStyleDefinition(); } public static function clearComponentStyle(_arg1:Object, _arg2:String):void{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){ delete _local4[_arg2]; invalidateComponentStyle(_local3, _arg2); }; } private static function getClassDef(_arg1:Object):Class{ var component = _arg1; if ((component is Class)){ return ((component as Class)); }; try { return ((getDefinitionByName(getQualifiedClassName(component)) as Class)); } catch(e:Error) { if ((component is UIComponent)){ try { return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class)); } catch(e:Error) { }; }; }; return (null); } public static function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Class; var _local5:Object; _local4 = getClassDef(_arg1); _local5 = getInstance().classToStylesDict[_local4]; if (_local5 == null){ _local5 = (getInstance().classToStylesDict[_local4] = {}); }; if (_local5 == _arg3){ return; }; _local5[_arg2] = _arg3; invalidateComponentStyle(_local4, _arg2); } private static function setSharedStyles(_arg1:UIComponent):void{ var _local2:StyleManager; var _local3:Class; var _local4:Object; var _local5:String; _local2 = getInstance(); _local3 = getClassDef(_arg1); _local4 = _local2.classToDefaultStylesDict[_local3]; for (_local5 in _local4) { _arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5)); }; } public static function getComponentStyle(_arg1:Object, _arg2:String):Object{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; return (((_local4)==null) ? null : _local4[_arg2]); } private static function getInstance(){ if (_instance == null){ _instance = new (StyleManager); }; return (_instance); } private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{ var _local3:Dictionary; var _local4:Object; var _local5:UIComponent; _local3 = getInstance().classToInstancesDict[_arg1]; if (_local3 == null){ return; }; for (_local4 in _local3) { _local5 = (_local4 as UIComponent); if (_local5 == null){ } else { _local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2)); }; }; } private static function invalidateStyle(_arg1:String):void{ var _local2:Dictionary; var _local3:Object; _local2 = getInstance().styleToClassesHash[_arg1]; if (_local2 == null){ return; }; for (_local3 in _local2) { invalidateComponentStyle(Class(_local3), _arg1); }; } public static function registerInstance(_arg1:UIComponent):void{ var inst:StyleManager; var classDef:Class; var target:Class; var defaultStyles:Object; var styleToClasses:Object; var n:String; var instance = _arg1; inst = getInstance(); classDef = getClassDef(instance); if (classDef == null){ return; }; if (inst.classToInstancesDict[classDef] == null){ inst.classToInstancesDict[classDef] = new Dictionary(true); target = classDef; while (defaultStyles == null) { if (target["getStyleDefinition"] != null){ defaultStyles = target["getStyleDefinition"](); break; }; try { target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class); } catch(err:Error) { try { target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class); } catch(e:Error) { defaultStyles = UIComponent.getStyleDefinition(); break; }; }; }; styleToClasses = inst.styleToClassesHash; for (n in defaultStyles) { if (styleToClasses[n] == null){ styleToClasses[n] = new Dictionary(true); }; styleToClasses[n][classDef] = true; }; inst.classToDefaultStylesDict[classDef] = defaultStyles; inst.classToStylesDict[classDef] = {}; }; inst.classToInstancesDict[classDef][instance] = true; setSharedStyles(instance); } public static function getStyle(_arg1:String):Object{ return (getInstance().globalStyles[_arg1]); } private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{ var _local3:Class; var _local4:StyleManager; var _local5:Object; _local3 = getClassDef(_arg1); _local4 = getInstance(); _local5 = _local4.classToStylesDict[_local3][_arg2]; if (_local5 != null){ return (_local5); }; _local5 = _local4.globalStyles[_arg2]; if (_local5 != null){ return (_local5); }; return (_local4.classToDefaultStylesDict[_local3][_arg2]); } public static function setStyle(_arg1:String, _arg2:Object):void{ var _local3:Object; _local3 = getInstance().globalStyles; if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; _local3[_arg1] = _arg2; invalidateStyle(_arg1); } } }//package fl.managers
Section 16
//MochiScores (mochi.MochiScores) package mochi { import flash.display.*; import flash.text.*; public class MochiScores { private static var boardID:String; public static var onErrorHandler:Object; public static var onCloseHandler:Object; public function MochiScores(){ super(); } public static function showLeaderboard(options:Object=null):void{ var options = options; if (options != null){ if (options.clip != null){ if ((options.clip is Sprite)){ MochiServices.setContainer(options.clip); }; delete options.clip; } else { MochiServices.setContainer(); }; MochiServices.stayOnTop(); if (options.name != null){ if ((options.name is TextField)){ if (options.name.text.length > 0){ options.name = options.name.text; }; }; }; if (options.score != null){ if ((options.score is TextField)){ if (options.score.text.length > 0){ options.score = options.score.text; }; }; }; if (options.onDisplay != null){ options.onDisplay(); } else { if (MochiServices.clip != null){ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; }; } else { options = {}; if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; if (options.onClose != null){ onCloseHandler = options.onClose; } else { onCloseHandler = function ():void{ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.play(); } else { trace("Warning: Container is not a MovieClip, cannot call default onClose."); }; }; }; if (options.onError != null){ onErrorHandler = options.onError; } else { onErrorHandler = null; }; if (options.boardID == null){ if (MochiScores.boardID != null){ options.boardID = MochiScores.boardID; }; }; MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose); } public static function closeLeaderboard():void{ MochiServices.send("scores_closeLeaderboard"); } public static function getPlayerInfo(callbackObj:Object, callbackMethod:Object=null):void{ MochiServices.send("scores_getPlayerInfo", null, callbackObj, callbackMethod); } public static function requestList(callbackObj:Object, callbackMethod:Object=null):void{ MochiServices.send("scores_requestList", null, callbackObj, callbackMethod); } public static function scoresArrayToObjects(scores:Object):Object{ var so:Object; var i:Number; var j:Number; var o:Object; var row_obj:Object; var item:String; var param:String; so = {}; for (item in scores) { if (typeof(scores[item]) == "object"){ if (((!((scores[item].cols == null))) && (!((scores[item].rows == null))))){ so[item] = []; o = scores[item]; j = 0; while (j < o.rows.length) { row_obj = {}; i = 0; while (i < o.cols.length) { row_obj[o.cols[i]] = o.rows[j][i]; i++; }; so[item].push(row_obj); j++; }; } else { so[item] = {}; for (param in scores[item]) { so[item][param] = scores[item][param]; }; }; } else { so[item] = scores[item]; }; }; return (so); } public static function submit(score:Number, name:String, callbackObj:Object=null, callbackMethod:Object=null):void{ MochiServices.send("scores_submit", {score:score, name:name}, callbackObj, callbackMethod); } public static function onClose(args:Object=null):void{ if (args != null){ if (args.error != null){ if (args.error == true){ if (onErrorHandler != null){ if (args.errorCode == null){ args.errorCode = "IOError"; }; onErrorHandler(args.errorCode); MochiServices.doClose(); return; }; }; }; }; onCloseHandler(); MochiServices.doClose(); } public static function setBoardID(boardID:String):void{ MochiScores.boardID = boardID; MochiServices.send("scores_setBoardID", {boardID:boardID}); } } }//package mochi
Section 17
//MochiServices (mochi.MochiServices) package mochi { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class MochiServices { private static var _container:Object; private static var _connected:Boolean = false; private static var _swfVersion:String; private static var _sendChannel:LocalConnection; private static var _rcvChannelName:String; private static var _gatewayURL:String = "http://www.mochiads.com/static/lib/services/services.swf"; private static var _clip:MovieClip; private static var _loader:Loader; private static var _id:String; private static var _listenChannel:LocalConnection; private static var _timer:Timer; private static var _sendChannelName:String; private static var _startTime:Number; private static var _connecting:Boolean = false; public static var onError:Object; private static var _listenChannelName:String = "__mochiservices"; private static var _rcvChannel:LocalConnection; public function MochiServices(){ super(); } public static function isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function send(methodName:String, args:Object=null, callbackObject:Object=null, callbackMethod:Object=null):void{ if (_connected){ _sendChannel.send(_sendChannelName, "onReceive", {methodName:methodName, args:args, callbackID:_clip._nextcallbackID}); } else { if ((((_clip == null)) || (!(_connecting)))){ onError("NotConnected"); handleError(args, callbackObject, callbackMethod); flush(true); return; }; _clip._queue.push({methodName:methodName, args:args, callbackID:_clip._nextcallbackID}); }; if (_clip != null){ if (((!((_clip._callbacks == null))) && (!((_clip._nextcallbackID == null))))){ _clip._callbacks[_clip._nextcallbackID] = {callbackObject:callbackObject, callbackMethod:callbackMethod}; _clip._nextcallbackID++; }; }; } public static function get connected():Boolean{ return (_connected); } private static function flush(error:Boolean):void{ var request:Object; var callback:Object; if (_clip != null){ if (_clip._queue != null){ while (_clip._queue.length > 0) { request = _clip._queue.shift(); callback = null; if (request != null){ if (request.callbackID != null){ callback = _clip._callbacks[request.callbackID]; }; delete _clip._callbacks[request.callbackID]; if (((error) && (!((callback == null))))){ handleError(request.args, callback.callbackObject, callback.callbackMethod); }; }; }; }; }; } private static function init(id:String, clip:Object):void{ _id = id; if (clip != null){ _container = clip; loadCommunicator(id, _container); }; } public static function get childClip():Object{ return (_clip); } public static function get id():String{ return (_id); } public static function stayOnTop():void{ _container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true); if (_clip != null){ _clip.visible = true; }; } public static function getVersion():String{ return ("1.2"); } public static function disconnect():void{ if (((_connected) || (_connecting))){ if (_clip != null){ if (_clip.parent != null){ if ((_clip.parent is Sprite)){ Sprite(_clip.parent).removeChild(_clip); _clip = null; }; }; }; _connecting = (_connected = false); flush(true); _listenChannel.close(); _rcvChannel.close(); //unresolved jump var _slot1 = error; }; if (_timer != null){ _timer.stop(); //unresolved jump var _slot1 = error; }; } public static function allowDomains(server:String):String{ var hostname:String; Security.allowDomain("*"); Security.allowInsecureDomain("*"); if (server.indexOf("http://") != -1){ hostname = server.split("/")[2].split(":")[0]; Security.allowDomain(hostname); Security.allowInsecureDomain(hostname); }; return (hostname); } public static function doClose():void{ _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); if (_clip.parent != null){ Sprite(_clip.parent).removeChild(_clip); }; } public static function setContainer(container:Object=null, doAdd:Boolean=true):void{ if (container != null){ if ((container is Sprite)){ _container = container; }; }; if (doAdd){ if ((_container is Sprite)){ Sprite(_container).addChild(_clip); }; }; } private static function onStatus(event:StatusEvent):void{ switch (event.level){ case "error": _connected = false; _listenChannel.connect(_listenChannelName); break; }; } private static function initComChannels():void{ if (!_connected){ _sendChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus); _sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"}); _sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", id:_id, clip:_container, version:getVersion()}); _rcvChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus); _clip.onReceive = function (pkg:Object):void{ var cb:String; var cblst:Object; var method:*; var obj:Object; var pkg = pkg; cb = pkg.callbackID; cblst = this.client._callbacks[cb]; if (!cblst){ return; }; method = cblst.callbackMethod; obj = cblst.callbackObject; if (((obj) && ((typeof(method) == "string")))){ if (obj[method] != null){ method = obj[method]; } else { trace((("Error: Method " + method) + " does not exist.")); }; }; if (method != undefined){ method.apply(obj, pkg.args); //unresolved jump var _slot1 = error; trace("Unable to invoke callback method."); } else { if (obj != null){ obj(pkg.args); //unresolved jump var _slot1 = error; trace("Unable to invoke callback method on object."); }; }; delete this.client._callbacks[cb]; }; _clip.onError = function ():void{ MochiServices.onError("IOError"); }; _rcvChannel.connect(_rcvChannelName); trace("connected!"); _connecting = false; _connected = true; _listenChannel.close(); while (_clip._queue.length > 0) { _sendChannel.send(_sendChannelName, "onReceive", _clip._queue.shift()); }; }; } private static function listen():void{ _listenChannel = new LocalConnection(); _listenChannel.client = _clip; _clip.handshake = function (args:Object):void{ MochiServices.comChannelName = args.newChannel; }; _listenChannel.allowDomain("*", "localhost"); _listenChannel.allowInsecureDomain("*", "localhost"); _listenChannel.connect(_listenChannelName); trace("Waiting for MochiAds services to connect..."); } private static function handleError(args:Object, callbackObject:Object, callbackMethod:Object):void{ var args = args; var callbackObject = callbackObject; var callbackMethod = callbackMethod; if (args != null){ if (args.onError != null){ args.onError.apply(null, ["NotConnected"]); }; }; if (callbackMethod != null){ args = {}; args.error = true; args.errorCode = "NotConnected"; if (((!((callbackObject == null))) && ((callbackMethod is String)))){ var _local5 = callbackObject; _local5[callbackMethod](args); //unresolved jump var _slot1 = error; } else { if (callbackMethod != null){ callbackMethod.apply(args); //unresolved jump var _slot1 = error; }; }; }; } public static function get clip():Object{ return (_container); } public static function set comChannelName(val:String):void{ if (val != null){ if (val.length > 3){ _sendChannelName = (val + "_fromgame"); _rcvChannelName = val; initComChannels(); }; }; } private static function loadCommunicator(id:String, clip:Object):MovieClip{ var clipname:String; var f:Function; var req:URLRequest; var id = id; var clip = clip; clipname = ("_mochiservices_com_" + id); if (_clip != null){ return (_clip); }; if (!MochiServices.isNetworkAvailable()){ return (null); }; MochiServices.allowDomains(_gatewayURL); _clip = createEmptyMovieClip(clip, clipname, 10336, false); _loader = new Loader(); _timer = new Timer(1000, 0); _startTime = getTimer(); _timer.addEventListener(TimerEvent.TIMER, connectWait); _timer.start(); f = function (ev:Object):void{ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load."); MochiServices.disconnect(); MochiServices.onError("IOError"); }; _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f); req = new URLRequest(_gatewayURL); _loader.load(req); _clip.addChild(_loader); _clip._mochiservices_com = _loader; _sendChannel = new LocalConnection(); _clip._queue = []; _rcvChannel = new LocalConnection(); _rcvChannel.allowDomain("*", "localhost"); _rcvChannel.allowInsecureDomain("*", "localhost"); _rcvChannel.client = _clip; _clip._nextcallbackID = 0; _clip._callbacks = {}; listen(); return (_clip); } public static function bringToTop(e:Event):void{ var e = e; if (MochiServices.clip != null){ if (MochiServices.childClip != null){ if (MochiServices.clip.numChildren > 1){ MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1)); }; //unresolved jump var _slot1 = errorObject; trace("Warning: Depth sort error."); _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); }; }; } public static function connect(id:String, clip:Object, onError:Object=null):void{ var id = id; var clip = clip; var onError = onError; if ((clip is DisplayObject)){ if (((!(_connected)) && ((_clip == null)))){ trace("MochiServices Connecting..."); _connecting = true; init(id, clip); }; } else { trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage."); }; if (onError != null){ MochiServices.onError = onError; } else { if (MochiServices.onError == null){ MochiServices.onError = function (errorCode:String):void{ trace(errorCode); }; }; }; } public static function createEmptyMovieClip(parent:Object, name:String, depth:Number, doAdd:Boolean=true):MovieClip{ var mc:MovieClip; mc = new MovieClip(); if (doAdd){ if (((false) && (depth))){ parent.addChildAt(mc, depth); } else { parent.addChild(mc); }; }; parent[name] = mc; mc["_name"] = name; return (mc); } public static function connectWait(e:TimerEvent):void{ if ((getTimer() - _startTime) > 10000){ if (!_connected){ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load."); MochiServices.disconnect(); MochiServices.onError("IOError"); }; _timer.stop(); }; } } }//package mochi
Section 18
//BackgroundTileGFX (BackgroundTileGFX) package { import flash.display.*; public dynamic class BackgroundTileGFX extends MovieClip { public function BackgroundTileGFX(){ super(); } } }//package
Section 19
//BeenHitOverlay (BeenHitOverlay) package { import flash.display.*; public dynamic class BeenHitOverlay extends MovieClip { public function BeenHitOverlay(){ super(); addFrameScript(49, frame50); } function frame50(){ stop(); } } }//package
Section 20
//BonusExplodeGFX (BonusExplodeGFX) package { import flash.display.*; public dynamic class BonusExplodeGFX extends MovieClip { public function BonusExplodeGFX(){ super(); } } }//package
Section 21
//BonusHealthGFX (BonusHealthGFX) package { import flash.display.*; public dynamic class BonusHealthGFX extends MovieClip { public function BonusHealthGFX(){ super(); } } }//package
Section 22
//BonusScoreGFX (BonusScoreGFX) package { import flash.display.*; public dynamic class BonusScoreGFX extends MovieClip { public function BonusScoreGFX(){ super(); } } }//package
Section 23
//ButtonHighScores (ButtonHighScores) package { import flash.display.*; public dynamic class ButtonHighScores extends SimpleButton { public function ButtonHighScores(){ super(); } } }//package
Section 24
//ButtonStart (ButtonStart) package { import flash.display.*; public dynamic class ButtonStart extends SimpleButton { public function ButtonStart(){ super(); } } }//package
Section 25
//CollectBar (CollectBar) package { import flash.display.*; public dynamic class CollectBar extends MovieClip { public function CollectBar(){ super(); } } }//package
Section 26
//DisplayObj (DisplayObj) package { import flash.display.*; import flash.events.*; import flash.geom.*; public class DisplayObj { var frames:Array; public var frame:int; public function DisplayObj(mc:MovieClip, scale:Number):void{ super(); frame = 0; CreateBitmapsFromMovieClip(mc, scale); } public function GetBitmap():Bitmap{ return (frames[frame].bitmap); } public function RenderAt(screenBD:BitmapData, xpos:Number, ypos:Number):void{ frames[frame].RenderAt(screenBD, xpos, ypos); } public function SetFrame(f:int){ frame = f; if (frame < 0){ frame = 0; }; if (frame >= frames.length){ frame = (frames.length - 1); }; } public function CreateBitmapsFromMovieClip(mc:MovieClip, scale:Number):void{ var i:int; var dof:*; var rect:Rectangle; var mat:*; var cf:*; var bitmap:Bitmap; var bd:BitmapData; var shadowBitmap:Bitmap; var shadowbd:BitmapData; frames = new Array(); i = 0; while (i < mc.totalFrames) { dof = new DisplayObjFrame(); rect = mc.getBounds(null); mat = new Matrix(); mat.scale(scale, scale); mat.tx = (-(rect.left) * scale); mat.ty = (-(rect.top) * scale); dof.xoffset = (rect.left * scale); dof.yoffset = (rect.top * scale); cf = new ColorTransform(0, 0, 0, 0.5, -255, -255, -255, 1); bitmap = new Bitmap(); bd = new BitmapData((mc.width * scale), (mc.height * scale), true, 0); bd.draw(mc, mat); bitmap.bitmapData = bd; dof.bitmap = bitmap; shadowBitmap = new Bitmap(); shadowbd = new BitmapData((mc.width * scale), (mc.height * scale), true, 0); shadowbd.draw(mc, mat, cf); shadowBitmap.bitmapData = shadowbd; dof.shadowBitmap = shadowBitmap; mc.nextFrame(); frames.push(dof); i++; }; } public function RenderShadowAt(screenBD:BitmapData, xpos:Number, ypos:Number):void{ frames[frame].RenderShadowAt(screenBD, xpos, ypos); } public function GetMaxFrames():int{ return (frames.length); } public function GetXOffset():Number{ return (frames[frame].xoffset); } public function GetYOffset():Number{ return (frames[frame].yoffset); } public function GetFrame():int{ return (frame); } public function GetWidth():Number{ return (frames[frame].bitmap.width); } } }//package
Section 27
//DisplayObjFrame (DisplayObjFrame) package { import flash.display.*; import flash.geom.*; public class DisplayObjFrame { public var xoffset:Number; public var yoffset:Number; public var bitmap:Bitmap; public var shadowBitmap:Bitmap; public function DisplayObjFrame(){ super(); } public function RenderAt(screenBD:BitmapData, xpos:Number, ypos:Number):void{ screenBD.copyPixels(bitmap.bitmapData, new Rectangle(0, 0, bitmap.width, bitmap.height), new Point((xpos + xoffset), (ypos + yoffset))); } public function RenderShadowAt(screenBD:BitmapData, xpos:Number, ypos:Number):void{ screenBD.copyPixels(shadowBitmap.bitmapData, new Rectangle(0, 0, shadowBitmap.width, shadowBitmap.height), new Point((xpos + xoffset), (ypos + yoffset))); } } }//package
Section 28
//Enemy1GFX (Enemy1GFX) package { import flash.display.*; public dynamic class Enemy1GFX extends MovieClip { public function Enemy1GFX(){ super(); } } }//package
Section 29
//Enemy2GFX (Enemy2GFX) package { import flash.display.*; public dynamic class Enemy2GFX extends MovieClip { public function Enemy2GFX(){ super(); } } }//package
Section 30
//Enemy3GFX (Enemy3GFX) package { import flash.display.*; public dynamic class Enemy3GFX extends MovieClip { public function Enemy3GFX(){ super(); } } }//package
Section 31
//Enemy4GFX (Enemy4GFX) package { import flash.display.*; public dynamic class Enemy4GFX extends MovieClip { public function Enemy4GFX(){ super(); } } }//package
Section 32
//Enemy5GFX (Enemy5GFX) package { import flash.display.*; public dynamic class Enemy5GFX extends MovieClip { public function Enemy5GFX(){ super(); } } }//package
Section 33
//Enemy6GFX (Enemy6GFX) package { import flash.display.*; public dynamic class Enemy6GFX extends MovieClip { public function Enemy6GFX(){ super(); } } }//package
Section 34
//Enemy9GFX (Enemy9GFX) package { import flash.display.*; public dynamic class Enemy9GFX extends MovieClip { public function Enemy9GFX(){ super(); } } }//package
Section 35
//EnemyGFX (EnemyGFX) package { import flash.display.*; public dynamic class EnemyGFX extends MovieClip { public function EnemyGFX(){ super(); } } }//package
Section 36
//Explode1GFX (Explode1GFX) package { import flash.display.*; public dynamic class Explode1GFX extends MovieClip { public function Explode1GFX(){ super(); } } }//package
Section 37
//Explode2GFX (Explode2GFX) package { import flash.display.*; public dynamic class Explode2GFX extends MovieClip { public function Explode2GFX(){ super(); } } }//package
Section 38
//Explode3GFX (Explode3GFX) package { import flash.display.*; public dynamic class Explode3GFX extends MovieClip { public function Explode3GFX(){ super(); } } }//package
Section 39
//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { public function focusRectSkin(){ super(); } } }//package
Section 40
//gameobj (gameobj) package { import flash.events.*; import flash.geom.*; public class gameobj { public var bonusType:int; var graphicID:int; public var yvel; public var active:Boolean; public var xacc; var xoffset; var timer1; public var radius:Number; public var zpos:Number; public var dir:Number; public var controlMode; public var xvel; var main; public var type:int; public var ypos:Number; var timer; var yoffset; var multiplierFrame:int; var userVarNumber:Number; var startx; public var ypos2:Number; public var xpos:Number; public var xpos2:Number; var starty; public var hasShadow:Boolean; public var enemyType:int; public var handleRender:Boolean; public var yacc; var frame:Number; public var frameVel:Number; public var visible:Boolean; public var controlIndex; var scoreFrame:int; static const gotype_HEALTHBAR = 11; static const gotype_BACKGROUND = 1; static const gotype_SMARTBOMB = 9; static const gotype_REPOSITORY = 8; static const gotype_BONUS = 5; static const gotype_ENEMY = 3; static const gotype_COLLECTBAR = 10; static const gotype_SCORE = 6; static const gotype_EXPLOSION = 7; static const gotype_PICKUP = 4; static const gotype_GENERIC = 0; static const gotype_PLAYER = 2; public function gameobj(_main, _xpos, _ypos){ super(); xpos = _xpos; ypos = _ypos; zpos = 1; startx = _xpos; starty = _ypos; active = false; main = _main; zpos = 0; graphicID = 0; frame = 0; frameVel = 0; controlIndex = 0; handleRender = true; timer = 0; timer1 = 0; radius = 16; } public function LimitVel(maxVel:Number){ var vellen:*; var unitveldx:*; var unitveldy:*; vellen = Math.sqrt(((xvel * xvel) + (yvel * yvel))); unitveldx = (xvel / vellen); unitveldy = (yvel / vellen); if (vellen > maxVel){ xvel = (unitveldx * maxVel); yvel = (unitveldy * maxVel); }; } public function RenderShadow(_main):void{ var m:*; if (hasShadow == false){ return; }; m = main; m.graphicobjs[graphicID].SetFrame(frame); m.graphicobjs[graphicID].RenderShadowAt(m.screenBD, (xpos + 14), (ypos + 14)); } public function UpdateEnemy5(){ var gravity:*; graphicID = Main.gfx_enemy5; gravity = yacc; yvel = (yvel + ((gravity * main.ftime) * main.ftime)); xpos = (xpos + (xvel * main.ftime)); ypos = (ypos + (yvel * main.ftime)); frameVel = 0.5; CycleAnimation(); if (IsOnScreen(80) == false){ active = false; }; } public function IsOnScreen(extra:Number):Boolean{ if (xpos < (0 - extra)){ return (false); }; if (xpos > (0x0200 + extra)){ return (false); }; if (ypos < (0 - extra)){ return (false); }; if (ypos > (0x0200 + extra)){ return (false); }; return (true); } public function CycleAnimation():void{ var maxframe:*; frame = (frame + frameVel); maxframe = (main.graphicobjs[graphicID].GetMaxFrames() - 1); if (frame > maxframe){ frame = (frame - maxframe); }; if (frame < 0){ frame = (frame + maxframe); }; } public function MoveToParent(parentgo:gameobj){ var px:*; var py:*; var dx:*; var dy:*; var len:*; var unitdx:*; var unitdy:*; var length:*; px = parentgo.xpos; py = parentgo.ypos; dx = (px - xpos); dy = (py - ypos); len = GetLen(dx, dy); unitdx = (dx / len); unitdy = (dy / len); length = main.linkLength; unitdx = (unitdx * length); unitdy = (unitdy * length); xpos = (px - unitdx); ypos = (py - unitdy); } public function GetVelFromDir(speed:Number){ xvel = (Math.sin(dir) * speed); yvel = (Math.cos(dir) * speed); } public function SetType(_type:int){ type = _type; controlMode = 0; xvel = 0; frame = 0; frameVel = 0; hasShadow = true; if (type == gotype_COLLECTBAR){ graphicID = Main.gfx_collectbar; }; if (type == gotype_HEALTHBAR){ graphicID = Main.gfx_healthbar; }; if (type == gotype_GENERIC){ frameVel = 1; radius = 16; }; if (type == gotype_REPOSITORY){ frameVel = 1; radius = 32; }; if (type == gotype_BACKGROUND){ graphicID = Main.gfx_background; hasShadow = false; handleRender = false; xacc = 0; xvel = 0; yacc = 0; yvel = 0; xpos = 0; ypos = 0; timer = 100; }; if (type == gotype_SMARTBOMB){ graphicID = Main.gfx_smartbombexplosion; }; if (type == gotype_PLAYER){ graphicID = Main.gfx_player; frame = 10; radius = 16; }; if (type == gotype_ENEMY){ graphicID = Main.gfx_enemy; controlMode = 0; }; if (type == gotype_PICKUP){ radius = 8; graphicID = Main.gfx_pickup; timer = 0; frame = 40; }; if (type == gotype_BONUS){ radius = 16; bonusType = 0; }; if (type == gotype_SCORE){ hasShadow = false; graphicID = Main.gfx_numbers; yvel = 4; xvel = 0; }; if (type == gotype_EXPLOSION){ frame = 0; graphicID = Main.gfx_explode1; frameVel = 1; }; } public function RotateTowards(v0:Number, v1:Number, amt:Number):Number{ var pi:*; var pi2:*; var dx0:*; var dy0:*; var dx1:*; var dy1:*; var det:Number; var retdir:*; pi = 3.141592658; pi2 = (pi * 2); dx0 = Math.sin(v0); dy0 = Math.cos(v0); dx1 = Math.sin(v1); dy1 = Math.cos(v1); det = ((dx0 * dy1) - (dx1 * dy0)); retdir = v0; if (det < 0){ retdir = (retdir + amt); } else { if (det > 0){ retdir = (retdir - amt); }; }; if (retdir > pi2){ retdir = (retdir - pi2); }; if (retdir < 0){ retdir = (retdir + pi2); }; return (retdir); } public function GetDirBetween(x0, y0, x1, y1):Number{ var d:*; d = Math.atan2((x1 - x0), (y1 - y0)); return (d); } public function UpdatePlayer(){ frameVel = 0.5; CycleAnimation(); } public function UpdateEnemy1(){ timer1 = (timer1 + main.ftime); graphicID = Main.gfx_enemy1; if (controlMode == 0){ timer = (timer - main.ftime); if (timer < 0){ controlMode = 1; if (timer1 < (100 * 20)){ VelTowardsPlayer(); }; LimitVel(1); timer = 0; yacc = (1 + (Math.random() * 0.5)); }; frameVel = 0.2; CycleAnimation(); }; if (controlMode == 1){ xacc = (Math.sin(timer) * yacc); xpos = (xpos + ((xvel * xacc) * main.ftime)); ypos = (ypos + ((yvel * xacc) * main.ftime)); frameVel = (0.2 + xacc); CycleAnimation(); timer = (timer + (0.01 * main.ftime)); if (timer > 3.14159){ controlMode = 0; timer = (300 + (Math.random() * 100)); }; }; if (IsOnScreen(32) == false){ active = false; }; } public function UpdateEnemy3(){ graphicID = Main.gfx_enemy3; xpos = (xpos + (xvel * main.ftime)); frameVel = 0.5; CycleAnimation(); if (IsOnScreen(80) == false){ active = false; }; } public function BounceOffWalls():Boolean{ var y0:*; var y1:*; var x0:*; var x1:*; y0 = 0; y1 = 0x0200; x0 = 0; x1 = 0x0200; if (xpos < x0){ xvel = (xvel * -1); xpos = x0; return (true); }; if (xpos > x1){ xvel = (xvel * -1); xpos = x1; return (true); }; if (ypos < y0){ yvel = (yvel * -1); ypos = y0; return (true); }; if (ypos > y1){ yvel = (yvel * -1); ypos = y1; return (true); }; return (false); } public function CycleAnimationEx(minFrame, maxFrame):Boolean{ var looped:*; var numFrames:*; looped = false; frame = (frame + frameVel); numFrames = (maxFrame - minFrame); if (frame > maxFrame){ frame = (frame - numFrames); looped = true; }; if (frame < minFrame){ frame = (frame + numFrames); looped = true; }; return (looped); } public function Render(_main):void{ var xp:Number; var yp:Number; var i:int; var j:int; var min:int; var max:int; var size:*; if (type == gotype_REPOSITORY){ if (controlMode == 0){ return; }; }; if (type == gotype_BACKGROUND){ main.graphicobjs[graphicID].SetFrame(0); min = -1; max = 3; size = 0x0100; i = min; while (i < max) { j = min; while (j < max) { xp = ((i * size) - (xpos % size)); yp = ((j * size) - (ypos % size)); main.graphicobjs[graphicID].RenderAt(main.screenBD, xp, yp); j++; }; i++; }; main.graphicobjs[graphicID].SetFrame(1); i = min; while (i < max) { j = min; while (j < max) { xp = ((i * size) - ((xpos * 2) % size)); yp = ((j * size) - ((ypos * 2) % size)); main.graphicobjs[graphicID].RenderAt(main.screenBD, xp, yp); j++; }; i++; }; return; }; main.graphicobjs[graphicID].SetFrame(frame); main.graphicobjs[graphicID].RenderAt(main.screenBD, xpos, ypos); } function rand(num0, num1):Number{ var val:*; val = (Math.random() * (num1 - num0)); val = (val + num0); return (val); } public function GetDirFromVel(){ dir = Math.atan2(xvel, yvel); } public function SetScoreObject(score){ graphicID = (Main.gfx_numbers + score); } public function GetNumFrames():int{ return (main.graphicobjs[graphicID].GetMaxFrames()); } public function VelTowardsPlayer(){ xvel = (main.player.xpos - xpos); yvel = (main.player.ypos - ypos); } public function Update():void{ var numFrames:Number; var numFrames1:Number; var accel:*; var maxframe:*; var maxf:*; if (type == gotype_PLAYER){ UpdatePlayer(); }; if (type == gotype_BONUS){ frameVel = 0.5; CycleAnimation(); timer = (timer + main.ftime); if (timer > (100 * 10)){ active = false; }; }; if (type == gotype_ENEMY){ if (enemyType == 0){ UpdateEnemy0(); }; if (enemyType == 1){ UpdateEnemy1(); }; if (enemyType == 2){ UpdateEnemy2(); }; if (enemyType == 3){ UpdateEnemy3(); }; if (enemyType == 4){ UpdateEnemy4(); }; if (enemyType == 5){ UpdateEnemy5(); }; if (enemyType == 6){ UpdateEnemy6(); }; }; if (type == gotype_PICKUP){ if (controlMode == 0){ frameVel = 0.4; frame = (frame + (frameVel * main.ftime)); if (frame > 80){ controlMode = 1; frame = 80; }; } else { if (controlMode == 1){ timer = (timer + main.ftime); if (timer > 400){ active = false; }; }; }; }; if (type == gotype_COLLECTBAR){ numFrames = GetNumFrames(); frame = ((numFrames / main.numToOpenRepository) * main.numPickedUp); }; if (type == gotype_HEALTHBAR){ numFrames1 = GetNumFrames(); frame = ((numFrames1 / main.playerMaxHealth) * main.playerHealth); }; if (type == gotype_SCORE){ frame = 0; accel = 0.1; yvel = (yvel - ((accel * main.ftime) * main.ftime)); xpos = (xpos + (xvel * main.ftime)); ypos = (ypos + (yvel * main.ftime)); if (ypos < -10){ active = false; }; }; if (type == gotype_EXPLOSION){ frame = (frame + frameVel); maxframe = (main.graphicobjs[graphicID].GetMaxFrames() - 1); if (frame > maxframe){ frame = maxframe; active = false; }; }; if (type == gotype_GENERIC){ CycleAnimation(); }; if (type == gotype_REPOSITORY){ CycleAnimation(); }; if (type == gotype_SMARTBOMB){ frame = (frame + frameVel); maxf = (main.graphicobjs[graphicID].GetMaxFrames() - 1); main.KillAllEnemies(xpos, ypos, yacc); if (frame > maxf){ frame = maxf; active = false; }; }; if (type == gotype_BACKGROUND){ timer = (timer - main.ftime); if (timer <= 0){ timer = (300 + (Math.random() * 400)); xacc = ((-1 + (Math.random() * 2)) * 0.005); yacc = ((-1 + (Math.random() * 2)) * 0.005); }; xvel = (xvel + ((xacc * main.ftime) * main.ftime)); yvel = (yvel + ((yacc * main.ftime) * main.ftime)); LimitVel(1); xpos = (xpos + (xvel * main.ftime)); ypos = (ypos + (yvel * main.ftime)); }; } public function UpdateEnemy0(){ frameVel = 0.5; graphicID = Main.gfx_enemy; if (controlMode == 0){ timer = (timer + main.ftime); if (timer > 100){ controlMode = 1; timer = 0; }; }; if (controlMode == 1){ xpos = (xpos + (xvel * main.ftime)); ypos = (ypos + (yvel * main.ftime)); if (BounceOffWalls() == true){ timer++; }; frameVel = 0.5; CycleAnimation(); if (timer > 3){ controlMode = 2; }; }; if (controlMode == 2){ xpos = (xpos + (xvel * main.ftime)); ypos = (ypos + (yvel * main.ftime)); CycleAnimation(); if (IsOnScreen(16) == false){ active = false; }; }; } public function UpdateEnemy2(){ graphicID = Main.gfx_enemy2; if (controlMode == 0){ xpos = main.centrex; ypos = main.centrey; timer = (timer + main.ftime); if (timer > 100){ controlMode = 1; xacc = 0; yacc = 0; }; }; if (controlMode == 1){ yacc = (yacc + (0.01 * main.ftime)); xacc = (xacc + (0.1 * main.ftime)); xpos = (main.centrex + (Math.sin(yacc) * xacc)); ypos = (main.centrey + (Math.cos(yacc) * xacc)); frameVel = 0.5; CycleAnimation(); if (xacc > 300){ active = false; }; }; } public function UpdateEnemy6(){ var maxtime:*; var pi2:*; var todir:*; var rotvel:*; timer = (timer + main.ftime); maxtime = (100 * 20); graphicID = Main.gfx_enemy6; pi2 = (3.141592658 * 2); todir = GetDirBetween(xpos, ypos, main.player.xpos, main.player.ypos); rotvel = (0.01 * main.ftime); if (timer < maxtime){ dir = RotateTowards(dir, todir, rotvel); }; GetVelFromDir(yacc); xpos = (xpos + (xvel * main.ftime)); ypos = (ypos + (yvel * main.ftime)); frameVel = 0.5; CycleAnimation(); if (IsOnScreen(80) == false){ active = false; }; } public function UpdateEnemy4(){ var maxTimeWait:*; var maxTimeMove:*; var dirChange:*; var maxVel:*; var frameVelWait:*; var frameVelMove:*; maxTimeWait = 30; maxTimeMove = 30; dirChange = 2; maxVel = 2; frameVelWait = 0.5; frameVelMove = 4.5; if (controlMode == 0){ frameVel = frameVelWait; timer = (timer + main.ftime); if (timer > maxTimeWait){ timer = 0; dir = (dir + dirChange); GetVelFromDir(dirChange); controlMode = 1; }; }; if (controlMode == 1){ frameVel = frameVelMove; timer = (timer + main.ftime); if (timer > maxTimeMove){ controlMode = 2; timer = 0; }; xpos = (xpos + (xvel * main.ftime)); ypos = (ypos + (yvel * main.ftime)); }; if (controlMode == 2){ frameVel = frameVelWait; timer = (timer + main.ftime); if (timer > maxTimeWait){ timer = 0; dir = (dir - dirChange); GetVelFromDir(dirChange); controlMode = 3; }; }; if (controlMode == 3){ frameVel = frameVelMove; timer = (timer + main.ftime); if (timer > maxTimeMove){ controlMode = 0; timer = 0; }; xpos = (xpos + (xvel * main.ftime)); ypos = (ypos + (yvel * main.ftime)); }; if (IsOnScreen(64) == false){ active = false; }; graphicID = Main.gfx_enemy4; CycleAnimation(); } function GetLen(dx, dy):Number{ var len:*; len = Math.sqrt(((dx * dx) + (dy * dy))); return (len); } } }//package
Section 41
//gameobjgroup (gameobjgroup) package { import flash.events.*; class gameobjgroup { public var numobjs;// = 0x0100 var m:Main; public var zorder:Array; public var objs:Array; function gameobjgroup(_main){ var i:*; numobjs = 0x0100; super(); m = _main; objs = new Array(); zorder = new Array(0x0100); i = 0; while (i < numobjs) { objs.push(new gameobj(m, 0, 0)); i++; }; } public function Update():void{ var i:*; i = 0; while (i < objs.length) { if (objs[i].active == true){ objs[i].Update(); }; i++; }; } public function GetZOrder():int{ var i:int; var j:int; var index:int; var numToSort:int; var z0:Number; var z1:Number; var swap:int; i = 0; while (i < numobjs) { if (objs[i].active == true){ if (objs[i].handleRender == true){ zorder[index] = i; index++; }; }; i++; }; numToSort = index; i = 0; while (i < (numToSort - 1)) { j = (i + 1); while (j < numToSort) { z0 = objs[zorder[i]].zpos; z1 = objs[zorder[j]].zpos; if (z1 > z0){ swap = zorder[i]; zorder[i] = zorder[j]; zorder[j] = swap; }; j++; }; i++; }; return (numToSort); } public function AddObj(_objtype:int, _xpos, _ypos, _zpos, _graphicID):gameobj{ var i:*; i = 0; while (i < numobjs) { if (objs[i].active == false){ objs[i].active = true; objs[i].zpos = _zpos; objs[i].xpos = _xpos; objs[i].ypos = _ypos; objs[i].startx = _xpos; objs[i].starty = _ypos; objs[i].yvel = 0; objs[i].graphicID = _graphicID; objs[i].SetType(_objtype); return (objs[i]); }; i++; }; return (null); } public function Render():void{ var numToRender:int; var i:int; numToRender = GetZOrder(); i = 0; while (i < numToRender) { objs[zorder[i]].RenderShadow(m); i++; }; i = 0; while (i < numToRender) { objs[zorder[i]].Render(m); i++; }; } } }//package
Section 42
//GameOverPage (GameOverPage) package { import flash.display.*; public dynamic class GameOverPage extends MovieClip { public function GameOverPage(){ super(); } } }//package
Section 43
//HealthBar (HealthBar) package { import flash.display.*; public dynamic class HealthBar extends MovieClip { public function HealthBar(){ super(); } } }//package
Section 44
//LevelUpPage (LevelUpPage) package { import flash.display.*; public dynamic class LevelUpPage extends MovieClip { public function LevelUpPage(){ super(); addFrameScript(99, frame100); } function frame100(){ stop(); } } }//package
Section 45
//LongAnimalsMochiScores (LongAnimalsMochiScores) package { import flash.display.*; import mochi.*; public class LongAnimalsMochiScores { var mochiMovieClip:MovieClip; public function LongAnimalsMochiScores():void{ super(); } public function Init(){ mochiMovieClip = new MovieClip(); MochiServices.connect("691b26522a20358a", mochiMovieClip); MochiScores.setBoardID("865cbd472af5a395"); } public function ShowLeaderboard(parentClip:MovieClip){ parentClip.addChild(mochiMovieClip); MochiScores.showLeaderboard({boardID:"865cbd472af5a395"}); } public function EnterHighScores(parentClip:MovieClip, score:Number, callback){ parentClip.addChild(mochiMovieClip); MochiScores.showLeaderboard({boardID:"865cbd472af5a395", score:score, onClose:callback}); } } }//package
Section 46
//Main (Main) package { import fl.controls.*; import flash.display.*; import flash.events.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.geom.*; import flash.ui.*; public class Main extends MovieClip { var maxLinkLength;// = 20 public var centrey;// = 0x0100 var manTimer:Number; var adClip:MovieClip; var manMode; var levelTimer:Number; var hiscore; var ftime:Number; public var numToOpenRepository:int; var healthbar:gameobj;// = null var basketSide:int; var minX; var bm:Bitmap; var objs:gameobjgroup; var manFaceDirection:Boolean;// = true var pickupGenTimer; var gameTimer:Number; var requiredLinkLength; public var mochiScores; var numtoadd;// = 0 var difficultyLevel:int; var currentScore; public var playerHealth; var mouseVelY;// = 0 var scoretxt:TextField; var musicSoundTransform:SoundTransform; var mouseVelX;// = 0 var collectbar:gameobj;// = null var mousePosX;// = 0 var mousePosY;// = 0 var levelEndTimer:Number; var spaceDown:Boolean; var initedScores:Boolean; var killedTimer:Number; var rightDown:Boolean; public var numPickedUp:int; var mouseOldPosY;// = 0 var player:gameobj;// = null var backgroundObj:gameobj;// = null var baskettxt:TextField; var mouseOldPosX;// = 0 var bonusTable:Array; var tf_small:TextFormat; var mochiMovieClip:MovieClip; public var playerMaxHealth; var bonusGenTimer; var musicChannel:SoundChannel; var gameplayLevel:Array; var addXpos:Array; var tf_large:TextFormat; var timer:gameobj; var gameplayTable:Array; var leftDown:Boolean; public var graphicobjs:Array; private var screenB:Bitmap; var man:gameobj; var repository:gameobj;// = null var mainFrameAnim:Number;// = 0 var doSound;// = true var bonusGenTimeMax;// = 500 var titleFirstWaitTime:Number; var bmd:BitmapData; var maxX; var addYpos:Array; var enemyGenTimer; var minLinkLength;// = 4 var levelTimerMax:Number; public var linkLength; var pickupGenTimeMax;// = 100 var currentLevel:Number; var enemyGenTimeMax;// = 600 var mc:MovieClip; public var screenBD:BitmapData; var links:Array; var titleToX:Number;// = 0 public var basket:gameobj; var gameState:int;// = 0 var linkLengthIncrease;// = 2 var currentDomain; var initialLinkLength;// = 10 var titleTimer:Number;// = 0 var currentTime:Number;// = 0 var titleToY:Number;// = 0 private var backgroundBD:BitmapData; var musicSound:Sound; var lockedOut;// = false public var centrex;// = 0x0100 public static const gfx_times = 5; public static const gfx_pickup = 3; static const KEY_LEFT = 37; static const gameState_LEVEL_GETREADY = 1; public static const zpos_REPOSITORY = 900; public static const gfx_smartbombexplosion = 15; public static const gfx_explode_pickup = 7; public static const zpos_PLAYER = 500; public static const bonus_FASTER = 5; public static const zpos_NORMAL = 600; public static const gfx_enemy1 = 9; public static const gfx_enemy2 = 10; public static const gfx_enemy3 = 11; public static const gfx_enemy4 = 12; public static const gfx_enemy5 = 13; static const gameState_LEVEL_COMPLETE = 3; public static const bonus_UTURN = 6; public static const gfx_enemy6 = 14; public static const gfx_collectbar = 18; public static const gfx_enemy = 2; static const gameState_GAMEOVER = 4; public static const bonus_SCORE = 3; static const gameState_PREGAMEAD = 6; public static const gfx_player = 1; public static const bonus_INCREASE = 7; public static const gfx_bonusscore = 16; public static const gfx_bonushealth = 4; public static const gfx_explode1 = 6; public static const sfx_pickup = 0; public static const bonus_HEALTH = 9; public static const zpos_ENEMY = 550; public static const gfx_numbers = 20; public static const zpos_SCORE = 20; public static const bonus_SLOWER = 4; public static const zpos_EXPLOSION = 50; public static const bonus_GRAVITYFIELD = 2; static const KEY_UP = 40; public static const bonus_EXPLODE = 0; static const KEY_DOWN = 38; static const gameState_LEVEL_PLAY = 2; public static const gfx_background = 0; static const gameState_TITLE = 0; public static const zpos_LINKS = 100; public static const bonus_DECREASE = 1; static const gameState_HIGHSCORES = 5; public static const gfx_repository = 8; public static const zpos_FAR = 1000; public static const sfx_hit = 2; public static const bonus_MAXIMUM = 10; public static const sfx_bonus = 1; static const KEY_SPACE = 32; public static const bonus_SPLITENEMIES = 8; public static const gfx_healthbar = 19; public static const zpos_BACKGROUND = 1000; public static const gfx_bonusbomb = 17; static const KEY_RIGHT = 39; public function Main(){ gameState = gameState_TITLE; backgroundObj = null; player = null; collectbar = null; healthbar = null; repository = null; initialLinkLength = 10; linkLengthIncrease = 2; minLinkLength = 4; maxLinkLength = 20; centrex = 0x0100; centrey = 0x0100; doSound = true; bonusGenTimeMax = 500; pickupGenTimeMax = 100; enemyGenTimeMax = 600; mouseOldPosX = 0; mouseOldPosY = 0; mousePosX = 0; mousePosY = 0; mouseVelX = 0; mouseVelY = 0; manFaceDirection = true; currentTime = 0; numtoadd = 0; mainFrameAnim = 0; titleToX = 0; titleToY = 0; titleTimer = 0; lockedOut = false; super(); addEventListener(Event.ENTER_FRAME, run); stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownListener); stage.addEventListener(KeyboardEvent.KEY_UP, keyUpListener); tf_large = new TextFormat("Century Gothic", 45, 0xFFFFFF, true, false, false, null, null, "center"); tf_small = new TextFormat("Century Gothic", 23, 0xFFFFFF, true, false, false, null, null, "center"); GenerateGraphics(); musicSoundTransform = new SoundTransform(0.4, 0); musicSound = new Music(); musicChannel = musicSound.play(0, 999999, musicSoundTransform); screenBD = new BitmapData(0x0200, 0x0200, false, 0); screenB = new Bitmap(screenBD); InitStage(); mochiScores = new LongAnimalsMochiScores(); mochiScores.Init(); links = new Array(0x0100); hiscore = 0; InitGame(); stage.addEventListener(MouseEvent.MOUSE_MOVE, MouseHandler); SetGameState(gameState_PREGAMEAD); } function RandBetween(r0:Number, r1:Number):Number{ var r:Number; r = (Math.random() * (r1 - r0)); r = (r + r0); return (r); } function RunPreGameAd(){ } private function CreateTextField(tf:TextFormat, x:Number, y:Number, txt:String):TextField{ var result:TextField; result = new TextField(); result.selectable = false; result.autoSize = TextFieldAutoSize.CENTER; result.x = x; result.y = y; result.text = txt; result.setTextFormat(tf); addChild(result); return (result); } public function PlaySound(soundID){ var sound:*; if (doSound == false){ return; }; if (gameState != gameState_LEVEL_PLAY){ return; }; if (soundID == sfx_bonus){ sound = new sfx3(); }; if (soundID == sfx_hit){ sound = new sfx2(); }; if (soundID == sfx_pickup){ sound = new sfx1(); }; sound.play(0, 1); } public function soundOffPressed(event:MouseEvent){ if (doSound == false){ return; }; musicChannel.stop(); doSound = false; } function keyUpListener(event:KeyboardEvent):void{ if (event.keyCode == KEY_LEFT){ leftDown = false; }; if (event.keyCode == KEY_RIGHT){ rightDown = false; }; if (event.keyCode == KEY_SPACE){ spaceDown = false; }; } function RunLevelComplete(){ } function DoBonus(go:gameobj){ var bonusType:*; bonusType = go.bonusType; if (bonusType == bonus_EXPLODE){ SmartBomb(); AddScore(go.xpos, go.ypos, 100, 1); }; if (bonusType == bonus_SCORE){ AddScore(go.xpos, go.ypos, 10, (numPickedUp + 1)); }; if (bonusType == bonus_HEALTH){ AddHealth(1); AddScore(go.xpos, go.ypos, 100, 1); }; GenerateExplosion(go.xpos, go.ypos, 1); } function UpdateGameplay():void{ var go:gameobj; var r:int; enemyGenTimer = (enemyGenTimer + (1 * ftime)); if (enemyGenTimer >= enemyGenTimeMax){ enemyGenTimer = 0; go = objs.AddObj(gameobj.gotype_ENEMY, 100, 100, zpos_NORMAL, 0); if (go != null){ SetEnemyType(go); go.zpos = zpos_ENEMY; }; }; pickupGenTimer = (pickupGenTimer + (1 * ftime)); if (pickupGenTimer >= pickupGenTimeMax){ pickupGenTimer = 0; go = objs.AddObj(gameobj.gotype_PICKUP, 100, 100, zpos_NORMAL, 0); if (go != null){ SetPlayfieldStartPos(go); }; }; bonusGenTimer = (bonusGenTimer + (1 * ftime)); if (bonusGenTimer >= bonusGenTimeMax){ bonusGenTimer = 0; go = objs.AddObj(gameobj.gotype_BONUS, 100, 100, zpos_NORMAL, 0); if (go != null){ SetPlayfieldStartPos(go); r = RandBetween(0, bonusTable.length); if (r > (bonusTable.length - 1)){ r = (bonusTable.length - 1); }; InitBonus(go, r); }; }; if (linkLength < requiredLinkLength){ linkLength = (linkLength + (0.1 * ftime)); }; if (linkLength > requiredLinkLength){ linkLength = (linkLength - (0.1 * ftime)); }; if (numPickedUp >= numToOpenRepository){ repository.controlMode = 1; }; } function InitLevel(){ var xx:*; Mouse.hide(); playerMaxHealth = 5; playerHealth = 5; InitStage(); levelTimer = 0; xx = (0x0200 / 3); objs = new gameobjgroup(this); backgroundObj = objs.AddObj(gameobj.gotype_BACKGROUND, 0x0100, 0x0100, zpos_BACKGROUND, 0); player = objs.AddObj(gameobj.gotype_PLAYER, 0x0100, 0x0100, zpos_PLAYER, 0); repository = objs.AddObj(gameobj.gotype_REPOSITORY, 0x0100, 0x0100, zpos_REPOSITORY, gfx_repository); repository.controlMode = 0; repository.hasShadow = false; scoretxt = CreateTextField(tf_small, 0x0100, 20, ""); collectbar = objs.AddObj(gameobj.gotype_COLLECTBAR, (0x0100 + 128), 35, zpos_SCORE, 0); healthbar = objs.AddObj(gameobj.gotype_HEALTHBAR, (0x0100 - 128), 35, zpos_SCORE, 0); enemyGenTimer = 0; pickupGenTimer = 0; bonusGenTimer = 0; numPickedUp = 0; linkLength = (requiredLinkLength = initialLinkLength); InitLevelParameters(); } public function highScoresPressed(event:MouseEvent){ mochiScores.ShowLeaderboard(this); } function InitLevelGetReady(){ } function AddHealth(amt){ playerHealth = (playerHealth + amt); if (playerHealth < 0){ playerHealth = 0; }; if (playerHealth > playerMaxHealth){ playerHealth = playerMaxHealth; }; if (amt < 0){ AddMovieClip(0x0100, 0x0100, new BeenHitOverlay()); }; } function UpdateLinks(){ var zpos:Number; var i:int; var parent:gameobj; var child:gameobj; mainFrameAnim = (mainFrameAnim + (0.5 * ftime)); if (mainFrameAnim > 40){ mainFrameAnim = (mainFrameAnim - 40); }; zpos = zpos_LINKS; i = 0; while (i < numPickedUp) { child = links[i]; if (i == 0){ parent = player; child.frame = mainFrameAnim; } else { parent = links[(i - 1)]; child.frame = (parent.frame - 3); if (child.frame < 0){ child.frame = (child.frame + 40); }; }; child.zpos = zpos; zpos = (zpos + 0.01); child.MoveToParent(parent); i++; }; } function GetDistanceBetween(x0:Number, y0:Number, x1:Number, y1:Number):Number{ var xd:*; var yd:*; var dist:*; xd = (x1 - x0); yd = (y1 - y0); dist = Math.sqrt(((xd * xd) + (yd * yd))); return (dist); } function PlayerRepositoryCollision(){ var px:*; var py:*; var prad:*; if (repository.controlMode == 0){ return; }; px = player.xpos; py = player.ypos; prad = 16; if (ObjsCollided(px, py, prad, centrex, centrey, 32) == true){ if (numPickedUp > 0){ AddScore(px, py, 10, (numPickedUp + 1)); }; numPickedUp = 0; DeleteLinks(); repository.controlMode = 0; SmartBomb(); LevelUp(); }; } function PlayerEdgeCollision(){ var px:*; var py:*; var prad:*; var hit:Boolean; var x0:*; var y0:*; var x1:*; var y1:*; px = player.xpos; py = player.ypos; prad = 16; hit = false; x0 = 16; y0 = 16; x1 = (0x0200 - 16); y1 = (0x0200 - 16); if (py < y0){ hit = true; }; if (px < x0){ hit = true; }; if (py > y1){ hit = true; }; if (px > x1){ hit = true; }; if (hit == true){ }; } function ObjsCollided(x0:Number, y0:Number, r0:Number, x1:Number, y1:Number, r1:Number):Boolean{ var xd:*; var yd:*; var dist:*; xd = (x1 - x0); yd = (y1 - y0); dist = Math.sqrt(((xd * xd) + (yd * yd))); if (dist < (r0 + r1)){ return (true); }; return (false); } function AddScore(x, y, score, multiplier){ var xp:*; var go:gameobj; xp = x; if (gameState != gameState_LEVEL_PLAY){ return; }; currentScore = (currentScore + (score * multiplier)); go = objs.AddObj(gameobj.gotype_SCORE, 100, 100, zpos_SCORE, 0); if (go != null){ go.SetScoreObject(score); go.xpos = xp; go.ypos = y; graphicobjs[go.graphicID].SetFrame(0); xp = (xp + graphicobjs[go.graphicID].GetWidth()); }; if (multiplier > 1){ go = objs.AddObj(gameobj.gotype_SCORE, 100, 100, zpos_SCORE, 0); if (go != null){ go.graphicID = gfx_times; go.xpos = xp; go.ypos = (y + 20); graphicobjs[go.graphicID].SetFrame(0); xp = (xp + graphicobjs[go.graphicID].GetWidth()); }; go = objs.AddObj(gameobj.gotype_SCORE, 100, 100, zpos_SCORE, 0); if (go != null){ go.SetScoreObject(multiplier); go.xpos = xp; go.ypos = y; }; }; } function AddNumberBitmaps(){ var i:int; var n:MovieClip; i = 0; while (i <= 100) { n = new MovieClip(); scoretxt = CreateTextField(tf_large, 0, 0, i.toString()); n.addChild(scoretxt); graphicobjs.push(new DisplayObj(n, 1)); i++; }; scoretxt = CreateTextField(tf_small, 0, 0, "x"); n.addChild(scoretxt); graphicobjs.push(new DisplayObj(n, 1)); } function LinksEnemyCollision(){ var num:int; var j:int; var link:gameobj; var px:*; var py:*; var prad:*; var i:int; var go:gameobj; addXpos = new Array(); addYpos = new Array(); numtoadd = 0; num = numPickedUp; j = 0; while (j < num) { link = links[j]; if (link != null){ px = link.xpos; py = link.ypos; prad = 16; i = 0; while (i < objs.numobjs) { go = objs.objs[i]; if (go.active == true){ if (go.type == gameobj.gotype_ENEMY){ if (ObjsCollided(px, py, prad, go.xpos, go.ypos, 8) == true){ AddHealth(-1); link.active = false; go.active = false; addXpos.push(go.xpos); addYpos.push(go.ypos); numtoadd++; }; }; }; i++; }; }; j++; }; } function run(e:Event):void{ var url:String; var urlStart:Number; var urlEnd:Number; var domain:String; var LastDot:Number; var domEnd:Number; url = stage.loaderInfo.url; urlStart = (url.indexOf("://") + 3); urlEnd = url.indexOf("/", urlStart); domain = url.substring(urlStart, urlEnd); LastDot = (domain.lastIndexOf(".") - 1); domEnd = (domain.lastIndexOf(".", LastDot) + 1); domain = domain.substring(domEnd, domain.length); InitLockout(domain); calcFrameTime(); switch (gameState){ case gameState_PREGAMEAD: RunPreGameAd(); break; case gameState_TITLE: RunTitle(); break; case gameState_HIGHSCORES: RunHighScores(); break; case gameState_LEVEL_GETREADY: RunLevelGetReady(); break; case gameState_LEVEL_PLAY: RunLevel(); break; case gameState_LEVEL_COMPLETE: RunLevelComplete(); break; case gameState_GAMEOVER: RunGameOver(); break; }; } function RunTitle(){ var go:gameobj; var i:int; objs.Update(); MakeLinksList(); UpdateLinks(); Collision(); Render(); titleTimer = (titleTimer - ftime); if (titleTimer < 0){ titleTimer = RandBetween(10, 50); titleToX = RandBetween(0, 0x0200); titleToY = RandBetween(0, 0x0200); }; titleFirstWaitTime = (titleFirstWaitTime - ftime); if (titleFirstWaitTime < 0){ titleFirstWaitTime = -1; player.xvel = ((titleToX - player.xpos) * 0.1); player.yvel = ((titleToY - player.ypos) * 0.1); player.LimitVel(10); player.xpos = (player.xpos + (player.xvel * ftime)); player.ypos = (player.ypos + (player.yvel * ftime)); }; pickupGenTimer = (pickupGenTimer + (1 * ftime)); if (pickupGenTimer >= pickupGenTimeMax){ pickupGenTimer = 0; go = objs.AddObj(gameobj.gotype_PICKUP, 100, 100, zpos_NORMAL, 0); if (go != null){ SetPlayfieldStartPos(go); }; }; if (numPickedUp > 30){ i = 0; while (i < objs.numobjs) { go = objs.objs[i]; if (go.active == true){ if (go.type == gameobj.gotype_PICKUP){ GenerateExplosion(go.xpos, go.ypos, 0); go.active = false; }; }; i++; }; numPickedUp = 0; MakeLinksList(); UpdateLinks(); i = 0; while (i < 20) { go = objs.AddObj(gameobj.gotype_PICKUP, 100, 100, zpos_NORMAL, 0); if (go != null){ go.xpos = player.xpos; go.ypos = player.ypos; }; i++; }; }; } function DeleteLinks(){ var i:int; var go:gameobj; i = 0; while (i < objs.numobjs) { go = objs.objs[i]; if (go.active == true){ if (go.type == gameobj.gotype_PICKUP){ if (go.controlMode == 2){ go.active = false; }; }; }; i++; }; } public function hardPressed(event:MouseEvent){ difficultyLevel = 2; } function AddLevelDesc(v0, v1, v2, v3, v4, v5, v6){ var num:*; gameplayLevel = new Array(); num = 0; gameplayLevel.push(num); num = (num + v0); gameplayLevel.push(num); num = (num + v1); gameplayLevel.push(num); num = (num + v2); gameplayLevel.push(num); num = (num + v3); gameplayLevel.push(num); num = (num + v4); gameplayLevel.push(num); num = (num + v5); gameplayLevel.push(num); num = (num + v6); gameplayLevel.push(num); gameplayTable.push(gameplayLevel); } function SetEnemyType(go:gameobj){ var gameplayLevel:Array; var r:int; var i:int; var v0:int; var v1:int; gameplayLevel = gameplayTable[(currentLevel % gameplayTable.length)]; r = (Math.random() * 100); i = 0; while (i < (gameplayLevel.length - 1)) { v0 = gameplayLevel[i]; v1 = gameplayLevel[(i + 1)]; if (v0 != v1){ if ((((r >= v0)) && ((r < v1)))){ go.enemyType = i; }; }; i++; }; SetEnemyInitialVelocity(go); SetEdgeStartPos(go, 8); if (go.enemyType == 0){ go.radius = 8; }; if (go.enemyType == 1){ go.radius = 8; }; if (go.enemyType == 1){ go.radius = 8; }; if (go.enemyType == 3){ go.radius = 64; go.xpos = -64; go.ypos = RandBetween(32, (0x0200 - 32)); go.xvel = RandBetween(0.5, 1.5); }; if (go.enemyType == 4){ go.radius = 24; go.VelTowardsPlayer(); go.LimitVel(1); go.GetDirFromVel(); go.dir = (go.dir - 1); }; if (go.enemyType == 5){ go.radius = 24; go.xpos = RandBetween(32, (0x0200 - 32)); go.ypos = (0x0200 + 32); if (go.xpos > 0x0100){ go.xvel = RandBetween(-1, 0.2); } else { go.xvel = RandBetween(-0.2, 1); }; go.yvel = RandBetween(-3, -4); go.yacc = 0.01; if (RandBetween(0, 100) < 50){ go.ypos = (0x0200 - go.ypos); go.yvel = (go.yvel * -1); go.yacc = (go.yacc * -1); }; }; if (go.enemyType == 6){ go.radius = 24; go.VelTowardsPlayer(); go.LimitVel(1); go.GetDirFromVel(); go.yacc = RandBetween(0.5, 1); }; } function SetEdgeStartPos(go:gameobj, offset){ var x0:*; var y0:*; var x1:*; var y1:*; var pos:*; x0 = offset; y0 = offset; x1 = (0x0200 - offset); y1 = (0x0200 - offset); pos = (32 + (Math.random() * (0x0200 - 64))); if (Math.random() > 0.5){ if (Math.random() > 0.5){ go.xpos = x0; go.ypos = pos; } else { go.xpos = x1; go.ypos = pos; }; } else { if (Math.random() > 0.5){ go.xpos = pos; go.ypos = y0; } else { go.xpos = pos; go.ypos = y1; }; }; } function PlayerPickupCollision(){ var px:*; var py:*; var prad:*; var i:int; var go:gameobj; px = player.xpos; py = player.ypos; prad = 16; i = 0; while (i < objs.numobjs) { go = objs.objs[i]; if (go.active == true){ if (go.type == gameobj.gotype_PICKUP){ if (go.controlMode == 1){ if (ObjsCollided(px, py, prad, go.xpos, go.ypos, 16) == true){ go.controlIndex = numPickedUp; numPickedUp++; go.controlMode = 2; GenerateExplosion(go.xpos, go.ypos, 1); AddScore(go.xpos, go.ypos, 5, 1); }; }; }; }; i++; }; } function SetPlayfieldStartPos(go:gameobj){ var x0:*; var y0:*; var x1:*; var y1:*; x0 = 32; y0 = 32; x1 = (0x0200 - 32); y1 = (0x0200 - 32); go.xpos = (x0 + (Math.random() * (x1 - x0))); go.ypos = (y0 + (Math.random() * (y1 - y0))); if (Math.abs((go.xpos - centrex)) < 128){ go.xpos = (go.xpos + 128); } else { if (Math.abs((go.ypos - centrey)) < 128){ go.ypos = (go.ypos + 128); }; }; } function InitLockout(domain:String){ lockedOut = true; currentDomain = domain; } function RunLevelGetReady(){ } function InitPreGameAd(){ InitStage(); adClip = new MovieClip(); addChild(adClip); MochiAd.showPreGameAd({ad_finished:AdFinished, clip:adClip, id:"691b26522a20358a", res:"512x512"}); } function InitBonus(go:gameobj, i:int){ var bonus:*; bonus = bonusTable[i]; go.bonusType = bonus; if (bonus == bonus_EXPLODE){ go.graphicID = gfx_bonusbomb; }; if (bonus == bonus_SCORE){ go.graphicID = gfx_bonusscore; }; if (bonus == bonus_HEALTH){ go.graphicID = gfx_bonushealth; }; } function ScaleUnitTo(v0:Number, v1:Number, scale:Number):Number{ var v2:Number; var size:*; size = ((v1 - v0) + 1); v2 = ((size * scale) + v0); return (v2); } public function enterScoreCallback(){ SetGameState(gameState_TITLE); } function SetEnemyInitialVelocity(go:gameobj){ var min:*; var range:*; min = 0.2; range = 0.3; go.xvel = (min + (Math.random() * range)); go.yvel = (min + (Math.random() * range)); if (Math.random() < 0.5){ go.xvel = (go.xvel * -1); }; if (Math.random() < 0.5){ go.yvel = (go.yvel * -1); }; } function InitTitle(){ var buttonGroup0:RadioButtonGroup; var buttonGroup1:RadioButtonGroup; var startY:*; var i:*; var go:gameobj; InitStage(); buttonGroup0 = new RadioButtonGroup("g1"); buttonGroup1 = new RadioButtonGroup("g2"); mc = AddMovieClip(0x0100, 0x0100, new TitlePage()); mc.buttonStart.addEventListener(MouseEvent.CLICK, startPressed); mc.buttonHelp.addEventListener(MouseEvent.CLICK, helpPressed); mc.buttonLongAnimals.addEventListener(MouseEvent.CLICK, longAnimalsPressed); mc.buttonHighScores.addEventListener(MouseEvent.CLICK, highScoresPressed); mc.buttonEasy.addEventListener(MouseEvent.CLICK, easyPressed); mc.buttonMedium.addEventListener(MouseEvent.CLICK, mediumPressed); mc.buttonHard.addEventListener(MouseEvent.CLICK, hardPressed); mc.buttonSoundOn.addEventListener(MouseEvent.CLICK, soundOnPressed); mc.buttonSoundOff.addEventListener(MouseEvent.CLICK, soundOffPressed); mc.buttonSoundOn.group = buttonGroup0; mc.buttonSoundOff.group = buttonGroup0; mc.buttonEasy.group = buttonGroup1; mc.buttonMedium.group = buttonGroup1; mc.buttonHard.group = buttonGroup1; mc.buttonEasy.label = "EASY"; mc.buttonMedium.label = "MEDIUM"; mc.buttonHard.label = "HARD"; mc.buttonSoundOn.label = "SOUND ON"; mc.buttonSoundOff.label = "SOUND OFF"; if (doSound == true){ mc.buttonSoundOn.selected = true; }; if (doSound == false){ mc.buttonSoundOff.selected = true; }; if (difficultyLevel == 0){ mc.buttonEasy.selected = true; }; if (difficultyLevel == 1){ mc.buttonMedium.selected = true; }; if (difficultyLevel == 2){ mc.buttonHard.selected = true; }; levelTimer = 0; currentLevel = 0; InitLevelParameters(); startY = 550; objs = new gameobjgroup(this); backgroundObj = objs.AddObj(gameobj.gotype_BACKGROUND, 0x0100, 0x0100, zpos_BACKGROUND, 0); player = objs.AddObj(gameobj.gotype_PLAYER, 0x0100, startY, zpos_PLAYER, 0); repository = objs.AddObj(gameobj.gotype_REPOSITORY, 0x0100, 0x0100, zpos_REPOSITORY, gfx_repository); repository.controlMode = 0; repository.hasShadow = false; linkLength = (requiredLinkLength = initialLinkLength); player.xpos = 0x0100; player.ypos = startY; pickupGenTimer = 0; numPickedUp = 0; titleTimer = 100; titleToX = 0x0100; titleToY = startY; ftime = 1; i = 0; while (i < 20) { go = objs.AddObj(gameobj.gotype_PICKUP, 100, 100, zpos_NORMAL, 0); if (go != null){ go.xpos = player.xpos; go.ypos = player.ypos; }; i++; }; killedTimer = 0; titleFirstWaitTime = 100; } function Collision(){ var j:int; var index:int; var link:gameobj; PlayerEnemyCollision(); LinksEnemyCollision(); PlayerRepositoryCollision(); PlayerBonusCollision(); if (numPickedUp > 0){ index = 0; j = 0; while (j < numPickedUp) { link = links[j]; if (link.active == true){ link.controlIndex = index; index++; }; j++; }; numPickedUp = index; }; PlayerPickupCollision(); j = 0; while (j < numtoadd) { GenerateExplosion(addXpos[j], addYpos[j], 0); j++; }; } public function mediumPressed(event:MouseEvent){ difficultyLevel = 1; } function GenerateExplosion(xpos, ypos, type){ var go2:gameobj; go2 = objs.AddObj(gameobj.gotype_EXPLOSION, 100, 100, zpos_EXPLOSION, 0); if (go2 != null){ go2.xpos = xpos; go2.ypos = ypos; if (type == 0){ go2.graphicID = gfx_explode1; PlaySound(sfx_hit); }; if (type == 1){ go2.graphicID = gfx_explode_pickup; PlaySound(sfx_pickup); }; }; } function AddMovieClip(x:Number, y:Number, mc:MovieClip):MovieClip{ mc.x = x; mc.y = y; addChild(mc); return (mc); } function RunHighScores(){ } function InitGameOver(){ AddMovieClip(0x0100, 0x0100, new GameOverPage()); levelTimer = 0; initedScores = false; } function PlayerBonusCollision(){ var px:*; var py:*; var prad:*; var i:int; var go:gameobj; px = player.xpos; py = player.ypos; prad = 16; i = 0; while (i < objs.numobjs) { go = objs.objs[i]; if (go.active == true){ if (go.type == gameobj.gotype_BONUS){ if (ObjsCollided(px, py, prad, go.xpos, go.ypos, 8) == true){ DoBonus(go); PlaySound(sfx_bonus); go.active = false; }; }; }; i++; }; } function MouseHandler(event:MouseEvent):void{ var xv:*; var yv:*; mousePosX = event.stageX; mousePosY = event.stageY; mouseVelX = (mousePosX - mouseOldPosX); mouseVelY = (mousePosY - mouseOldPosY); mouseOldPosX = mousePosX; mouseOldPosY = mousePosY; if (gameState != gameState_LEVEL_PLAY){ return; }; if (player == null){ return; }; xv = ((mousePosX - player.xpos) / 5); yv = ((mousePosY - player.ypos) / 5); player.xpos = (player.xpos + (xv * ftime)); player.ypos = (player.ypos + (yv * ftime)); } function GenerateGraphics(){ graphicobjs = new Array(); graphicobjs.push(new DisplayObj(new BackgroundTileGFX(), 1)); graphicobjs.push(new DisplayObj(new PlayerGFX(), 1)); graphicobjs.push(new DisplayObj(new EnemyGFX(), 1)); graphicobjs.push(new DisplayObj(new PickupGFX(), 1)); graphicobjs.push(new DisplayObj(new BonusHealthGFX(), 1)); graphicobjs.push(new DisplayObj(new TimesGFX(), 1)); graphicobjs.push(new DisplayObj(new Explode1GFX(), 1)); graphicobjs.push(new DisplayObj(new PickupExplodeGFX(), 1)); graphicobjs.push(new DisplayObj(new RepositoryGFX(), 1)); graphicobjs.push(new DisplayObj(new Enemy1GFX(), 1)); graphicobjs.push(new DisplayObj(new Enemy2GFX(), 1)); graphicobjs.push(new DisplayObj(new Enemy3GFX(), 1)); graphicobjs.push(new DisplayObj(new Enemy4GFX(), 1)); graphicobjs.push(new DisplayObj(new Enemy5GFX(), 1)); graphicobjs.push(new DisplayObj(new Enemy6GFX(), 1)); graphicobjs.push(new DisplayObj(new SmartBombExplosionGFX(), 1)); graphicobjs.push(new DisplayObj(new BonusScoreGFX(), 1)); graphicobjs.push(new DisplayObj(new BonusExplodeGFX(), 1)); graphicobjs.push(new DisplayObj(new CollectBar(), 1)); graphicobjs.push(new DisplayObj(new HealthBar(), 1)); AddNumberBitmaps(); } function InitGame(){ levelTimer = 0; currentScore = 0; currentLevel = 0; doSound = true; difficultyLevel = 1; gameplayTable = new Array(); AddLevelDesc(100, 0, 0, 0, 0, 0, 0); AddLevelDesc(0, 100, 0, 0, 0, 0, 0); AddLevelDesc(0, 0, 100, 0, 0, 0, 0); AddLevelDesc(0, 0, 0, 100, 0, 0, 0); AddLevelDesc(0, 0, 0, 0, 100, 0, 0); AddLevelDesc(0, 0, 0, 0, 0, 100, 0); AddLevelDesc(0, 0, 0, 0, 0, 0, 100); AddLevelDesc(50, 50, 0, 0, 0, 0, 0); AddLevelDesc(0, 50, 50, 0, 0, 0, 0); AddLevelDesc(0, 0, 50, 50, 0, 0, 0); AddLevelDesc(0, 0, 0, 50, 50, 0, 0); AddLevelDesc(0, 0, 0, 0, 0, 50, 50); AddLevelDesc(50, 0, 0, 0, 0, 0, 50); AddLevelDesc(33, 33, 34, 0, 0, 0, 0); AddLevelDesc(0, 33, 33, 34, 0, 0, 0); AddLevelDesc(0, 0, 33, 33, 34, 0, 0); AddLevelDesc(0, 0, 0, 33, 33, 34, 0); AddLevelDesc(0, 0, 0, 0, 33, 33, 34); AddLevelDesc(34, 0, 0, 0, 0, 33, 33); AddLevelDesc(33, 34, 0, 0, 0, 0, 33); AddLevelDesc(14, 14, 14, 14, 14, 14, 16); bonusTable = new Array(); bonusTable.push(bonus_HEALTH); bonusTable.push(bonus_EXPLODE); bonusTable.push(bonus_SCORE); } function LevelUp(){ currentLevel++; if (currentLevel >= gameplayTable.length){ currentLevel = (gameplayTable.length - 1); }; InitLevelParameters(); AddMovieClip(0x0100, 0x0100, new LevelUpPage()); } function InitLevelParameters(){ var hardestLevel:Number; var l:Number; hardestLevel = 20; l = currentLevel; if (l > hardestLevel){ l = hardestLevel; }; l = ((1 / hardestLevel) * l); if (difficultyLevel == 0){ numToOpenRepository = ScaleUnitTo(20, 30, l); bonusGenTimeMax = 500; pickupGenTimeMax = 50; enemyGenTimeMax = ScaleUnitTo(400, 200, l); }; if (difficultyLevel == 1){ numToOpenRepository = ScaleUnitTo(30, 40, l); bonusGenTimeMax = 500; pickupGenTimeMax = 60; enemyGenTimeMax = ScaleUnitTo(300, 150, l); }; if (difficultyLevel == 2){ numToOpenRepository = ScaleUnitTo(40, 50, l); bonusGenTimeMax = 500; pickupGenTimeMax = 70; enemyGenTimeMax = ScaleUnitTo(200, 100, l); }; } public function soundOnPressed(event:MouseEvent){ if (doSound == true){ return; }; musicChannel = musicSound.play(0, 999999, musicSoundTransform); doSound = true; } function RunLockout(){ } public function KillAllEnemies(px:Number, py:Number, radius:Number){ var i:int; var go:gameobj; i = 0; while (i < objs.numobjs) { go = objs.objs[i]; if (go.active == true){ if (go.type == gameobj.gotype_ENEMY){ if (GetDistanceBetween(go.xpos, go.ypos, px, py) < radius){ GenerateExplosion(go.xpos, go.ypos, 0); AddScore(go.xpos, go.ypos, 50, 1); go.active = false; }; }; }; i++; }; } public function startPressed(event:MouseEvent){ SetGameState(gameState_LEVEL_PLAY); } function RunGameOver(){ levelTimer = (levelTimer + ftime); if (initedScores == false){ if (levelTimer > 300){ initedScores = true; mochiScores.EnterHighScores(this, currentScore, enterScoreCallback); }; }; } function keyDownListener(event:KeyboardEvent):void{ if (event.keyCode == KEY_LEFT){ leftDown = true; }; if (event.keyCode == KEY_RIGHT){ rightDown = true; }; if (event.keyCode == KEY_SPACE){ spaceDown = true; }; } function calcFrameTime(){ var oldTime:Number; var fps:Number; oldTime = currentTime; currentTime = getTimer(); if (currentTime < oldTime){ oldTime = (currentTime - 100); }; if (currentTime > (oldTime + (100 * 10))){ oldTime = (100 * 10); }; fps = 100; ftime = ((1 / (1000 / fps)) * (currentTime - oldTime)); } function MakeLinksList(){ var i:int; var go:gameobj; i = 0; while (i < objs.numobjs) { go = objs.objs[i]; if (go.active == true){ if (go.type == gameobj.gotype_PICKUP){ if (go.controlMode == 2){ links[go.controlIndex] = go; }; }; }; i++; }; } function ChangeEnemySpeed(vel:Number){ var i:int; var go:gameobj; i = 0; while (i < objs.numobjs) { go = objs.objs[i]; if (go.active == true){ if (go.type == gameobj.gotype_ENEMY){ go.xvel = (go.xvel * vel); go.yvel = (go.yvel * vel); }; }; i++; }; } public function helpPressed(event:MouseEvent){ navigateToURL(new URLRequest("http://www.longanimalsgames.com/Games/Frenziac/FrenziacHelp.html")); } function GetDistanceToPlayer(xpos:Number, ypos:Number):Number{ var xd:*; var yd:*; var dist:*; xd = (xpos - player.xpos); yd = (ypos - player.ypos); dist = Math.sqrt(((xd * xd) + (yd * yd))); return (dist); } function InitLevelComplete(){ } function InitHighScores(){ } function Render(){ backgroundObj.Render(this); objs.Render(); } function InitStage(){ var i:int; i = (this.numChildren - 1); while (i >= 0) { removeChildAt(i); i--; }; addChild(screenB); } public function easyPressed(event:MouseEvent){ difficultyLevel = 0; } function SetGameState(gs:int):void{ gameState = gs; Mouse.show(); switch (gameState){ case gameState_PREGAMEAD: InitPreGameAd(); break; case gameState_TITLE: InitTitle(); break; case gameState_HIGHSCORES: InitHighScores(); break; case gameState_LEVEL_GETREADY: InitLevelGetReady(); break; case gameState_LEVEL_PLAY: InitLevel(); break; case gameState_LEVEL_COMPLETE: InitLevelComplete(); break; case gameState_GAMEOVER: InitGameOver(); break; }; } public function longAnimalsPressed(event:MouseEvent){ navigateToURL(new URLRequest("http://www.longanimalsgames.com")); } function RunLevel(){ UpdateGameplay(); objs.Update(); MakeLinksList(); UpdateLinks(); if (killedTimer == 0){ Collision(); }; Render(); scoretxt.text = currentScore; scoretxt.setTextFormat(tf_small); if (killedTimer == 0){ if (playerHealth < 1){ killedTimer = 50; }; } else { killedTimer = (killedTimer - ftime); if (killedTimer <= 10){ SetGameState(gameState_GAMEOVER); }; }; } function PlayerEnemyCollision(){ var px:*; var py:*; var prad:*; var i:int; var go:gameobj; px = player.xpos; py = player.ypos; prad = 16; i = 0; while (i < objs.numobjs) { go = objs.objs[i]; if (go.active == true){ if (go.type == gameobj.gotype_ENEMY){ if (ObjsCollided(px, py, prad, go.xpos, go.ypos, go.radius) == true){ AddHealth(-1); GenerateExplosion(go.xpos, go.ypos, 0); go.active = false; }; }; }; i++; }; } function AdFinished(){ SetGameState(gameState_TITLE); } function SmartBomb(){ var go1:gameobj; go1 = objs.AddObj(gameobj.gotype_SMARTBOMB, 100, 100, zpos_NORMAL, 0); if (go1 != null){ go1.xpos = player.xpos; go1.ypos = player.ypos; go1.frameVel = 1; go1.yacc = 150; }; } function SplitEnemies(){ var enemyList:Array; var go:gameobj; var i:int; var go1:gameobj; enemyList = new Array(); i = 0; while (i < objs.numobjs) { go = objs.objs[i]; if (go.active == true){ if (go.type == gameobj.gotype_ENEMY){ enemyList.push(go); }; }; i++; }; i = 0; while (i < enemyList.length) { go = enemyList[i]; go1 = objs.AddObj(gameobj.gotype_ENEMY, 100, 100, zpos_NORMAL, 0); if (go1 != null){ SetEnemyInitialVelocity(go1); go1.xpos = (go.xpos + 1); go1.ypos = (go.ypos + 1); }; i++; }; } } }//package
Section 47
//MochiAd (MochiAd) package { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class MochiAd { public function MochiAd(){ super(); } public static function getVersion():String{ return ("2.1"); } public static function showTimedAd(options:Object):void{ MochiAd.showInterLevelAd(options); } public static function _allowDomains(server:String):String{ var hostname:String; hostname = server.split("/")[2].split(":")[0]; Security.allowDomain("*"); Security.allowDomain(hostname); Security.allowInsecureDomain("*"); Security.allowInsecureDomain(hostname); return (hostname); } public static function load(options:Object):MovieClip{ var DEFAULTS:Object; var clip:Object; var depth:Number; var mc:MovieClip; var wh:Array; var lv:URLVariables; var k:String; var server:String; var hostname:String; var lc:LocalConnection; var name:String; var loader:Loader; var f:Function; var g:Function; var req:URLRequest; var v:Object; var options = options; DEFAULTS = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"}; options = MochiAd._parseOptions(options, DEFAULTS); options.swfv = 9; options.mav = MochiAd.getVersion(); clip = options.clip; if (!MochiAd._isNetworkAvailable()){ return (null); }; if (clip._mochiad_loaded){ return (null); }; depth = options.depth; delete options.depth; mc = createEmptyMovieClip(clip, "_mochiad", depth); wh = MochiAd._getRes(options, clip); options.res = ((wh[0] + "x") + wh[1]); options.server = (options.server + options.id); delete options.id; clip._mochiad_loaded = true; if (clip.loaderInfo.loaderURL.indexOf("http") == 0){ options.as3_swf = clip.loaderInfo.loaderURL; }; lv = new URLVariables(); for (k in options) { v = options[k]; if (!(v is Function)){ lv[k] = v; }; }; server = lv.server; delete lv.server; hostname = _allowDomains(server); lc = new LocalConnection(); lc.client = mc; name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_"); lc.allowDomain("*", "localhost"); lc.allowInsecureDomain("*", "localhost"); lc.connect(name); mc.lc = lc; lv.lc = name; lv.st = getTimer(); loader = new Loader(); f = function (ev:Object):void{ mc._mochiad_ctr_failed = true; }; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f); g = function (ev:Object):void{ MochiAd.unload(clip); }; loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g); req = new URLRequest((server + ".swf")); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; loader.load(req); mc.addChild(loader); mc._mochiad_ctr = loader; return (mc); } public static function sendHighScore(options:Object, callbackObj:Object, callbackMethod:Object=null):Boolean{ var lc:MovieClip; lc = MochiAd._loadCommunicator({clip:options.clip, id:options.id}); if (!lc){ return (false); }; lc.doSend(["sendHighScore", options], callbackObj, callbackMethod); return (true); } public static function _parseOptions(options:Object, defaults:Object):Object{ var optcopy:Object; var k:String; var pairs:Array; var i:Number; var kv:Array; optcopy = {}; for (k in defaults) { optcopy[k] = defaults[k]; }; if (options){ for (k in options) { optcopy[k] = options[k]; }; }; options = optcopy.clip.loaderInfo.parameters.mochiad_options; if (options){ pairs = options.split("&"); i = 0; while (i < pairs.length) { kv = pairs[i].split("="); optcopy[unescape(kv[0])] = unescape(kv[1]); i++; }; }; return (optcopy); } public static function _isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function unload(clip:Object):Boolean{ if (((clip.clip) && (clip.clip._mochiad))){ clip = clip.clip; }; if (!clip._mochiad){ return (false); }; if (clip._mochiad.onUnload){ clip._mochiad.onUnload(); }; clip.removeChild(clip._mochiad); delete clip._mochiad_loaded; delete clip._mochiad; return (true); } public static function showInterLevelAd(options:Object):void{ var DEFAULTS:Object; var clip:Object; var ad_msec:Number; var ad_timeout:Number; var fadeout_time:Number; var mc:MovieClip; var wh:Array; var w:Number; var h:Number; var chk:MovieClip; var options = options; DEFAULTS = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{ this.clip.stop(); }, ad_finished:function ():void{ this.clip.play(); }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; ad_msec = 11000; ad_timeout = options.ad_timeout; delete options.ad_timeout; fadeout_time = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ options.ad_finished(); }; wh = MochiAd._getRes(options, clip); w = wh[0]; h = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var p:Number; p = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (p > 0){ this.parent.alpha = (p * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adjustProgress = function (msec:Number):void{ var _chk:Object; _chk = mc._mochiad_wait; _chk.server_control = true; _chk.started = getTimer(); _chk.ad_msec = (msec - 250); }; chk["onEnterFrame"] = function ():void{ var ad_clip:Object; var elapsed:Number; var finished:Boolean; var total:Number; ad_clip = this.parent._mochiad_ctr; elapsed = (getTimer() - this.started); finished = false; if (!chk.showing){ total = ad_clip.loaderInfo.bytesTotal; if ((((total > 0)) || (("number" == "undefined")))){ chk.showing = true; chk.started = getTimer(); } else { if (elapsed > chk.ad_timeout){ finished = true; }; }; }; if ((((elapsed > chk.ad_msec)) || (this.parent._mochiad_ctr_failed))){ finished = true; }; if (finished){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = this.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function _getRes(options:Object, clip:Object):Array{ var b:Object; var w:Number; var h:Number; var xy:Array; b = clip.getBounds(clip.root); w = 0; h = 0; if (typeof(options.res) != "undefined"){ xy = options.res.split("x"); w = parseFloat(xy[0]); h = parseFloat(xy[1]); } else { w = (b.xMax - b.xMin); h = (b.yMax - b.yMin); }; if ((((w == 0)) || ((h == 0)))){ w = clip.stage.stageWidth; h = clip.stage.stageHeight; }; return ([w, h]); } public static function createEmptyMovieClip(parent:Object, name:String, depth:Number):MovieClip{ var mc:MovieClip; mc = new MovieClip(); if (((false) && (depth))){ parent.addChildAt(mc, depth); } else { parent.addChild(mc); }; parent[name] = mc; mc["_name"] = name; return (mc); } public static function _loadCommunicator(options:Object):MovieClip{ var DEFAULTS:Object; var clip:Object; var clipname:String; var server:String; var depth:Number; var mc:MovieClip; var lv:URLVariables; var k:String; var lc:LocalConnection; var name:String; var req:URLRequest; var loader:Loader; var options = options; DEFAULTS = {com_server:"http://x.mochiads.com/com/1/", method:"loadCommunicator", depth:10337, id:"_UNKNOWN_"}; options = MochiAd._parseOptions(options, DEFAULTS); options.swfv = 9; options.mav = MochiAd.getVersion(); clip = options.clip; clipname = ("_mochiad_com_" + options.id); if (!MochiAd._isNetworkAvailable()){ return (null); }; if (clip[clipname]){ return (clip[clipname]); }; server = (options.com_server + options.id); MochiAd._allowDomains(server); delete options.id; delete options.com_server; depth = options.depth; delete options.depth; mc = createEmptyMovieClip(clip, clipname, depth); lv = new URLVariables(); for (k in options) { lv[k] = options[k]; }; lc = new LocalConnection(); lc.client = mc; name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_"); lc.allowDomain("*", "localhost"); lc.allowInsecureDomain("*", "localhost"); lc.connect(name); mc.name = name; mc.lc = lc; lv.lc = name; mc._id = 0; mc._queue = []; mc.rpcResult = function (cb:Object):void{ var cblst:Array; var args:Array; var i:Number; var method:Object; var obj:Object; cb = parseInt(cb.toString()); cblst = mc._callbacks[cb]; if (typeof(cblst) == "undefined"){ return; }; delete mc._callbacks[cb]; args = []; i = 2; while (i < cblst.length) { args.push(cblst[i]); i++; }; i = 1; while (i < arguments.length) { args.push(arguments[i]); i++; }; method = cblst[1]; obj = cblst[0]; if (((obj) && ((typeof(method) == "string")))){ method = obj[method]; }; if (typeof(method) == "function"){ method.apply(obj, args); }; }; mc._didConnect = function (endpoint:String):void{ var q:Array; var ds:Function; var i:Number; var item:Array; mc._endpoint = endpoint; q = mc._queue; delete mc._queue; ds = mc.doSend; i = 0; while (i < q.length) { item = q[i]; ds.apply(this, item); i++; }; }; mc.doSend = function (args:Array, cbobj:Object, cbfn:Object):void{ var id:Number; var slc:LocalConnection; var qargs:Array; var i:Number; if (mc._endpoint == null){ qargs = []; i = 0; while (i < arguments.length) { qargs.push(arguments[i]); i++; }; mc._queue.push(qargs); return; }; mc._id = (mc._id + 1); id = mc._id; mc._callbacks[id] = [cbobj, ((cbfn) || (cbobj))]; slc = new LocalConnection(); slc.send(mc._endpoint, "rpc", id, args); }; mc._callbacks = {}; mc._callbacks[0] = [mc, "_didConnect"]; lv.st = getTimer(); req = new URLRequest((server + ".swf")); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; loader = new Loader(); loader.load(req); mc.addChild(loader); mc._mochiad_com = loader; return (mc); } public static function showPreGameAd(options:Object):void{ var DEFAULTS:Object; var clip:Object; var ad_msec:Number; var ad_timeout:Number; var fadeout_time:Number; var mc:MovieClip; var wh:Array; var w:Number; var h:Number; var chk:MovieClip; var bar:MovieClip; var bar_color:Number; var bar_background:Number; var bar_outline:Number; var backing_mc:MovieClip; var backing:Object; var inside_mc:MovieClip; var inside:Object; var outline_mc:MovieClip; var outline:Object; var complete:Boolean; var unloaded:Boolean; var f:Function; var r:MovieClip; var options = options; DEFAULTS = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, ad_started:function ():void{ this.clip.stop(); }, ad_finished:function ():void{ this.clip.play(); }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; ad_msec = 11000; ad_timeout = options.ad_timeout; delete options.ad_timeout; fadeout_time = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ var fn:Function; fn = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); }; wh = MochiAd._getRes(options, clip); w = wh[0]; h = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.x = (w * -0.5); chk.y = (h * -0.5); bar = createEmptyMovieClip(chk, "_mochiad_bar", 4); bar.x = 10; bar.y = (h - 20); bar_color = options.color; delete options.color; bar_background = options.background; delete options.background; bar_outline = options.outline; delete options.outline; backing_mc = createEmptyMovieClip(bar, "_outline", 1); backing = backing_mc.graphics; backing.beginFill(bar_background); backing.moveTo(0, 0); backing.lineTo((w - 20), 0); backing.lineTo((w - 20), 10); backing.lineTo(0, 10); backing.lineTo(0, 0); backing.endFill(); inside_mc = createEmptyMovieClip(bar, "_inside", 2); inside = inside_mc.graphics; inside.beginFill(bar_color); inside.moveTo(0, 0); inside.lineTo((w - 20), 0); inside.lineTo((w - 20), 10); inside.lineTo(0, 10); inside.lineTo(0, 0); inside.endFill(); inside_mc.scaleX = 0; outline_mc = createEmptyMovieClip(bar, "_outline", 3); outline = outline_mc.graphics; outline.lineStyle(0, bar_outline, 100); outline.moveTo(0, 0); outline.lineTo((w - 20), 0); outline.lineTo((w - 20), 10); outline.lineTo(0, 10); outline.lineTo(0, 0); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.last_pcnt = 0; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var p:Number; p = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (p > 0){ this.parent.alpha = (p * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; complete = false; unloaded = false; f = function (e:Event):void{ complete = true; if (unloaded){ MochiAd.unload(clip); }; }; clip.loaderInfo.addEventListener(Event.COMPLETE, f); if ((clip.root is MovieClip)){ r = (clip.root as MovieClip); if (r.framesLoaded >= r.totalFrames){ complete = true; }; }; mc.unloadAd = function ():void{ unloaded = true; if (complete){ MochiAd.unload(clip); }; }; mc.adjustProgress = function (msec:Number):void{ var _chk:Object; _chk = mc._mochiad_wait; _chk.server_control = true; _chk.started = getTimer(); _chk.ad_msec = msec; }; chk["onEnterFrame"] = function ():void{ var _clip:Object; var ad_clip:Object; var elapsed:Number; var finished:Boolean; var clip_total:Number; var clip_loaded:Number; var clip_pcnt:Number; var ad_pcnt:Number; var _inside:Object; var pcnt:Number; var total:Number; if (!this.parent.parent){ delete this["onEnterFrame"]; return; }; _clip = this.parent.parent.root; ad_clip = this.parent._mochiad_ctr; elapsed = (getTimer() - this.started); finished = false; clip_total = _clip.loaderInfo.bytesTotal; clip_loaded = _clip.loaderInfo.bytesLoaded; clip_pcnt = ((100 * clip_loaded) / clip_total); ad_pcnt = ((100 * elapsed) / chk.ad_msec); _inside = this._mochiad_bar._inside; pcnt = Math.min(100, Math.min(((clip_pcnt) || (0)), ad_pcnt)); pcnt = Math.max(this.last_pcnt, pcnt); this.last_pcnt = pcnt; _inside.scaleX = (pcnt * 0.01); if (!chk.showing){ total = ad_clip.loaderInfo.bytesTotal; if ((((total > 0)) || (("number" == "undefined")))){ chk.showing = true; chk.started = getTimer(); } else { if (elapsed > chk.ad_timeout){ finished = true; }; }; }; if ((((elapsed > chk.ad_msec)) || (this.parent._mochiad_ctr_failed))){ finished = true; }; if (((complete) && (finished))){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = chk.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function showPreloaderAd(options:Object):void{ MochiAd.showPreGameAd(options); } public static function fetchHighScores(options:Object, callbackObj:Object, callbackMethod:Object=null):Boolean{ var lc:MovieClip; lc = MochiAd._loadCommunicator({clip:options.clip, id:options.id}); if (!lc){ return (false); }; lc.doSend(["fetchHighScores", options], callbackObj, callbackMethod); return (true); } public static function doOnEnterFrame(mc:MovieClip):void{ var f:Function; var mc = mc; f = function (ev:Object):void{ if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){ mc.onEnterFrame(); } else { mc.removeEventListener(Event.ENTER_FRAME, f); }; }; mc.addEventListener(Event.ENTER_FRAME, f); } } }//package
Section 48
//Music (Music) package { import flash.media.*; public dynamic class Music extends Sound { public function Music(){ super(); } } }//package
Section 49
//PickupExplodeGFX (PickupExplodeGFX) package { import flash.display.*; public dynamic class PickupExplodeGFX extends MovieClip { public function PickupExplodeGFX(){ super(); } } }//package
Section 50
//PickupGFX (PickupGFX) package { import flash.display.*; public dynamic class PickupGFX extends MovieClip { public function PickupGFX(){ super(); } } }//package
Section 51
//PlayerGFX (PlayerGFX) package { import flash.display.*; public dynamic class PlayerGFX extends MovieClip { public function PlayerGFX(){ super(); } } }//package
Section 52
//RadioButton_disabledIcon (RadioButton_disabledIcon) package { import flash.display.*; public dynamic class RadioButton_disabledIcon extends MovieClip { public function RadioButton_disabledIcon(){ super(); } } }//package
Section 53
//RadioButton_downIcon (RadioButton_downIcon) package { import flash.display.*; public dynamic class RadioButton_downIcon extends MovieClip { public function RadioButton_downIcon(){ super(); } } }//package
Section 54
//RadioButton_overIcon (RadioButton_overIcon) package { import flash.display.*; public dynamic class RadioButton_overIcon extends MovieClip { public function RadioButton_overIcon(){ super(); } } }//package
Section 55
//RadioButton_selectedDisabledIcon (RadioButton_selectedDisabledIcon) package { import flash.display.*; public dynamic class RadioButton_selectedDisabledIcon extends MovieClip { public function RadioButton_selectedDisabledIcon(){ super(); } } }//package
Section 56
//RadioButton_selectedDownIcon (RadioButton_selectedDownIcon) package { import flash.display.*; public dynamic class RadioButton_selectedDownIcon extends MovieClip { public function RadioButton_selectedDownIcon(){ super(); } } }//package
Section 57
//RadioButton_selectedOverIcon (RadioButton_selectedOverIcon) package { import flash.display.*; public dynamic class RadioButton_selectedOverIcon extends MovieClip { public function RadioButton_selectedOverIcon(){ super(); } } }//package
Section 58
//RadioButton_selectedUpIcon (RadioButton_selectedUpIcon) package { import flash.display.*; public dynamic class RadioButton_selectedUpIcon extends MovieClip { public function RadioButton_selectedUpIcon(){ super(); } } }//package
Section 59
//RadioButton_upIcon (RadioButton_upIcon) package { import flash.display.*; public dynamic class RadioButton_upIcon extends MovieClip { public function RadioButton_upIcon(){ super(); } } }//package
Section 60
//RepositoryGFX (RepositoryGFX) package { import flash.display.*; public dynamic class RepositoryGFX extends MovieClip { public function RepositoryGFX(){ super(); } } }//package
Section 61
//sfx1 (sfx1) package { import flash.media.*; public dynamic class sfx1 extends Sound { public function sfx1(){ super(); } } }//package
Section 62
//sfx2 (sfx2) package { import flash.media.*; public dynamic class sfx2 extends Sound { public function sfx2(){ super(); } } }//package
Section 63
//sfx3 (sfx3) package { import flash.media.*; public dynamic class sfx3 extends Sound { public function sfx3(){ super(); } } }//package
Section 64
//SmartBombExplosionGFX (SmartBombExplosionGFX) package { import flash.display.*; public dynamic class SmartBombExplosionGFX extends MovieClip { public function SmartBombExplosionGFX(){ super(); } } }//package
Section 65
//Tile1GFX (Tile1GFX) package { import flash.display.*; public dynamic class Tile1GFX extends BitmapData { public function Tile1GFX(w:Number, h:Number){ super(w, h); } } }//package
Section 66
//TimesGFX (TimesGFX) package { import flash.display.*; public dynamic class TimesGFX extends MovieClip { public function TimesGFX(){ super(); } } }//package
Section 67
//Title (Title) package { import flash.display.*; public dynamic class Title extends MovieClip { public function Title(){ super(); } } }//package
Section 68
//TitlePage (TitlePage) package { import fl.controls.*; import flash.display.*; public dynamic class TitlePage extends MovieClip { public var buttonSoundOff:RadioButton; public var buttonHighScores:ButtonHighScores; public var buttonHard:RadioButton; public var buttonLongAnimals:SimpleButton; public var buttonStart:ButtonStart; public var buttonEasy:RadioButton; public var buttonMedium:RadioButton; public var buttonHelp:SimpleButton; public var buttonSoundOn:RadioButton; public function TitlePage(){ super(); } } }//package

Library Items

Symbol 1 Sound {sfx3}
Symbol 2 Sound {sfx2}
Symbol 3 Sound {sfx1}
Symbol 4 Sound {Music}
Symbol 5 Bitmap {Tile1GFX}
Symbol 6 BitmapUsed by:7
Symbol 7 GraphicUses:6Used by:8
Symbol 8 MovieClipUses:7Used by:9
Symbol 9 MovieClip {EnemyGFX}Uses:8
Symbol 10 BitmapUsed by:11
Symbol 11 GraphicUses:10Used by:12
Symbol 12 MovieClip {PlayerGFX}Uses:11
Symbol 13 BitmapUsed by:14
Symbol 14 GraphicUses:13Used by:15
Symbol 15 MovieClipUses:14Used by:16
Symbol 16 MovieClip {PickupGFX}Uses:15
Symbol 17 GraphicUsed by:18
Symbol 18 MovieClip {TimesGFX}Uses:17
Symbol 19 GraphicUsed by:20
Symbol 20 MovieClipUses:19Used by:21
Symbol 21 MovieClip {RepositoryGFX}Uses:20
Symbol 22 BitmapUsed by:23
Symbol 23 GraphicUses:22Used by:24
Symbol 24 MovieClip {BackgroundTileGFX}Uses:23
Symbol 25 GraphicUsed by:26
Symbol 26 MovieClip {Explode1GFX}Uses:25
Symbol 27 GraphicUsed by:28
Symbol 28 MovieClip {Explode3GFX}Uses:27
Symbol 29 GraphicUsed by:30
Symbol 30 MovieClip {Explode2GFX}Uses:29
Symbol 31 BitmapUsed by:32
Symbol 32 GraphicUses:31Used by:33
Symbol 33 MovieClipUses:32Used by:34
Symbol 34 MovieClip {Enemy1GFX}Uses:33
Symbol 35 BitmapUsed by:36
Symbol 36 GraphicUses:35Used by:37
Symbol 37 MovieClipUses:36Used by:38
Symbol 38 MovieClip {Enemy2GFX}Uses:37
Symbol 39 BitmapUsed by:40
Symbol 40 GraphicUses:39Used by:41
Symbol 41 MovieClipUses:40Used by:42
Symbol 42 MovieClip {Enemy3GFX}Uses:41
Symbol 43 BitmapUsed by:44
Symbol 44 GraphicUses:43Used by:45
Symbol 45 MovieClipUses:44Used by:46
Symbol 46 MovieClip {Enemy4GFX}Uses:45
Symbol 47 GraphicUsed by:48
Symbol 48 MovieClipUses:47Used by:67
Symbol 49 MovieClip {fl.core.ComponentShim}Used by:67
Symbol 50 GraphicUsed by:51
Symbol 51 MovieClip {RadioButton_upIcon}Uses:50Used by:67
Symbol 52 GraphicUsed by:53 62
Symbol 53 MovieClip {RadioButton_overIcon}Uses:52Used by:67
Symbol 54 GraphicUsed by:55 63
Symbol 55 MovieClip {RadioButton_downIcon}Uses:54Used by:67
Symbol 56 GraphicUsed by:57 64
Symbol 57 MovieClip {RadioButton_disabledIcon}Uses:56Used by:67
Symbol 58 GraphicUsed by:61
Symbol 59 GraphicUsed by:60
Symbol 60 MovieClipUses:59Used by:61 62 63 64
Symbol 61 MovieClip {RadioButton_selectedUpIcon}Uses:58 60Used by:67
Symbol 62 MovieClip {RadioButton_selectedOverIcon}Uses:52 60Used by:67
Symbol 63 MovieClip {RadioButton_selectedDownIcon}Uses:54 60Used by:67
Symbol 64 MovieClip {RadioButton_selectedDisabledIcon}Uses:56 60Used by:67
Symbol 65 GraphicUsed by:66
Symbol 66 MovieClip {focusRectSkin}Uses:65Used by:67
Symbol 67 MovieClip {fl.controls.RadioButton}Uses:48 49 51 53 55 57 61 62 63 64 66Used by:81
Symbol 68 BitmapUsed by:69
Symbol 69 GraphicUses:68Used by:70
Symbol 70 MovieClip {Title}Uses:69Used by:81
Symbol 71 FontUsed by:72 73 75 77 79 82 92
Symbol 72 TextUses:71Used by:74
Symbol 73 TextUses:71Used by:74
Symbol 74 Button {ButtonStart}Uses:72 73Used by:81
Symbol 75 TextUses:71Used by:76
Symbol 76 Button {ButtonHighScores}Uses:75Used by:81
Symbol 77 TextUses:71Used by:78
Symbol 78 ButtonUses:77Used by:81
Symbol 79 TextUses:71Used by:80
Symbol 80 ButtonUses:79Used by:81
Symbol 81 MovieClip {TitlePage}Uses:74 76 70 78 67 80
Symbol 82 TextUses:71Used by:83
Symbol 83 MovieClipUses:82Used by:84
Symbol 84 MovieClip {LevelUpPage}Uses:83
Symbol 85 BitmapUsed by:86
Symbol 86 GraphicUses:85Used by:87
Symbol 87 MovieClipUses:86Used by:88
Symbol 88 MovieClip {Enemy5GFX}Uses:87
Symbol 89 GraphicUsed by:90 127
Symbol 90 MovieClipUses:89Used by:91
Symbol 91 MovieClip {BeenHitOverlay}Uses:90
Symbol 92 TextUses:71Used by:93
Symbol 93 MovieClipUses:92Used by:94
Symbol 94 MovieClip {GameOverPage}Uses:93
Symbol 95 BitmapUsed by:96
Symbol 96 GraphicUses:95Used by:97
Symbol 97 MovieClipUses:96Used by:98
Symbol 98 MovieClip {Enemy6GFX}Uses:97
Symbol 99 GraphicUsed by:100
Symbol 100 MovieClipUses:99Used by:101
Symbol 101 MovieClip {SmartBombExplosionGFX}Uses:100
Symbol 102 BitmapUsed by:103
Symbol 103 GraphicUses:102Used by:104
Symbol 104 MovieClipUses:103Used by:107 110 113
Symbol 105 BitmapUsed by:106
Symbol 106 GraphicUses:105Used by:107
Symbol 107 MovieClip {BonusHealthGFX}Uses:104 106
Symbol 108 BitmapUsed by:109
Symbol 109 GraphicUses:108Used by:110
Symbol 110 MovieClip {BonusExplodeGFX}Uses:104 109
Symbol 111 BitmapUsed by:112
Symbol 112 GraphicUses:111Used by:113
Symbol 113 MovieClip {BonusScoreGFX}Uses:104 112
Symbol 114 MovieClip {Enemy9GFX}
Symbol 115 BitmapUsed by:116
Symbol 116 GraphicUses:115Used by:121
Symbol 117 ShapeTweeningUsed by:121
Symbol 118 BitmapUsed by:119
Symbol 119 GraphicUses:118Used by:121
Symbol 120 GraphicUsed by:121
Symbol 121 MovieClip {HealthBar}Uses:116 117 119 120
Symbol 122 BitmapUsed by:123
Symbol 123 GraphicUses:122Used by:127
Symbol 124 ShapeTweeningUsed by:127
Symbol 125 BitmapUsed by:126
Symbol 126 GraphicUses:125Used by:127
Symbol 127 MovieClip {CollectBar}Uses:123 124 126 89
Symbol 128 BitmapUsed by:129
Symbol 129 GraphicUses:128Used by:130
Symbol 130 MovieClipUses:129Used by:131
Symbol 131 MovieClip {PickupExplodeGFX}Uses:130

Instance Names

"buttonStart"Symbol 81 MovieClip {TitlePage} Frame 1Symbol 74 Button {ButtonStart}
"buttonHighScores"Symbol 81 MovieClip {TitlePage} Frame 1Symbol 76 Button {ButtonHighScores}
"buttonHelp"Symbol 81 MovieClip {TitlePage} Frame 1Symbol 78 Button
"buttonEasy"Symbol 81 MovieClip {TitlePage} Frame 1Symbol 67 MovieClip {fl.controls.RadioButton}
"buttonMedium"Symbol 81 MovieClip {TitlePage} Frame 1Symbol 67 MovieClip {fl.controls.RadioButton}
"buttonHard"Symbol 81 MovieClip {TitlePage} Frame 1Symbol 67 MovieClip {fl.controls.RadioButton}
"buttonSoundOn"Symbol 81 MovieClip {TitlePage} Frame 1Symbol 67 MovieClip {fl.controls.RadioButton}
"buttonSoundOff"Symbol 81 MovieClip {TitlePage} Frame 1Symbol 67 MovieClip {fl.controls.RadioButton}
"buttonLongAnimals"Symbol 81 MovieClip {TitlePage} Frame 1Symbol 80 Button

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata not present, AS3.
Protect (24)Timeline Frame 10 bytes ""
EnableDebugger2 (64)Timeline Frame 131 bytes "u.$1$bh$Ud8HYRqjgluYB1gTPWbUD/."




http://swfchan.com/7/30470/info.shtml
Created: 19/5 -2019 08:20:42 Last modified: 19/5 -2019 08:20:42 Server time: 10/05 -2024 12:51:04