0
<?xml version="1.0" encoding="utf-8"?>
<s:BorderContainer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                   xmlns:s="library://ns.adobe.com/flex/spark" 
                   xmlns:mx="library://ns.adobe.com/flex/mx"
                  xmlns:components="com.fusionwidgets.components.*">

    <components:FusionWidgets FCChartType="AngularGauge" FCDataURL="data/energyMtd.xml"/>
</s:BorderContainer>

およびenergyMtd.xmlファイルを

<?xml version="1.0" encoding="UTF-8"?>
<chart decimals="2"  palette="2" autoScale="1" paletteThemeColor="BDBDBD" showBorder="0" basefontColor="000000" 
    toolTipBgColor="BFBFBF" gaugeFillMix="{dark-10},{light-70},{dark-10}" gaugeFillRatio="3" 
    pivotRadius="6" gaugeInnerRadius="60%" tickValueDistance="10" showTickValues="1" tickValueStep="2" 
    placeTicksInside="0" placeValuesInside="0" showToolTip="1" baseFontSize="9" adjustTM="0" 
    pivotFillColor="000000" dataStreamURL="" gaugeStartAngle="225" gaugeEndAngle="-45" 
    gaugeOriginX="100" gaugeOriginY="98" gaugeOuterRadius="75" numberSuffix="kW" upperLimit="100" 

lowerLimit="0">

  <colorRange>
    <color minValue="0" maxValue="100" code="bbbaba"/>
  </colorRange>

  <dials>
    <dial value="0" rearExtension="10" baseWidth="10" bgColor="000000"/>
  </dials>

</chart>  

フレックス側からcolorRangeのupperLimit=""、dial value = ""、maxValue=""の値を動的に渡すにはどうすればよいですか。角度ゲージ融合チャートにプロットするには、これら3つの値が必要です

4

3 に答える 3

1

私はそれがこのように見えるべきだと信じています:

<?xml version="1.0" encoding="utf-8"?>
<s:BorderContainer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                   xmlns:s="library://ns.adobe.com/flex/spark" 
                   xmlns:mx="library://ns.adobe.com/flex/mx"
                  xmlns:components="com.fusionwidgets.components.*"
                  creationComplete="init();">

    <fx:Script>
        <![CDATA[
        import flash.events.Event;
        import flash.net.URLLoader;
        import flash.net.URLRequest;
        import mx.collections.ArrayCollection;

        protected var xmlLoader:URLLoader;
        [Bindable]
        protected var xml:XML;

        /**
         * 
         */
        protected function init():void
        {
            xmlLoader = new URLLoader();
            xmlLoader.addEventListener(Event.COMPLETE, parse);
            xmlLoader.load(new URLRequest("data.xml"));
        };

        /**
         * 
         * @param   event
         */
        protected function parse(event:Event):void
        {
            xml = event.target.data;
            xml.ignoreWhitespace = true;
            xml.ignoreComments = true;

            xml.chart.@upperLimit = 100;
            xml.chart.dials.dial.@value = 0;
            xml.chart.colorRange.color.@maxValue = 100;

            fw.dataProvider = new ArrayCollection(xml);
        };
        ]]>
    </fx:Script>

    <components:FusionWidgets id="fw" FCChartType="AngularGauge" />
</s:BorderContainer>

コンポーネントがデータプロバイダーを処理する方法の詳細については、コンポーネントのドキュメントを確認する必要があると思います。

頑張って、ロブ

////////////////////////////////////

やあ、

XMLファイルをXMLオブジェクトにロードした後、属性と要素の値を設定できます。

例えば:

xml.chart.@upperLimit = 100;
xml.chart.dials.dial.@value = 0;
xml.chart.colorRange.color.@maxValue = 100;

これがあなたに必要なものだといいのですが、ロブ

于 2011-03-18T10:27:15.353 に答える
1

コードを少し変更する必要があるようです。

fw.FCDataXML = xml.toString(); fw.FCRender();

于 2011-03-21T08:57:43.150 に答える
1

角度ゲージはXMLデータのみを受け入れます。ArrayCollectionは受け入れません。

渡す前に、XMLを文字列に変換しているかどうかを確認してください。

また、ゲージのデバッグモードを有効にして、問題の詳細を確認することもできます

于 2011-05-24T07:07:38.427 に答える