获取xml节点的值并使用as3对其进行操作
Posted
技术标签:
【中文标题】获取xml节点的值并使用as3对其进行操作【英文标题】:Obtain value of xml node and manipulate it using as3 【发布时间】:2013-11-11 09:11:21 【问题描述】:我有一个包含四个节点的大型 XML 文件,使用它来创建交互式金字塔样式信息图。问题是当年份超过记录集中的特定值时,我希望能够操纵条形的颜色,所以这就是我到目前为止所得到的。
*xml 文件
<dataset>
<source></source>
<extent></extent>
<scaleFac></scaleFac>
<recordSet year="1982" popTotal="1544545">
<m> //Male
<rd></rd>
<f> //Female
<rd></rd>
动作脚本
加载 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);
;
我不确定如何检查年份记录是否超过特定值。我对 actionscript 很陌生,所以任何帮助都会非常有用。
【问题讨论】:
【参考方案1】:我不确定我是否正确理解了您的问题。 如果您对如何从 xml 节点获取属性值感到困惑,那么这里是:
var yearRecord:String = xmlData.recordSet.attribute("year");
如果您不确定如何比较两个值,如果其中一个是字符串,另一个是整数,那么您必须将 String 转换为 int:
if( int(yearRecord) > 2013 )
...
请尝试一下,如果您不明白,请不要犹豫。 祝你好运:)
【讨论】:
非常感谢,条件语句似乎工作正常。现在我还有一个问题,我希望条形图在 2013 年过去时改变颜色。所以上述工作应该使用 mcFGraphics.beginFill 还是还有更多。一种更简单的方法可能只是在这种情况下变得可见的注释,任何帮助都将不胜感激以上是关于获取xml节点的值并使用as3对其进行操作的主要内容,如果未能解决你的问题,请参考以下文章
[ActionScript 3.0] AS3 对XML的操作,创建删除增加节点方法
获取一个字符串的元素,它看起来像 XML 并在 java 中对其进行操作
SQL 如何获取 XML 数据列的值并在 where 子句中使用它