Adobe flex -finance-esque charting example

Adobe flex -finance-esque charting example

Postby haretu » Sat Mar 26, 2011 10:37 am

Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*"
    creationComplete="chart1.loadData('data/sample1.csv'); chart2.loadData('data/sample2.csv');"
    backgroundGradientColors="[#f3f8fc, #b8cbe2]"
    viewSourceURL="srcview/index.html">
   
    <mx:Canvas width="100%" height="100%">
         <ChartComponent id="chart1" width="100%" height="100%"
             horizontalAxisPlacement="top"
             gapBetweenCharts="90"
             maxVAxis="9" />
   
        <ChartComponent id="chart2" width="100%" height="100%"
            areaColor="{new SolidColor(0xff0000, 0.5)}" areaStroke="{new Stroke(0xff0000, 2)}"
            horizontalAxisPlacement="bottom" verticalAxisPlacement="right"
            gapAtBottom="90" 
            maxVAxis="9" />
    </mx:Canvas>
   
    </mx:Application>

Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:flexlib="http://code.google.com/p/flexlib/">
   
    <mx:HBox width="100%" height="100%">
       
        <mx:CartesianChart id="bigChart"
            width="100%" height="100%"
            gutterLeft="50" gutterRight="50" gutterBottom="60" gutterTop="60"
            showDataTips="true"
            dataProvider="{mainData}" >
       
            <mx:horizontalAxis>
                <mx:CategoryAxis categoryField="x"/>
            </mx:horizontalAxis>
           
            <mx:horizontalAxisRenderer>
                <mx:AxisRenderer placement="{horizontalAxisPlacement}" />
            </mx:horizontalAxisRenderer>
           
            <mx:verticalAxis>
                <mx:LinearAxis maximum="{maxVAxis}" />
            </mx:verticalAxis>
           
            <mx:verticalAxisRenderer>
                <mx:AxisRenderer placement="{verticalAxisPlacement}"  />
            </mx:verticalAxisRenderer>
           
            <mx:series>
                <mx:AreaSeries name="y" yField="y"
                    areaFill="{areaColor}"  areaStroke="{areaStroke}" />
            </mx:series>
           
            <mx:annotationElements>
                <mx:Canvas width="100%" height="100%"
                    buttonMode="true" mouseDown="setMouseDown(bigChart)" />
            </mx:annotationElements>
           
        </mx:CartesianChart>
    </mx:HBox>
   
    <mx:Spacer height="{gapBetweenCharts}" />
   
    <mx:VBox verticalGap="0" width="100%" verticalScrollPolicy="off" horizontalAlign="left" >
       
        <mx:CartesianChart id="smallChart"
            width="100%" height="100"
            dataProvider="{chartData}"
            showDataTips="true" >
           
            <mx:horizontalAxis>
                <mx:CategoryAxis categoryField="x"/>
            </mx:horizontalAxis>
           
            <mx:horizontalAxisRenderer>
                <mx:AxisRenderer visible="false" />
            </mx:horizontalAxisRenderer>
           
            <mx:verticalAxis>
                <mx:LinearAxis />
            </mx:verticalAxis>
           
            <mx:verticalAxisRenderer>
                <mx:AxisRenderer visible="false" />
            </mx:verticalAxisRenderer>
           
            <mx:series>
                <mx:AreaSeries name="y" yField="y"
                    areaStroke="{areaStroke}" areaFill="{areaColor}" />
            </mx:series>
           
            <mx:annotationElements>
                <mx:HDividedBox id="overlayCanvas" width="100%" alpha="1" dividerAffordance="5" liveDragging="true" horizontalGap="10" verticalGap="0" horizontalScrollPolicy="off"
                                dividerDrag="updateBoundariesFromDivider(event)" dividerSkin="{blankDividerClass}"
                                mouseOver="overlayCanvas.setStyle('dividerSkin', dividerClass);" mouseOut="overlayCanvas.setStyle('dividerSkin', blankDividerClass);">
                    <mx:Canvas id="leftBox" height="100%"
                               width="{(overlayCanvas.width / chartData.length) * leftBoundary}"
                               backgroundAlpha="0.4" backgroundColor="#EEEEEE" borderThickness="1" borderColor="#999999" borderStyle="solid" />
                    <mx:Canvas id="visibleBox" width="100%" height="100%" buttonMode="true" mouseDown="setMouseDown(smallChart)" />
                    <mx:Canvas id="rightBox" height="100%"
                               width="{(overlayCanvas.width / chartData.length) * (chartData.length - rightBoundary)}"
                               backgroundAlpha="0.4" backgroundColor="#EEEEEE" borderThickness="1" borderColor="#999999" borderStyle="solid"/>
                </mx:HDividedBox>
            </mx:annotationElements>
           
        </mx:CartesianChart>
       
        <mx:Spacer height="-40" />
       
        <mx:HBox horizontalGap="0">
            <mx:Spacer width="24" />
           
            <flexlib:HSlider id="slider" width="{overlayCanvas.width + 12}"  height="25"
                        trackHighlightSkin="flexlib.skins.SliderThumbHighlightSkin"
                        trackSkin="EmptySkin"
                        allowTrackClick="true" allowThumbOverlap="false"
                        liveDragging="true" change="updateBoundariesFromSlider()"
                        showDataTip="true" dataTipPlacement="bottom" dataTipOffset="3"
                        showTrackHighlight="true"
                        thumbCount="2" snapInterval="1"
                        values="{[leftBoundary, rightBoundary]}"
                        minimum="0" maximum="{chartData.length - 1}"
                        />
        </mx:HBox>
                       
         <mx:Spacer height="{gapAtBottom}" />
    </mx:VBox>
   
    <mx:Script>
        <![CDATA[
            import mx.rpc.events.ResultEvent;
            import mx.rpc.http.HTTPService;
            import mx.managers.SystemManager;
            import mx.events.ResizeEvent;
            import mx.graphics.Stroke;
            import mx.graphics.SolidColor;
            import mx.collections.ArrayCollection;
            import mx.events.DividerEvent;
            import mx.managers.SystemManager;
           
            [Embed(source="img/divider.png")] [Bindable] public var dividerClass:Class;
            [Embed(source="img/blank.png")] [Bindable] public var blankDividerClass:Class;
           
           
            private var DATA_LENGTH:Number = 500;
            private var LEFT_START:Number = 150;
            private var RIGHT_START:Number = 250;
            [Bindable] public var chartData:ArrayCollection;
            [Bindable] public var mainData:ArrayCollection;
           
            [Bindable] private var leftBoundary:Number;
            [Bindable] private var rightBoundary:Number;
           
            private var staticLeftBoundary:Number;
            private var staticRightBoundary:Number;
           
            public var smallDrag:Boolean = false;
            public var bigDrag:Boolean = false;
            public var mouseXRef:Number;
           
            [Bindable]
            public var maxVAxis:Number = 100;
           
            /* Some customizable colors for the ara fill and stroke. */
            [Bindable]
            public var areaColor:SolidColor = new SolidColor(0x0033CC, 0.5);
           
            [Bindable]
            public var areaStroke:Stroke = new Stroke(0x0033CC, 2);
           
            /* Two spacer heights, these are used to determine the layout of the
             * small chart versus the big chart.
             */
            [Bindable]
            public var gapBetweenCharts:Number = 0;
           
            [Bindable]
            public var gapAtBottom:Number = 0;
           
            /* Some customizable variables to affect the layout of the axes */
            [Bindable]
            public var horizontalAxisPlacement:String = "top";
           
            [Bindable]
            public var verticalAxisPlacement:String = "left";
           
           
            public function loadData(url:String):void {
                var req:HTTPService = new HTTPService();
                req.resultFormat = "text";
               
                req.url = url;
               
                req.addEventListener(ResultEvent.RESULT, parseData);
               
                req.send();
            }
           
            /**
             * We're loading a CSV file, so all our data points are separated by newlines.
             * We split the result, the loop over and create the dataprovider for the chart.
             * The y field is the data point value, the x field is the index of the data point.
             */
            private function parseData(event:ResultEvent):void {
                var data:String = event.result as String;
               
                var array:Array = data.split("\r");
               
                var ac:ArrayCollection = new ArrayCollection();
               
                for(var i:int=0; i<array.length; i++) {
                    ac.addItem({x:i, y:array[i]});   
                }
               
                chartData = ac;
                mainData = new ArrayCollection(chartData.source);
                leftBoundary = LEFT_START;
                rightBoundary = RIGHT_START;
                updateBoundariesFromSlider();
            }
           
           
            private function updateBoundariesFromSlider():void
            {
                leftBoundary = slider.values[0];
                rightBoundary = slider.values[1];
                updateMainData();
            }
           
            private function updateBoundariesFromDivider(event:DividerEvent):void
            {
                leftBoundary = Math.abs(HDividedBox(event.target).getChildAt(0).width / (event.target.width / chartData.length));
                rightBoundary = Math.abs(chartData.length - (HDividedBox(event.target).getChildAt(2).width / (event.target.width / chartData.length)));
                updateMainData();
            }
           
            private function updateMainData():void
            {
                mainData.source = chartData.source.slice(leftBoundary, rightBoundary)
            }

            private function setMouseDown(theChart:CartesianChart):void
            {
                mouseXRef = this.mouseX;
                staticLeftBoundary = leftBoundary;
                staticRightBoundary = rightBoundary;
                if(theChart == bigChart) bigDrag = true;
                if(theChart == smallChart) smallDrag = true;
                this.systemManager.addEventListener(MouseEvent.MOUSE_MOVE, moveChart);
                this.systemManager.addEventListener(MouseEvent.MOUSE_UP, stopDragging);
            }
           
            private function stopDragging(event:MouseEvent):void
            {
                smallDrag = false;
                bigDrag = false;
                this.systemManager.removeEventListener(MouseEvent.MOUSE_MOVE, moveChart);
                this.systemManager.removeEventListener(MouseEvent.MOUSE_UP, stopDragging);
            }
           
            private function moveChart(event:MouseEvent):void
            {
                if(bigDrag)
                {
                    leftBoundary = staticLeftBoundary + (mouseXRef - this.mouseX) / (bigChart.width / mainData.length);
                    rightBoundary = staticRightBoundary + (mouseXRef - this.mouseX) / (bigChart.width / mainData.length);
                }
                else if(smallDrag)
                {
                    leftBoundary = staticLeftBoundary - (mouseXRef - this.mouseX) / (smallChart.width / chartData.length);
                    rightBoundary = staticRightBoundary - (mouseXRef - this.mouseX) / (smallChart.width / chartData.length);
                }
            }
        ]]>
    </mx:Script>

</mx:VBox>


sample1.csv
Code: Select all
5
5
5
5
5
5
5
5.4
5.5
5.5
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.7
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5
4.8
4.8
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.8
5.2
5.3
5.3
5.3
5.3
5.3
5.3
5.2
4.8
4.8
4.8
4.6
4.6
4.6
4.6
4.6
4.6
4.6
4.7
5
5.1
5.1
5.1
5.1
4.9
4.8
4.8
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
5.1
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.1
4.8
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.7
4.9
5
5
5
5
5
5.2
5.3
5
4.8
4.8
4.8
4.9
5.2
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.3
5.4
5.4
5.4
5.4
5.4
5.4
5.5
5.8
5.9
5.9
5.9
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
6.1
6.6
6.9
7
7
6.3
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.3
5.1
5
5
5
5
5
5
5
5
5
5.2
5.4
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.3
4.9
4.5
4.5
4.5
4.5
4.5
4.5
4.5
4.5
4.5
4.5
4.5
4.6
5.3
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.7
6.1
6.2
6.3
6.1
6.1
6.1
6
6
6
6
6
6
6
6
6.3
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.4
6
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.8
6
6
6
6
6
6
6
6
6
6
6
6
6
6
5.8
5.7
5.7
5.7
5.7
5.6
5.5
5.5
5.5
5.5
5.5
5.2
5.2
5.2
5
5
4.9
4.9
5.1
5.5
5.6
5.6
5.6
5.6
5.6
5.6
5.6
5.6
5.6
5.6
5.6
5.6
5.6
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.8
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.5
5.6
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.6
5.6
5.6
5.6
5.6
6
6
6
6
6
6
6.1
6.6
6.7
6.7
6.7
6.7
6.5
6.4
6.2
6.1
6.1
6.1
6.1
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
6.1
6.1
6.2
6.2
6.3
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.1
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.8
5.8
5.6
5.3
5.3
5.3
5.3
5
4.9
4.9
5
5.1
5.4
5.6
5.6
5.3
5.1
5
5
5
5
5
5
5
5
4.9
4.8
4.8
4.8
4.8
4.8
4.8
4.8
4.8
4.8
4.8
4.8
4.8
4.8
4.8
4.8
4.8
4.8
5.1
5.1
5.3
5.3
5.3
5.3
5.3
6
6.5
6.5
6.7
6.9
7.2
7.2
7.2
7.2
7.1
6.5
6.3
6.1
5.6
5.3
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.4
5.3
5.2
5.2
5.2
5.2
5.2
5.2
5.2
5.2
5.2
5.2
5.2
5.2
5.2
5.2
5.2
5.2
5.2
5.5
6.3
6.4
6.4
6.4
6.5
6.6
6.9
7.3
7.4
7.4
7.5
7.6
7.8
7.9
7.9
7.9
7.9
7.9
7.9
7.9
7.9
7.9
7.9
7.9
7.9
7.9
7.9
7.8
6.8
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.2
6
6.1
6.1
6.1
6.1
6.1
6.1
6.1
6.1
6.1
6.3
6.8
6.8
6.8
6.8
6.8
6.8
6.8
6.8
6.8
6.8
6.8
6.8
6.8
6.6
6
5.1
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5.1
5.4
5.3
5.3
5.3
5.1
5
5
5
5
5.6
5.7
5.7
5.7
5.7
5.7
5.7
5.7
5.8
5.8

sample2.csv
Code: Select all
5
5
5
5.2
6.5
6.9
7
7
7
7
7
7
7
7.1
8
8.3
8.3
8.3
8.3
8.3
8.3
8.3
8.3
7.9
6.8
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.5
6.6
7.4
7.7
7.7
7.7
7.7
7.7
7.7
7.7
8.4
8.4
8.4
8.4
8.4
8.4
8.2
8
6.3
6
6
6
5.9
6.1
6.9
6.9
6.9
6.9
6.9
6.9
6.9
6.9
6.9
6.9
6.9
6.9
6.9
6
5.8
5.8
5.8
5.8
5.6
5.2
5
5
5
5
5
5
4.5
4.2
4.2
4
4
4
4
4
4
4
4
4
5.8
6.4
6.4
6.3
6.3
6.9
7.2
7.1
6.1
5.3
5.3
5.7
4.8
4
4
4
4
4
4
4
4
4
4
4.2
5
6.8
7.5
7.6
7.6
7.6
7.6
7.6
7.5
6.7
6
6
6
6
6
6
6
5.9
5.1
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6.1
6.4
6.4
6.4
6.4
6.4
6.4
6.1
6
6
6
6
6
6
6
6
6
6
6
6
5.9
5.2
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5.4
5.8
5.4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5.9
6.8
7.5
7.5
7.5
7.5
7.5
7.5
7.5
7.5
7.5
7.5
8.3
8.7
8.5
8.5
8.5
8.5
8.5
8.5
8.4
7.6
7.4
7.4
7.4
7.4
7.4
7.4
7.4
7.4
7.4
7.4
7.5
8.6
8.6
8.6
8.6
8.6
8.6
8.6
8.6
8.6
8.6
8.6
8.6
8.6
8.6
8.6
8.6
8.6
8.6
8.6
8.6
8.6
8.6
8.6
7.7
7
7
7
7
7
7
7
7
7
7
7
6.9
6.9
6.9
6.9
6.9
6.9
6.9
6.9
7
7
7
7
7
7
7
7
7
7
7
7
7
6.3
6
6
6
6
6
6
6
6
6
6
6
5.8
5.1
4.9
4.4
4
3.9
3.9
3.9
3.9
3.9
3.9
3.9
3.9
3.9
3.9
3.9
3.9
3.9
3.9
3.9
3.9
3.8
3.8
3.8
3.8
3.9
6
7.3
7.4
7.4
7.4
7.4
7.4
7.4
8.1
8.2
8.2
8.2
8.2
8.2
8.2
8.2
8.2
8.2
8.2
8.2
8.2
8.2
8.2
8.2
8.2
8.2
8.2
8.2
8.2
8.2
8.2
6.9
6.5
6.5
6.5
6.5
6.5
6.2
6
6
6
6
6
6
6
5.7
5.1
4.8
4.5
4.5
4.5
4.5
6.5
8
8
8
8
8
7.9
6.9
6.7
6.7
6.7
6.7
6.7
6.7
6.7
6.7
6.7
6.1
6
6
6
6
6
6
6
6
6
6
5.9
5.1
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
4.8
3.8
3.7
3.5
3.5
3.5
3.5
3.5
4.3
5
5
5
5
5
5
5
5
5
4.8
5.2
6
6
6
5.5
5
5
5
5
5
5
5
5
4.9
3.9
3.7
3.7
3.7
3.8
7.2
7.9
7.9
7.9
7.9
8.5
8.6
8.6
8.6
8.6
8.6
8.6
8.6
8.1
7.5
7.5
7.1
6.9
6.9
6.9
6.8
6.3
5.9
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5.3
7
7.1
7.1
7.1
7.1
7.2
8.3
8.3
8.3
8.3
8.3
8.3
8.3
8.3
8.3
8.3
8.3
8.3
8.3
8.3
8.3
8.1
7
6.9
6.9
6.9
6.9
6.9
6.9
6.9
6.9
6.5
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.9
5.7
5.1
5
5
5
5
5
5
5
5
5
5
5
5
5.4
6
6.1
6.1
6.1
6.1
6.1
6.1
6.1
6.1
6.1
6.1
6.1
6.1
6.1
6.1
6.1
6.1
6.1
6.1
6.1
6.1
6.1
6.1
6.1
6.1
5.4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
4.9
5.3
6.4
6.6
6.6
6.6
6.6
6.6
7.2
7.4
8.3
8.5
8.5
8.6
9
9
9
9
9
9
9
9
9
9
8.9
8.2
6.3
5.4
4.2
3.7
3.7
3.6
3.4
3.4
3.4
3.4
3.4
3.4
3.3
3.3
3.3
3.3
4.6
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5.4
5.8
5.9
5.9
6.2
7.1
7.1
7.1
7.1
7.1
7.4
8.1
8.1
8.1
8.2
8.2
8.2
8.2
8.2
8.2
7.9
7.4
7.4
7.8
8.8
8.9
8.9
8.9
8.9
8.9
8.9
8.9
8.9
8.8
8.6
7.4
6.3
5.6
4.7
3.9
3.7
3.7
3.7
3.7
3.7
3.7
3.7
3.7
3.8
4.2
4.3
4.3
4.3
4.3
4.3
4.3
4.3
4.2
3.5
3.8
5
5.1
5.3
6.2
6.2
6.2
6.2
6.2
6.2
6.2
6.2
6.2
6.1
5.3
5
5
5
5
4.8
4.2
4.2
4.2
4.2
4.2
4.2
4.2
4
4
4
4
4
4
4
4.5
5
5
5
5
5
5
5
5
5
5
5
5.9
8.3
8.2
6.9
6.1
6.1
6.4
6.6
6.6
6.6
6.6
6.6
6.6
6.6
6.6
6.6
6.6
6.5
6.1
6
6
6
6
6
6
6
6
6
6


emptyskin.as
Code: Select all
package
{
    import mx.skins.Border;

    public class EmptySkin extends Border
    {
    }
}
Attachments
Screen shot 2011-03-26 at 10.36.46 AM.png
Screen shot 2011-03-26 at 10.36.46 AM.png (64.6 KiB) Viewed 697 times
haretu
 
Posts: 132
Joined: Sat Jan 08, 2011 9:56 pm

Return to Adobe FLEX Flash

Who is online

Users browsing this forum: No registered users and 1 guest

cron