Flex日期和时间股票图表(HOLC) - 需要帮助

时间:2010-08-28 03:28:57

标签: actionscript flex3 charts flex-charting

我试图在Flex 3.5 Stock HOLC(高,开,低,收盘)图表中显示日期和时间。此数据显示但格式不正确... 问题:  1.时间不合时宜......他们没有适当的时间排队......(是因为他们不是军事时间)?  2.日期(天)没有显示在底部标签上,是否有办法实现这一目标?  3.在24小时内,时间表现出很大的差距......当数据不存在时,情况总是如此吗?或者,我可以禁用“禁用日期”可能的特定时间段

有什么建议吗?

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
  <mx:Script><![CDATA[
     import mx.collections.ArrayCollection
    [Bindable]
     public var TICKER:ArrayCollection = new ArrayCollection([
        {date:"1/8/05 8:30:00 AM",open:42.57,high:43.08,low:42.08,close:42.75},
        {date:"1/8/05 9:00:00 AM",open:42.89,high:43.5,low:42.61,close:43.19},
        {date:"1/8/05 9:30:00 AM",open:43.19,high:43.31,low:42.77,close:43.22},
        {date:"1/8/05 10:00:00 AM",open:42.89,high:43,low:42.29,close:42.71},
        {date:"1/8/05 10:30:00 AM",open:42.49,high:43.36,low:42.02,close:42.99},
        {date:"1/8/05 11:00:00 AM",open:43,high:43.25,low:42.61,close:42.65},
        {date:"1/8/05 11:30:00 AM",open:42.93,high:43.89,low:42.91,close:43.82},
        {date:"1/8/05 12:00:00 PM",open:44,high:44.39,low:43.31,close:43.38},
        {date:"1/8/05 12:30:00 PM",open:43.39,high:44.12,low:43.25,close:44},
        {date:"1/8/05 1:00:00 PM",open:43.46,high:46.22,low:43.36,close:46.1},
        {date:"1/8/05 1:30:00 PM",open:43.46,high:46.22,low:43.36,close:46.1},
        {date:"1/8/05 2:00:00 PM",open:43.46,high:46.22,low:43.36,close:46.1},
        {date:"1/8/05 2:30:00 PM",open:43.46,high:46.22,low:43.36,close:46.1},
        {date:"1/8/05 3:00:00 PM",open:43.46,high:46.22,low:43.36,close:46.1},
        {date:"2/8/05 8:30:00 AM",open:42.57,high:43.08,low:42.08,close:42.75},
        {date:"2/8/05 9:00:00 AM",open:42.89,high:43.5,low:42.61,close:43.19},
        {date:"2/8/05 9:30:00 AM",open:43.19,high:43.31,low:42.77,close:43.22},
        {date:"2/8/05 10:00:00 AM",open:42.89,high:43,low:42.29,close:42.71},
        {date:"2/8/05 10:30:00 AM",open:42.49,high:43.36,low:42.02,close:42.99},
        {date:"2/8/05 11:00:00 AM",open:43,high:43.25,low:42.61,close:42.65},
        {date:"2/8/05 11:30:00 AM",open:42.93,high:43.89,low:42.91,close:43.82},
        {date:"2/8/05 12:00:00 PM",open:44,high:44.39,low:43.31,close:43.38},
        {date:"2/8/05 12:30:00 PM",open:43.39,high:44.12,low:43.25,close:44},
        {date:"2/8/05 1:00:00 PM",open:43.46,high:46.22,low:43.36,close:46.1},
        {date:"2/8/05 1:30:00 PM",open:43.46,high:46.22,low:43.36,close:46.1},
        {date:"2/8/05 2:00:00 PM",open:43.46,high:46.22,low:43.36,close:46.1},
        {date:"2/8/05 2:30:00 PM",open:43.46,high:46.22,low:43.36,close:46.1},
        {date:"2/8/05 3:00:00 PM",open:43.46,high:46.22,low:43.36,close:46.1}
     ]);
  ]]></mx:Script>

  <mx:Panel title="HighLowOpenClose Chart">
     <mx:HLOCChart id="myChart" 
        dataProvider="{TICKER}" 
        showDataTips="true"
     >
        <mx:verticalAxis>
           <mx:LinearAxis minimum="30" maximum="50"/>
        </mx:verticalAxis>
        <mx:series>
           <mx:HLOCSeries
                dataProvider="{TICKER}"
                openField="open"
                highField="high"
                lowField="low"
                closeField="close"
                displayName="TICKER"
                xField="date"  >
           </mx:HLOCSeries>
        </mx:series>

            <mx:horizontalAxis>
                <mx:DateTimeAxis 
                    parseFunction="{myParseFunction}"   
                    id="dt1"
                    disabledDays="[0,1]"
                    dataUnits="hours"
                    alignLabelsToUnits="true"
                    labelUnits="hours" />
            </mx:horizontalAxis>

            <mx:horizontalAxisRenderers>
                <mx:AxisRenderer
                    id="dt1Rnd" 
                    showLabels="true" 
                    axis="{dt1}"  
                    visible="true"
                    minWidth="1"  />
            </mx:horizontalAxisRenderers>         

     </mx:HLOCChart>
     <mx:Legend dataProvider="{myChart}"/>
  </mx:Panel>
  <mx:Script>
    <![CDATA[
    public function myParseFunction(s:String):Date {
        // Get an array of Strings from the 
        // comma-separated String passed in.
        var a:Array = s.split(/:|\/|\s/);
        trace("String a : " + a.toString());
        // Trace out year, month, and day values.
        // To create a Date object, you pass "YYYY,MM,DD", 
        // where MM is zero-based, to the Date() constructor.
        var newDate:Date = new Date(a[2],a[1],a[0],a[3],a[4]);
        return newDate;
        }
    ]]>
  </mx:Script>
 </mx:Application>

1 个答案:

答案 0 :(得分:0)

  1. 不,日期很好,不需要那种格式。
  2. 检查代码http://pastebin.com/9Y443NFv
  3. 是的,请使用disabledRanges
  4. 你也可以在这段代码中找到有趣的东西: http://www.meutzner.com/blog/attachments/360/srcview/index.html

    此致 尤金