所以Iam尝试生成一个if语句,它将改变as3中图形的颜色,我的数据来自一个大的xml文件,工作正常我只需要当价值高于2013时某个条件会发生即改变图形填充。它本质上是一个在flash中开发的交互式infograph。下面是xml文件的大纲。
<dataset>
<source></source>
<extent></extent>
<scaleFac></scaleFac>
<recordSet year="1982" popTotal="1544545">
<m> //Male
<rd></rd>
<f> //Female
<rd></rd>
我主要担心的是我不确定Iam是否正确查询xml文件以测试条件。所以我想取记录年份值,即1982年,并创建一个if语句,当年份为&gt; 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(&#34; true&#34;)并将年份改为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();
}
答案 0 :(得分:0)
好吧,只需在那里放一个'其他'。
var yearRecord:String = xmlData.recordSet[0].@year;
if( int(yearRecord) > 2013 )
{
color = 0xFF0000; //projection color
}
else {
trace("you did something wrong");
}
编辑:为什么不跟踪'yearRecord'变量来查看你收到的内容?
答案 1 :(得分:0)
只需使用跟踪
trace(int(yearRecord) > 2013);
如果匹配则将返回true,如果不匹配则返回false