/src/com/cw/view/buttons/NextButton.as
ActionScript | 132 lines | 79 code | 0 blank | 53 comment | 1 complexity | 9c5bee00a243c48c3df2d83430b529a2 MD5 | raw file
- ////////////////////////////////////////////////////////////////////////////////
- // Christian Worley Development & Design
- // Copyright 2012 Christian Worley Development & Design
- // All Rights Reserved.
- ////////////////////////////////////////////////////////////////////////////////
- //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- // Package Declaration
- //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- package com.cw.view.buttons{
- /**
- * :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- * class description: NextButton
- * language version: ActionScript 3.0
- * player version: Flash 10.0
- * author: christian
- * created: Jan 11, 2012
- * TODO:
- * :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- */
- //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- // Imports
- //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- import com.cw.control.observer.IObserver;
- import com.cw.control.observer.ISubject;
- import com.cw.view.tweenStates.ButtonStates;
- import com.cw.view.tweenStates.ButtonOnOffStates;
- import flash.display.Sprite;
- import flash.events.Event;
- import flash.events.MouseEvent;
- //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- // Class characteristics
- //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- public class NextButton implements IButton, ISubject, IObserver{
- //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- // Private Variables
- //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- private var observer:ISubject;
- private var theButton:Sprite
- private var buttonStates:ButtonStates = new ButtonStates();
- private var buttonOnOffStates:ButtonOnOffStates = new ButtonOnOffStates();
- private var theNextButton:bttn_next = new bttn_next();
- private var theButtonState:String;
- //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- // Constructor
- //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- public function NextButton(){}
- //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- // Public Interfaces
- //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- public function setButton (theButtonState:String):void {
- this.theButtonState = theButtonState;
- buttonBuild();
- }
- public function getButton ():Sprite {
- return theButton
- }
- /**
- * InvokedObserver interface, reference update, and subscription with
- * updated observer and adding subscription with addObserver(this).
- */
- public function addObserver (observer:ISubject):void {
- this.observer = observer;
- observer.addObserver(this);
- }
- /**
- * notify InvokedObservers
- */
- public function notifyObservers (infoObject:String):void {
- observer.notifyObservers(infoObject);
- }
- /**
- * remove an observer refrence from InvokedObserver
- */
- public function removeObserver (observer:ISubject):void {
- observer.removeObserver(this);
- }
- /**
- * receive notification from InvokedObserver
- */
- public function update (infoObject:String):void {
- if(hasOwnProperty(infoObject)) {
- this[infoObject]();
- }
- }
- /**
- * button on/off states via observer update
- * @param infoObject
- */
- public function theNextStateOn ():void {
- buttonOnOffStates.buttonStatesInterface(theNextButton.iconTop, 'OnState');
- }
- public function theNextStateOff ():void {
- buttonOnOffStates.buttonStatesInterface(theNextButton.iconTop, 'OffState');
- }
- //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- // Private Methods
- //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- private function buttonBuild ():void {
- theButton = new Sprite();
- theButton.addChild(theNextButton);
- addButtonEvents();
- theNextStateOff ();
- }
- private function addButtonEvents ():void {
- theNextButton.buttonMode = true;
- theNextButton.doubleClickEnabled = true;
- theNextButton.addEventListener(MouseEvent.MOUSE_UP, placementTargetUp);
- theNextButton.addEventListener(MouseEvent.MOUSE_DOWN, placementTargetDown);
- theNextButton.addEventListener(MouseEvent.MOUSE_OUT, placementTargetOut);
- theNextButton.addEventListener(MouseEvent.MOUSE_OVER, placementTargetOver);
- }
- private function placementTargetOver (overEvent:Event):void {
- buttonStates.buttonStatesInterface(theNextButton.background, 'OverState');
- buttonStates.buttonStatesInterface(theNextButton.iconBottom, 'OverState');
- }
- private function placementTargetOut (outEvent:Event):void {
- buttonStates.buttonStatesInterface(theNextButton.background, 'OutState');
- buttonStates.buttonStatesInterface(theNextButton.iconBottom, 'OutState');
- buttonOnOffStates.buttonStatesInterface(theNextButton.iconMiddle, 'OffState');
- }
- private function placementTargetDown (downEvent:Event):void {
- buttonStates.buttonStatesInterface(theNextButton.background, 'DownState');
- buttonStates.buttonStatesInterface(theNextButton.iconBottom, 'DownState');
- buttonOnOffStates.buttonStatesInterface(theNextButton.iconMiddle, 'OnState');
- }
- private function placementTargetUp (upEvent:Event):void {
- buttonStates.buttonStatesInterface(theNextButton.background, 'UpState');
- buttonOnOffStates.buttonStatesInterface(theNextButton.iconMiddle, 'OffState');
- notifyObservers(theButtonState);
- }
- }
- }