0

所以我试图生成一个 if 语句来改变 as3 中图形的颜色,我的数据来自一个工作正常的大型 xml 文件我只需要当值大于 2013 时会发生某种情况,即更改图形充满。它本质上是一个用 Flash 开发的交互式信息图。下面是xml文件的概要。

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

我主要担心的是我不确定我是否正确查询 xml 文件来测试条件。所以我想获取recordSet 年份值,即1982 并创建一个if 语句,当年份> 2013 时条件为真,这就是我到目前为止所拥有的。

var yearRecord:String = xmlData.recordSet.attribute("year");
if( int(yearRecord) > 2013 )
{...}

从研究中我看到其他人这样做

var yearRecord:String = xmlData.recordSet.@year;
if( int(yearRecord) > 2013 )
{
color = 0xFF0000;  //projection color
}

所以我的问题是,如何测试它以查看条件是否有效,以便我可以操纵颜色。我尝试使用 trace("true") 并将年份更改为 2013 年,但没有输出任何内容,因此我认为我的 if 语句有问题。任何帮助,将不胜感激。

*主要代码片段

function modifyYear(){

var mcF:MovieClip = new MovieClip();
mcF.age=i;
mcF.popValue=xmlData.recordSet[indexYear].f.rd[i].text();
mcF.name="popF"+i
var mcFGraphics:Graphics = mcF.graphics;
var color:Number = 0x660066;  //default color

var yearRecord:String = xmlData.recordSet[0].@year;
if( int(yearRecord) > 2013 )
{
color = 0xFF0000;  //projection color
}

mcFGraphics.beginFill(color,1);  //draw with whatever appropriate color
mcFGraphics.drawRect(graphX+mfGap,(graphY-(i*cellHeight))-    
cellHeight,mcF.popValue/scaleValue,cellHeight);
mcFGraphics.endFill();

}
4

2 回答 2

0

好吧,只是在那里放一个“其他”。

var yearRecord:String = xmlData.recordSet[0].@year;
if( int(yearRecord) > 2013 )
{
color = 0xFF0000;  //projection color
}
else {
trace("you did something wrong");
}

编辑:你为什么不追踪'yearRecord'变量来看看你收到了什么?

于 2013-11-05T16:32:57.270 回答
0

just use trace

trace(int(yearRecord) > 2013); 

will return true if it matches, false if it doesn't

于 2013-11-05T19:39:27.847 回答