获取xml节点的值并使用as3对其进行操作

时间:2013-10-31 11:25:03

标签: xml actionscript-3 flash actionscript

我有一个包含四个节点的大型XML文件,使用它来创建交互式金字塔样式的infograph。麻烦的是,当年份超过记录集中的特定值时,我希望能够操纵条形图的颜色,所以这就是我到目前为止所做的。

* xml文件

<dataset>
<source></source>
<extent></extent>
<scaleFac></scaleFac>
<recordSet year="1982" popTotal="1544545">
<m> //Male
<rd></rd>
<f> //Female
<rd></rd>

ActionScript

在xml文件中加载后,我创建了一个变量来保存记录集年份值,这是我需要使用的。

function onComplete(evt:Event):void {
xmlData = new XML(evt.target.data);
//populates metadat fields
seriesLength=xmlData.recordSet.length();
yearRecord=xmlData.recordSet.text();

然后我创建了一个名为“修改年份”的函数,这就是我的问题所在。我试过创建了一个简单的if else语句,当值(Year)大于2013时,我们应该更改条形的颜色。

function modifyYear(){

var mcF:MovieClip = new MovieClip();
var mcFGraphics:Graphics = mcF.graphics;

    if (yearRecord>2013){

        mcFGraphics.beginFill(0xFFFFFF,1);
    }

    else {
        mcFGraphics.beginFill(0x660066,1);
    }
};

我不确定如何查看年份记录是否超过特定值。我对动作脚本很新,所以任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解你的问题。 如果您对如何从xml节点获取属性值感到困惑,那么它就是:

var yearRecord:String = xmlData.recordSet.attribute("year");

如果你只是不确定如何比较两个值,如果其中一个是字符串而另一个是整数,那么你必须将String转换为int:

if( int(yearRecord) > 2013 )
{...}

请尝试一下,如果你不了解什么,请不要犹豫。 祝AS好运:)