<?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>
如何从flex侧动态传递colorRange中的upperLimit =“”,dial value =“”和maxValue =“”值。我需要在角度计融合图上绘制这3个值
答案 0 :(得分: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;
我希望这就是你需要的, 罗布
答案 1 :(得分:1)
似乎您需要稍微更改一下代码。
fw.FCDataXML = xml.toString(); fw.FCRender();
答案 2 :(得分:1)
Angular gauge仅接受XML数据。它不接受ArrayCollection。
请在传递之前检查是否要将XML转换为String。
您还可以启用Gauge的调试模式以查看问题的更多详细信息