自作ラインチャートw
forked from textPad (diff: 191)
ActionScript3 source code
/**
* Copyright YAZUMA ( http://wonderfl.net/user/YAZUMA )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/sSJM
*/
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.text.TextField;
public class Extra1 extends Sprite {
private var tf : TextField = new TextField();
private var data : Array = [10, 15, 20, 0];
public function Extra1(){
addChild(tf);
tf.width = 300;
var LF : LineChart = new LineChart(300, 200, data);
LF.x = 100;
LF.y = 100;
addChild(LF);
addEventListener(Event.ENTER_FRAME, IconMove);
data.push(25);
LF.Change_Data(data);
}
private function IconMove(event:Event) : void {
tf.text = "グローバルx座標:" + mouseX
+ "\nグローバルy座標:" + mouseY;
}
}
}
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.Event;
import flash.text.TextField;
class LineChart extends Sprite {
private var max_tf : TextField = new TextField();
private var min_tf : TextField = new TextField();
private var time_tf : TextField = new TextField();
private var data : Array = [];
private var Chart_width:Number;
private var Chart_height:Number;
private var max:Number = 0;
private var min:Number = 0;
private var s1:Sprite = new Sprite;
function LineChart(_width:Number, _height:Number, _data:Array){
this.data = _data;
Chart_width = _width;
Chart_height = _height;
min_tf.y = _height - (_height / 10);
addChild(max_tf);
addChild(min_tf);
max_tf.width = 300;
graphics.lineStyle(0,0x777777);
graphics.beginFill(0xe1e1e1);
graphics.drawRect(0,0,_width,_height);
graphics.endFill();
Draw();
}
private function MaxMin():void{
for(var i:int = 0;i < data.length;i++){
if(max < data[i])max = data[i];
if(min > data[i])min = data[i];
}
max_tf.text = ""+max;
min_tf.text = ""+min;
max_tf.x = 0 - (max_tf.length * 9);
min_tf.x = 0 - (min_tf.length * 9);
}
private function Draw():void{
MaxMin();
for(var i:int = 0; i < data.length - 1; i++){
var x:Number = Chart_width / (data.length - 1) * i;
var next_x:Number = Chart_width / (data.length - 1) * (i+1);
var y:Number = Chart_height / (max - min) * data[i];
var next_y:Number = Chart_height / (max - min) * data[i+1];
s1.graphics.lineStyle(2, 0x9acd32);
s1.graphics.moveTo(x, y);
s1.graphics.lineTo(next_x, next_y);
addChild(s1);
}
}
public function Change_Data(_data:Array):void{
data = _data;
s1.graphics.clear();
max = 0;
min = 0;
Draw();
}
}
