0

AS3にif/else if / else if / else if/elseステートメントがあります。

これは、xmlファイルから日付を読み込むカレンダーです。if / else if / elseステートメントは、イベントがあるかどうか、および過去/現在か未来かによって、日付の外観を制御します。MouseEventは、イベント情報を表示するツールチップです。

最後のセクションは

else {
 var thisday:String = "<b><font color=\"#666666\" size=\"9\"> <u><font size=\"12\"> -</font> " + yy + " <font size=\"12\">-</font> " + GlllStringUtil.checkDigits((mm + 1).toString()) + " <font size=\"12\">-</font> " + i.toString() + " <font size=\"12\">- </font></u></font></b> ";
 myCLabel = new ICLabel(); 
 myCLabel.date.htmlText = GlllStringUtil.checkDigits(i.toString());
 myCLabel.date.background = false;
 myCLabel.date.textColor = "0x666666";
 myCLabel.date.autoSize = TextFieldAutoSize.CENTER;
 myCLabel.date.selectable = false;
 myCLabel.date.mouseEnabled = true;
 myCLabel.y = 0;
 myCLabel.x = 25 * (i - 1);
 myCLabel.name = i.toString();
 myCLabel.data = thisday;
 myCLabel.addEventListener(MouseEvent.MOUSE_OVER, myCLabel_mouse_over);
 myCLabel.addEventListener(MouseEvent.MOUSE_OUT, myCLabel_mouse_out);
 calendarHolder.addChild(myCLabel);
}

ステートメント内でこれを繰り返すと、else if{var..。を使用するための1084が得られます。

elseを使用することもできますが、次のセクションをif / elseで開始し、必要な処理を実行しているときに、この最後のif/elseによって外観が上書きされます。

将来の日付の出現に関するステートメントが1つしかないため、これを実行しようとしています。つまり、将来のイベントがある場合、それは強調表示されません。

else if {varを使用して、1084を返さずに内部で繰り返すにはどうすればよいですか?

(私はAS3の知識がほとんどないので、どんな援助も大歓迎です。)

-

アップデート:

お返事ありがとうございます。

ファイルは.asであり、非常に長いので、ここ で.txtファイルとしてアップロードします。私が達成しようとしていることを実証するための2つの小さなgif画像もあります。((画像では)ツールチップが強調表示された日付の上に表示されますが、それ以外の場合は将来の日付が強調表示されないため、日付の上にマウスを置くまで、イベントがあるかどうかを実際に判断することはできません。)

大丈夫だといいのですが。

投稿する前に閉じ中括弧を見逃していないことを確認しましたが、エラーは私の理解を超えていると思います。

4

2 に答える 2

5

1084 は、構文が正しくないことを示すエラーです。これらの行に沿ってブレースまたは何かを閉じるのを逃しました。より正確な答えを得たい場合は、完全な関数コードを投稿してください:)

于 2009-10-03T06:13:52.857 に答える
0

ダウンロードしたライブラリを変更しているようです。私はあなたの問題を理解していると思いますが、残念ながら正確な解決策を手伝うのは難しいでしょう。

ブロックは次のパターンに従います。

if( /*<some condition>*/ ) {
    // create a specific type of Label
}
else if( /*<another condition>*/ ) {
    // create a different type of Label
}
else if( /*<yet another condition>*/ ) {
    // create yet another type of Label
}
else {
    // create a default type of Label
}

これがifステートメントの仕組みです。1つしか存在できずelse、最後に実行する必要があります。すべての条件が一致しない場合に何が起こるかを処理しifますelse if。それは一種の「最後の手段」の行動のようなものです。

リンクしたコードのコメントで、「このブロックは、イベントがない場合の日付の表示を制御します」と述べています。イベントがあるときに処理するブロックを追加したいとします。つまり、新しいを追加する必要がありますelse if。そのためには、条件を提供する必要があります。

if( /*<some condition>*/ ) {
    // create a specific type of Label
}
else if( /*<another condition>*/ ) {
    // create a different type of Label
}
else if( /*<yet another condition>*/ ) {
    // create yet another type of Label
}
// Here you need a new condition
else if( /*<some condition that evaluates to true when there are events>*/ ) {
    // create a label styled to show off events
}
else {
    // create a default type of Label
}

コードは、特定の日付にイベントがある場合に、その日付に対してtrueと評価される条件を作成する方法を決定するために投資するよりも、少し複雑です。しかし、私が示したフォームに一致するステートメントは機能し、1084エラーを回避するはずです。

于 2009-10-06T10:32:02.580 に答える