Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Помогите с построением графика в AS3 (http://www.flasher.ru/forum/showthread.php?t=181752)

Vic 01.07.2012 21:25

Помогите с построением графика в AS3
 
Вложений: 1
Строю график из данных xml в виде прямоугольников.
Создал два класса . Вроде все получается. Данные я получил. Но вывод никак не могу сделать графически. Получается вот такое:
http://www.flasher.ru/forum/attachme...1&d=1341159401

Выкладываю коды классов

Код AS3:

package coms
{
        import flash.events.Event;
        import flash.net.URLLoader;
        import flash.net.URLRequest;
        import flash.display.Sprite;
        import flash.events.EventDispatcher;
 
        public class Graphic extends EventDispatcher
        {
                private var urlLoader:URLLoader;
                private var data:XML;
                public static const LOADS:String = "LOADS";
 
 
                public function Graphic()
                {
                        urlLoader = new URLLoader;
                        urlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
                }
 
                public function load(path:String):void
                {
                        urlLoader.load(new URLRequest(path));
                }
 
                private function xmlLoaded(e:Event):void
                {
                        //trace(urlLoader.data);
                        data = XML(e.target.data);
                        dispatchEvent(new Event(LOADS));
                }
 
                public function getResult():XML
                {
                return data;       
 
                }
 
 
        }
 
}


и второй
Код AS3:

package coms
{
        import flash.display.Sprite;
        import flash.display.Graphics;
        import flash.display.Shape;
        import flash.events.Event;
        import flash.text.engine.GraphicElement;
 
        public class ViewGraphics extends Sprite
        {
                private var dataXML:Graphic = new Graphic();
                private var sp:Sprite = new Sprite();
                private var date:XMLList;
                private var time:XMLList;
                private var open:XMLList;
                private var close:XMLList;
                private var high:XMLList;
                private var low:XMLList;
                private var data:XMLList;
 
 
                public function ViewGraphics():void
                {
                        dataXML.load("xml/XML.xml");
                        dataXML.addEventListener(Graphic.LOADS, onLoads);
                }       
 
                public function onLoads(e:Event):void
                {       
                        viewXml(dataXML.getResult());
                }
 
                private function viewXml(vars:XML):void
                {
                        data = vars.Records.Record;
                        open = data.Open;
                        close = data.Close;
                        trace(vars.Records.Record.length());
 
                        for (var i:int = 0; i < data.length(); i++)
                        {
 
                                        var sp:Sprite = new Sprite();
                                        addChild(sp);
                                        sp.x = 8*Number([i]);
                                        var g:Shape = new Shape();
                                        g.graphics.lineStyle(1, 0x000000);
                                        g.graphics.beginFill(0x00FF33,1);
                                        g.graphics.moveTo(5, Number(open[i]));
                                        g.graphics.lineTo(5, Number(close[i]));
                                        g.graphics.lineTo(10, Number(close[i]));
                                        g.graphics.lineTo(10, Number(open[i]));
                                        g.graphics.lineTo(5, Number(open[i]));
                                        g.graphics.endFill();
                                        sp.addChild(g);
                                        trace("open = " + open[i] + " || close = " + close[i]);
 
                        }
                }
        }
}

Может я где-то ошибку допустил, исправьте пожалуйста. Или может как то можно самой осью координат управлять. Или кто-то с чем то подобным сталкивался. Кто что знает.


Часовой пояс GMT +4, время: 23:02.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.