ActionScript 3.0 Design Patterns

(Chris Devlin) #1
Example: Working with Different Data Displays | 327

Example 8-28. DataDesign.as


package
{
//Main program
import flash.display.Sprite;
import fl.controls.Button;
//Text Fields for Labels
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFieldType;
//Events
import flash.events.MouseEvent;
import flash.events.Event;


public class DataDesign extends Sprite
{
private var dataEntry:Array=[];
private var quarterGraph:QuarterGraph;
private var quarterBar:QuarterBar;
private var quarterList:QuarterList;
private var dataSub:ConcreteSubject;
private var listDisplay:ConcreteObserver;
private var barChart:ConcreteObserver;
private var lineGraph:ConcreteObserver;
private var xpos:uint=250;
private var ypos:uint=250;
private var dt1:Number,dt2:Number,dt3:Number,dt4:Number;
private var dataBtn:Button;
private var barFlag:Boolean=true;


public function DataDesign ( )
{
//Set up concrete subjects and observers
dataSub=new ConcreteSubject( );
listDisplay=new ConcreteObserver( );
barChart=new ConcreteObserver( );
lineGraph=new ConcreteObserver( );
dataSub.subscribeObserver (listDisplay);
dataSub.subscribeObserver (barChart);
dataSub.subscribeObserver (lineGraph);


doText ( );
doDataEntry ( );
doButton ( );
dataBtn.addEventListener (MouseEvent.CLICK,showData);


}
//Data Output to Stage
function showData (ev:Event):void
{
if (barFlag)
{
barFlag=false;

Free download pdf