Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 弹性图表,columnWidthRatio不适用于柱形图表的直线轴_Flash_Apache Flex_Actionscript 3_Flex Charting - Fatal编程技术网

Flash 弹性图表,columnWidthRatio不适用于柱形图表的直线轴

Flash 弹性图表,columnWidthRatio不适用于柱形图表的直线轴,flash,apache-flex,actionscript-3,flex-charting,Flash,Apache Flex,Actionscript 3,Flex Charting,如果使用LinearAxis,则columnChart的列显示得太窄,即使尝试columnWidthRatio=0.95 <mx:Script> <![CDATA[ import mx.charts.chartClasses.IAxis; private function linearAxis_labelFunc(item:Object, prevValue:Object, axis:IAxis):Str

如果使用LinearAxis,则columnChart的列显示得太窄,即使尝试columnWidthRatio=0.95

    <mx:Script>
        <![CDATA[
            import mx.charts.chartClasses.IAxis;

            private function linearAxis_labelFunc(item:Object, prevValue:Object, axis:IAxis):String {
                return numberFormatter.format(item);
            }
        ]]>
    </mx:Script>

    <mx:NumberFormatter id="numberFormatter" precision="3" />

    <mx:ArrayCollection id="arrColl">
        <mx:source>
            <mx:Array>
                <mx:Object temp="10" count="500" />
                <mx:Object temp="30" count="300"  />
                <mx:Object temp="40" count="100"  />
                <mx:Object temp="70" count="700"  />
                <mx:Object temp="80" count="200"  />
            </mx:Array>
        </mx:source>
    </mx:ArrayCollection>

    <mx:ApplicationControlBar dock="true">
        <mx:Label text="columnWidthRatio:" />
        <mx:HSlider id="slider"
                    minimum="0.1"
                    maximum="0.9"
                    value="0.1"
                    liveDragging="true"
                    snapInterval="0.1"
                    tickInterval="0.1" />
    </mx:ApplicationControlBar>

    <mx:ColumnChart id="columnChart"
                    showDataTips="true"
                    dataProvider="{arrColl}"
                    columnWidthRatio="{slider.value}"
                    width="100%"
                    height="100%">

        <mx:horizontalAxis>
            <mx:LinearAxis baseAtZero="false"
                           minimum="0"
                           maximum="100"
                           interval="20"
                           minorInterval="10"
                           labelFunction="linearAxis_labelFunc" />
        </mx:horizontalAxis>

        <mx:verticalAxis>
            <mx:LinearAxis baseAtZero="false"
                           minimum="100"
                           maximum="1000"
                           labelFunction="linearAxis_labelFunc" />
        </mx:verticalAxis>


        <mx:series>
            <mx:ColumnSeries id="columnSeries"
                             xField="temp"
                             yField="count"
                             displayName="temp" />
        </mx:series>

        <mx:seriesFilters>
            <mx:Array />
        </mx:seriesFilters>

    </mx:ColumnChart>

</mx:Application>
对于类别轴,这很好 谁能告诉我我做错了什么

    <mx:Script>
        <![CDATA[
            import mx.charts.chartClasses.IAxis;

            private function linearAxis_labelFunc(item:Object, prevValue:Object, axis:IAxis):String {
                return numberFormatter.format(item);
            }
        ]]>
    </mx:Script>

    <mx:NumberFormatter id="numberFormatter" precision="3" />

    <mx:ArrayCollection id="arrColl">
        <mx:source>
            <mx:Array>
                <mx:Object temp="10" count="500" />
                <mx:Object temp="30" count="300"  />
                <mx:Object temp="40" count="100"  />
                <mx:Object temp="70" count="700"  />
                <mx:Object temp="80" count="200"  />
            </mx:Array>
        </mx:source>
    </mx:ArrayCollection>

    <mx:ApplicationControlBar dock="true">
        <mx:Label text="columnWidthRatio:" />
        <mx:HSlider id="slider"
                    minimum="0.1"
                    maximum="0.9"
                    value="0.1"
                    liveDragging="true"
                    snapInterval="0.1"
                    tickInterval="0.1" />
    </mx:ApplicationControlBar>

    <mx:ColumnChart id="columnChart"
                    showDataTips="true"
                    dataProvider="{arrColl}"
                    columnWidthRatio="{slider.value}"
                    width="100%"
                    height="100%">

        <mx:horizontalAxis>
            <mx:LinearAxis baseAtZero="false"
                           minimum="0"
                           maximum="100"
                           interval="20"
                           minorInterval="10"
                           labelFunction="linearAxis_labelFunc" />
        </mx:horizontalAxis>

        <mx:verticalAxis>
            <mx:LinearAxis baseAtZero="false"
                           minimum="100"
                           maximum="1000"
                           labelFunction="linearAxis_labelFunc" />
        </mx:verticalAxis>


        <mx:series>
            <mx:ColumnSeries id="columnSeries"
                             xField="temp"
                             yField="count"
                             displayName="temp" />
        </mx:series>

        <mx:seriesFilters>
            <mx:Array />
        </mx:seriesFilters>

    </mx:ColumnChart>

</mx:Application>
我只想增加这个图表上的列宽

    <mx:Script>
        <![CDATA[
            import mx.charts.chartClasses.IAxis;

            private function linearAxis_labelFunc(item:Object, prevValue:Object, axis:IAxis):String {
                return numberFormatter.format(item);
            }
        ]]>
    </mx:Script>

    <mx:NumberFormatter id="numberFormatter" precision="3" />

    <mx:ArrayCollection id="arrColl">
        <mx:source>
            <mx:Array>
                <mx:Object temp="10" count="500" />
                <mx:Object temp="30" count="300"  />
                <mx:Object temp="40" count="100"  />
                <mx:Object temp="70" count="700"  />
                <mx:Object temp="80" count="200"  />
            </mx:Array>
        </mx:source>
    </mx:ArrayCollection>

    <mx:ApplicationControlBar dock="true">
        <mx:Label text="columnWidthRatio:" />
        <mx:HSlider id="slider"
                    minimum="0.1"
                    maximum="0.9"
                    value="0.1"
                    liveDragging="true"
                    snapInterval="0.1"
                    tickInterval="0.1" />
    </mx:ApplicationControlBar>

    <mx:ColumnChart id="columnChart"
                    showDataTips="true"
                    dataProvider="{arrColl}"
                    columnWidthRatio="{slider.value}"
                    width="100%"
                    height="100%">

        <mx:horizontalAxis>
            <mx:LinearAxis baseAtZero="false"
                           minimum="0"
                           maximum="100"
                           interval="20"
                           minorInterval="10"
                           labelFunction="linearAxis_labelFunc" />
        </mx:horizontalAxis>

        <mx:verticalAxis>
            <mx:LinearAxis baseAtZero="false"
                           minimum="100"
                           maximum="1000"
                           labelFunction="linearAxis_labelFunc" />
        </mx:verticalAxis>


        <mx:series>
            <mx:ColumnSeries id="columnSeries"
                             xField="temp"
                             yField="count"
                             displayName="temp" />
        </mx:series>

        <mx:seriesFilters>
            <mx:Array />
        </mx:seriesFilters>

    </mx:ColumnChart>

</mx:Application>
复制问题的示例:

    <mx:Script>
        <![CDATA[
            import mx.charts.chartClasses.IAxis;

            private function linearAxis_labelFunc(item:Object, prevValue:Object, axis:IAxis):String {
                return numberFormatter.format(item);
            }
        ]]>
    </mx:Script>

    <mx:NumberFormatter id="numberFormatter" precision="3" />

    <mx:ArrayCollection id="arrColl">
        <mx:source>
            <mx:Array>
                <mx:Object temp="10" count="500" />
                <mx:Object temp="30" count="300"  />
                <mx:Object temp="40" count="100"  />
                <mx:Object temp="70" count="700"  />
                <mx:Object temp="80" count="200"  />
            </mx:Array>
        </mx:source>
    </mx:ArrayCollection>

    <mx:ApplicationControlBar dock="true">
        <mx:Label text="columnWidthRatio:" />
        <mx:HSlider id="slider"
                    minimum="0.1"
                    maximum="0.9"
                    value="0.1"
                    liveDragging="true"
                    snapInterval="0.1"
                    tickInterval="0.1" />
    </mx:ApplicationControlBar>

    <mx:ColumnChart id="columnChart"
                    showDataTips="true"
                    dataProvider="{arrColl}"
                    columnWidthRatio="{slider.value}"
                    width="100%"
                    height="100%">

        <mx:horizontalAxis>
            <mx:LinearAxis baseAtZero="false"
                           minimum="0"
                           maximum="100"
                           interval="20"
                           minorInterval="10"
                           labelFunction="linearAxis_labelFunc" />
        </mx:horizontalAxis>

        <mx:verticalAxis>
            <mx:LinearAxis baseAtZero="false"
                           minimum="100"
                           maximum="1000"
                           labelFunction="linearAxis_labelFunc" />
        </mx:verticalAxis>


        <mx:series>
            <mx:ColumnSeries id="columnSeries"
                             xField="temp"
                             yField="count"
                             displayName="temp" />
        </mx:series>

        <mx:seriesFilters>
            <mx:Array />
        </mx:seriesFilters>

    </mx:ColumnChart>

</mx:Application>

我自己做的,使用项目渲染器

    <mx:Script>
        <![CDATA[
            import mx.charts.chartClasses.IAxis;

            private function linearAxis_labelFunc(item:Object, prevValue:Object, axis:IAxis):String {
                return numberFormatter.format(item);
            }
        ]]>
    </mx:Script>

    <mx:NumberFormatter id="numberFormatter" precision="3" />

    <mx:ArrayCollection id="arrColl">
        <mx:source>
            <mx:Array>
                <mx:Object temp="10" count="500" />
                <mx:Object temp="30" count="300"  />
                <mx:Object temp="40" count="100"  />
                <mx:Object temp="70" count="700"  />
                <mx:Object temp="80" count="200"  />
            </mx:Array>
        </mx:source>
    </mx:ArrayCollection>

    <mx:ApplicationControlBar dock="true">
        <mx:Label text="columnWidthRatio:" />
        <mx:HSlider id="slider"
                    minimum="0.1"
                    maximum="0.9"
                    value="0.1"
                    liveDragging="true"
                    snapInterval="0.1"
                    tickInterval="0.1" />
    </mx:ApplicationControlBar>

    <mx:ColumnChart id="columnChart"
                    showDataTips="true"
                    dataProvider="{arrColl}"
                    columnWidthRatio="{slider.value}"
                    width="100%"
                    height="100%">

        <mx:horizontalAxis>
            <mx:LinearAxis baseAtZero="false"
                           minimum="0"
                           maximum="100"
                           interval="20"
                           minorInterval="10"
                           labelFunction="linearAxis_labelFunc" />
        </mx:horizontalAxis>

        <mx:verticalAxis>
            <mx:LinearAxis baseAtZero="false"
                           minimum="100"
                           maximum="1000"
                           labelFunction="linearAxis_labelFunc" />
        </mx:verticalAxis>


        <mx:series>
            <mx:ColumnSeries id="columnSeries"
                             xField="temp"
                             yField="count"
                             displayName="temp" />
        </mx:series>

        <mx:seriesFilters>
            <mx:Array />
        </mx:seriesFilters>

    </mx:ColumnChart>

</mx:Application>
public class ProcessItemRenderer extends UIComponent implements IDataRenderer

如果您能给我一个提示,说明您在自定义项目渲染器中做了哪些更改,以渲染宽度更宽的columnSeries和LinearAxis,我将不胜感激。