• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:flashMX ActionScript)

flashMX ActionScriptのコード解説

このQ&Aのポイント
  • flashMXのActionScriptを勉強しています。上のスクリプトのK1 += (K>=360) ? -360 : 10;の部分の意味が理解できません。特に?の記号。お分かりの方がいましたら教えてください。
  • flashMXのActionScriptを勉強しています。このスクリプトは、オブジェクトの動きを制御するためのものです。具体的には、K1という変数に10を加えていますが、Kが360以上であれば-360を加えます。この部分の意味や?の記号について、詳しく教えてください。
  • flashMXのActionScriptを学習中です。こちらのスクリプトでは、オブジェクトの座標を計算しています。具体的には、K1とK2という変数に角度を加え、cos関数を使って新しい座標を計算しています。そして、その座標を元にオブジェクトを移動させています。しかし、K1 += (K>=360) ? -360 : 10;の部分の意味が分かりません。特に?の記号の使い方が気になります。詳細を教えていただけますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • DPE
  • ベストアンサー率85% (666/776)
回答No.1

「 ?  :  」は if ~ else の別の書き方です。 「 ? 」の左側が分岐の条件、右側が分岐させる処理の内容です。条件が成立する場合( true の時)は「 : 」の左側が、不成立の場合( false の時)は「 : 」の右側が、if 文の実行結果になります。 ご質問文にある  K1 += (K>=360) ? -360 : 10; を、細かく見てみましょう。 このスクリプトは、「 += 」の演算子を境として、2つの部分に分けることができます。「 += 」の右側は、問題の「 ? :  」を使った条件分岐です。この条件分岐の結果が変数 K1 に加算される、という構造になっています。まずは、条件分岐の内容を考えてみましょう。 「 ? 」の左側に書かれている (K>=360) の部分が、分岐の条件です。変数 K が 360 以上であるかどうかを判断しています。 変数 K が 360 以上の場合は「 : 」の左側の -360 が、K が 360 未満の場合は「 : 」の右側の 10 が、if 文の実行結果となります。 この if 文の結果を、変数 K1 に加算します。 つまり、変数 K の値が 360 以上なら -360 を、360 未満なら 10 を変数 K1 に加算する、という意味になります。 (おそらく角度の計算で、角度をフレームごとに加算していき、その結果、角度が 360°を超えることがないようにするための処理だと思います) 同じ処理を if 文を使って書き直すと、  if ( K >= 360 )  {   K1 += -360 ;  }  else  {   K1 += 10 ;  } となります。 「 ? 」を使うとスクリプトがすっきりスマートにまとまり、見た目は華麗なスクリプトになりますが、その反面、処理が分かりにくくなるという欠点があります。 慣れないうちは無理に使おうとしないで、if 文で書くことをオススメしますよ。

putitpmatp
質問者

お礼

丁寧な説明ありがとうございます。 おかげさまですっきりと理解することができました。

関連するQ&A