0

したがって、as3 のグラフィックの色を変更する if ステートメントを作成しようとしています。私のデータは、正常に動作する大きな xml ファイルから取得されています。値が 2013 を超えると、特定の条件が発生する、つまりグラフィックが変更されることが必要です。塗りつぶし。これは基本的に、フラッシュで開発されたインタラクティブなインフォグラフです。以下はxmlファイルの概要です。

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

私の主な懸念は、条件をテストするためにxmlファイルを正しく照会しているかどうかわからないことです。したがって、recordSet の年の値、つまり 1982 を取得し、年が 2013 年を超える場合に条件が真であるという if ステートメントを作成したいと考えています。

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

まあ、そこに「else」を入れてください。

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

トレースを使用するだけ

trace(int(yearRecord) > 2013); 

一致する場合は true、一致しない場合は false を返します

于 2013-11-05T19:39:27.847 に答える