| <?xml version="1.0" encoding="utf-8"?> |
| <!-- |
| |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| |
| --> |
| <!-- Christophe Coenraets, http://coenraets.org --> |
| <s:SkinnableContainer xmlns:fx="http://ns.adobe.com/mxml/2009" |
| xmlns:s="library://ns.adobe.com/flex/spark" width="100%" height="163" |
| backgroundColor="#F0F0F0" |
| creationComplete="completeHandler()" |
| resize="redraw()"> |
| |
| <fx:Script> |
| <![CDATA[ |
| |
| protected var _data:Array; |
| |
| protected var min:Number; |
| [Bindable] protected var max:Number; |
| |
| protected function completeHandler():void |
| { |
| data = [ |
| 80236, 85639, 82364, 72369, 69523, 85632, 86352, 82562, 87523, 89658, 96853, 106256, |
| 112045, 100258, 112584, 86352, 86523, 108532, 110253, 120145, 116325, 114856, 110256, 111857, |
| 112852, 115632, 128632, 121741, 92365, 95638, 132800, 128963, 125698, 112587, 121856, 126874, |
| 131569, 97563, 98563, 100235, 110523, 119536, 121532, 117563, 125963, 139523, 131856, 138972, |
| 125639, 103698, 130856, 147523, 110263, 125698, 145962, 138653, 131568, 111258, 125693, 161984 |
| ]; |
| |
| } |
| |
| public function set data(data:Array):void |
| { |
| _data = data; |
| min = data[0]; |
| max = data[0]; |
| for (var i:int=1; i<data.length; i++) |
| { |
| if (data[i]<min) min = data[i]; |
| if (data[i]>max) max = data[i]; |
| } |
| redraw(); |
| } |
| |
| public function redraw():void |
| { |
| if (!data) return; |
| |
| var pathData:String=""; |
| |
| var xPos:Number; |
| var yPos:Number; |
| for (var i:int=0; i<data.length; i++) |
| { |
| yPos = height - (data[i] - min) / (max - min) * height; |
| xPos = width / 11 * i; |
| pathData += (pathData == ""?"M ":" L ") + xPos + " " + yPos; |
| } |
| path.data = pathData; |
| } |
| |
| public function get data():Array |
| { |
| return _data; |
| } |
| |
| ]]> |
| </fx:Script> |
| |
| <s:Line left="0" right="0" top="40"> |
| <s:stroke> |
| <s:SolidColorStroke color="#DCDCDC"/> |
| </s:stroke> |
| </s:Line> |
| |
| <s:Line left="0" right="0" top="81"> |
| <s:stroke> |
| <s:SolidColorStroke color="#DCDCDC"/> |
| </s:stroke> |
| </s:Line> |
| |
| <s:Line left="0" right="0" top="122"> |
| <s:stroke> |
| <s:SolidColorStroke color="#DCDCDC"/> |
| </s:stroke> |
| </s:Line> |
| |
| <s:Line top="0" bottom="0" left="{width/2}"> |
| <s:stroke> |
| <s:SolidColorStroke color="#DCDCDC"/> |
| </s:stroke> |
| </s:Line> |
| <s:Line top="0" bottom="0" left="{width/4}"> |
| <s:stroke> |
| <s:SolidColorStroke color="#DCDCDC"/> |
| </s:stroke> |
| </s:Line> |
| <s:Line top="0" bottom="0" right="{width/4}"> |
| <s:stroke> |
| <s:SolidColorStroke color="#DCDCDC"/> |
| </s:stroke> |
| </s:Line> |
| |
| <s:Path id="path" width="100%" height="100%"> |
| <s:stroke> |
| <s:SolidColorStroke weight="1" color="#FF5900" /> |
| </s:stroke> |
| </s:Path> |
| |
| </s:SkinnableContainer> |