Hatena::Groupactionscript

ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記

2008年08月03日 日曜日

折れ線グラフを作りたい(2)線を引いてみた

| 23:06 | 折れ線グラフを作りたい(2)線を引いてみた - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク - 折れ線グラフを作りたい(2)線を引いてみた - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 折れ線グラフを作りたい(2)線を引いてみた - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 のブックマークコメント

現状

  • それらしくなってきた
  • 目盛りというか罫線がついて、折れ線があるとそれっぽい

課題

  • きれいに表示したい
  • 罫線を点線にしたい
  • メモリの数値を表示したい
  • XMLの値をもっと自由に!

f:id:d4-1977:20080803230545j:image

ソース

package{
	import flash.display.*;
	import flash.text.*;
	import flash.filters.*;
	import flash.events.*;
	import flash.xml.*;
	import flash.net.*;

	public class GraphTest extends Sprite{
		//
		public var canvas:Sprite = new Sprite();
		public var gridWideMax:int = 30;
		public var gridPear:int    = 30;

		//
		public var xmlPath:String;
		public var xmlData:XML;
		public var loader:URLLoader = new URLLoader();

		//
		public var Points:Array;

		//
		public var maxHeight:int = 300;

		public function GraphTest(){
			//xmlPath = getFlashvars();
			xmlPath = "./Analytics.xml";
			var req:URLRequest = new URLRequest(xmlPath);

			setupGrid();

			loader.load(req);
			loader.addEventListener(Event.COMPLETE, getXML);
		}

		public function setupGrid():void{
			canvas.graphics.lineStyle(1,0xcccccc);
			for(var i:int=0; gridPear>i; i++){
				var ww:int = gridPear * i;
				// 横線
				canvas.graphics.moveTo(0,ww);
				canvas.graphics.lineTo(500,ww);
				// 縦線
				canvas.graphics.moveTo(ww,0);
				canvas.graphics.lineTo(ww,300);
				//canvas.graphics.moveTo(0,0);
			}
			addChild(canvas);
		}

		// flashvarsの読み込み
		public function getFlashvars():String {
			var flashvars:Object = LoaderInfo(loaderInfo).parameters;
			var flashvarsStr:String = new String();
			flashvarsStr = flashvars["xml"];
			return flashvarsStr;
		}

		public function getXML(event:Event):void {
			xmlData          = new XML(loader.data);
			var tf:TextField = new TextField();
			for(var i:int = 0;xmlData.Point.length() > i; i++){
				//tf.appendText(xmlData.Point[i].Label + "\n");
				Point(
					int(xmlData.Point[i].Value),
					i,
					xmlData.Point.length(),
					xmlData.Point[i].Label
				);
var x:int = gridPear * (i+1);
var y:int = maxHeight - int(xmlData.Point[i].Value);

var x2:int = gridPear * (i+2);
var y2:int = maxHeight - int(xmlData.Point[i+1].Value);

canvas.graphics.lineStyle(1,0xcc0000);
canvas.graphics.moveTo(x,y);
canvas.graphics.lineTo(x2,y2);

			}
			//tf.mouseWheelEnabled = true;
			//addChild(tf);
		}

		public function Point(height:int, now:int, max:int, info:String):void {
			var p1:Sprite = new Sprite();
	
			p1.graphics.beginFill(0xcc0000);
			p1.graphics.drawCircle(0,0,5);
			p1.graphics.endFill();
		
			p1.x = gridPear * (now + 1);
			p1.y = maxHeight - height;
		
			p1.addEventListener("mouseOut", function(event:MouseEvent):void {	
				p1.scaleX = 1;
				p1.scaleY = 1;
			});
			
			p1.addEventListener("mouseOver", function(event:MouseEvent):void {	
				p1.scaleX = 2;
				p1.scaleY = 2;

				var infomation:TextField = new TextField();
				infomation.appendText(info);
				p1.addChild(infomation);
			});
			
			addChild(p1);
	
		}

	}
}

DenisDenis2013/03/15 23:12If only there were more clever ppeloe like you!

ihuagkihuagk2013/03/18 22:377gcCzL <a href="http://cbksfiqgudpb.com/">cbksfiqgudpb</a>