![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
if文で条件判定をして、scという変数の数字を入れ替えたく、以下のようなスクリプトを書いたのですが、ほとんど同じ処理の繰り返しなので、for文などで、もっと簡単に書けるでしょうか?
Actionscript3.0です。
かなり悩んでいるのですが、答えが見つからないのでお願いします。
if (mY>pos*0&&mY<pos*1) {
sc=1;
scale_mc1.alpha=1;
scale_mc2.alpha=0;
scale_mc3.alpha=0;
scale_mc4.alpha=0;
scale_mc5.alpha=0;
scale_mc6.alpha=0;
scale_mc7.alpha=0;
scale_mc8.alpha=0;
scale_mc9.alpha=0;
scale_mc10.alpha=0;
} else if (mY>pos*1&&mY<pos*2) {
sc=2;
scale_mc1.alpha=0;
scale_mc2.alpha=1;
scale_mc3.alpha=0;
scale_mc4.alpha=0;
scale_mc5.alpha=0;
scale_mc6.alpha=0;
scale_mc7.alpha=0;
scale_mc8.alpha=0;
scale_mc9.alpha=0;
scale_mc10.alpha=0;
} else if (mY>pos*2&&mY<pos*3) {
sc=3;
scale_mc1.alpha=0;
scale_mc2.alpha=0;
scale_mc3.alpha=1;
scale_mc4.alpha=0;
scale_mc5.alpha=0;
scale_mc6.alpha=0;
scale_mc7.alpha=0;
scale_mc8.alpha=0;
scale_mc9.alpha=0;
scale_mc10.alpha=0;
} else if (mY>pos*3&&mY<pos*4) {
sc=4;
scale_mc1.alpha=0;
scale_mc2.alpha=0;
scale_mc3.alpha=0;
scale_mc4.alpha=1;
scale_mc5.alpha=0;
scale_mc6.alpha=0;
scale_mc7.alpha=0;
scale_mc8.alpha=0;
scale_mc9.alpha=0;
scale_mc10.alpha=0;
} else if (mY>pos*4&&mY<pos*5) {
sc=5;
scale_mc1.alpha=0;
scale_mc2.alpha=0;
scale_mc3.alpha=0;
scale_mc4.alpha=0;
scale_mc5.alpha=1;
scale_mc6.alpha=0;
scale_mc7.alpha=0;
scale_mc8.alpha=0;
scale_mc9.alpha=0;
scale_mc10.alpha=0;
} else if (mY>pos*5&&mY<pos*6) {
sc=6;
scale_mc1.alpha=0;
scale_mc2.alpha=0;
scale_mc3.alpha=0;
scale_mc4.alpha=0;
scale_mc5.alpha=0;
scale_mc6.alpha=1;
scale_mc7.alpha=0;
scale_mc8.alpha=0;
scale_mc9.alpha=0;
scale_mc10.alpha=0;
} else if (mY>pos*6&&mY<pos*7) {
sc=7;
scale_mc1.alpha=0;
scale_mc2.alpha=0;
scale_mc3.alpha=0;
scale_mc4.alpha=0;
scale_mc5.alpha=0;
scale_mc6.alpha=0;
scale_mc7.alpha=1;
scale_mc8.alpha=0;
scale_mc9.alpha=0;
scale_mc10.alpha=0;
} else if (mY>pos*7&&mY<pos*8) {
sc=8;
scale_mc1.alpha=0;
scale_mc2.alpha=0;
scale_mc3.alpha=0;
scale_mc4.alpha=0;
scale_mc5.alpha=0;
scale_mc6.alpha=0;
scale_mc7.alpha=0;
scale_mc8.alpha=1;
scale_mc9.alpha=0;
scale_mc10.alpha=0;
} else if (mY>pos*8&&mY<pos*9) {
sc=9;
scale_mc1.alpha=0;
scale_mc2.alpha=0;
scale_mc3.alpha=0;
scale_mc4.alpha=0;
scale_mc5.alpha=0;
scale_mc6.alpha=0;
scale_mc7.alpha=0;
scale_mc8.alpha=0;
scale_mc9.alpha=1;
scale_mc10.alpha=0;
} else if (mY>pos*9&&mY<pos*10) {
sc=10;
scale_mc1.alpha=0;
scale_mc2.alpha=0;
scale_mc3.alpha=0;
scale_mc4.alpha=0;
scale_mc5.alpha=0;
scale_mc6.alpha=0;
scale_mc7.alpha=0;
scale_mc8.alpha=0;
scale_mc9.alpha=0;
scale_mc10.alpha=1;
}
No.2ベストアンサー
- 回答日時:
#1の方、惜しいけど若干違いますかね。
this["scale_mc"+i].alphaのように配列アクセス演算子をつかって
子ムービークリップやプロパティを参照できますので
for(var i:int=1; i<=10; i++){
if(mY>pos*(i-1)&&mY<pos*i){
sc=i;
for(var j:int=1; j<=10; j++)this["scale_mc"+j].alpha=(i==j)?1:0;
}
}
#1の方よりちょっと縮めてありますし、個数が増加しても汚くなりにくくなっているつもりです。
私はas2.0使うことのほうが多いのでところどころ混ざってるかもしれません・・・^^;
動きました!
プログラムは奥が深いですね。とてもエレガントです!!
演算子==と、演算子?は知らなかったので、これも勉強になりました。
ありがとうございました。
No.1
- 回答日時:
まず、10個の変数に全て0を入れておいてから、
判定して必要なところに1を入れたら80行は
減少しますね。
私もFlash初心者(3時間)ですが、Flashは動的
に変数名を作成できるのでfor文で必ず回せます。
というか、配列にしておけば簡単なので、設計の
問題かも。
scale_mc1.alpha=0;
scale_mc2.alpha=0;
scale_mc3.alpha=0;
scale_mc4.alpha=0;
scale_mc5.alpha=0;
scale_mc6.alpha=0;
scale_mc7.alpha=0;
scale_mc8.alpha=0;
scale_mc9.alpha=0;
scale_mc10.alpha=0;
for(ver i=1; i<=10; i++){
if(mY>pos*(i-1)&&mY<pos*i){
sc=i;
*1変数名を生成=1;
}
}
*1 多分なのですが
("scale_mc"+i+".alpha")
ではないか、と思います。
まだ文法も把握しきっていないので間違い
なら失礼します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- 英語 Oral Health Impact Profile-19 ( OHIP-19) questionn 3 2022/09/26 16:37
- Outlook(アウトルック) 休みが明けてメールをみたらやばいです 3 2022/08/17 09:03
- 新幹線 alpha xが成功して、時速360kmが実用化されたとして、E10H10になると思うがいかがでしょ 1 2023/02/25 14:55
- 数学 Pythonのspecgramに関する質問です。 1 2022/12/04 19:18
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- その他(動画サービス) OBSで質問です ①HyperX Cloud Alpha ゲーミング ヘッドセット インライン音量コ 1 2022/11/21 22:10
- 英語 Given that all patients had scores of zero on the 2 2022/05/16 17:44
- 英語 アメリカのアニメ Family Guy の台詞の和訳 1 2022/11/14 14:50
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで改行の入ったデータの正規...
-
もっと簡単に書けますか?
-
テキストエリア内の文字列にリ...
-
DataTableの件数を取得したい
-
テキストボックスの中身をリセ...
-
【Photoshop】レイヤー効果の境...
-
別のアプリケーションのテキス...
-
プログラミング、アーキテクチ...
-
【VB.NET】別Formのボタンが押...
-
UWSCのBTN関数について。
-
else if文の順序を変えることに...
-
python ボタンを押すと複数の関...
-
マウス自体の移動量の取得
-
photoshopで書いた四角の枠の中...
-
時計の:を点滅させたい
-
アクセスのフォームから検索を...
-
(AS3) MC内から別のところにあ...
-
VBScriptでMsgBoxのYesNoボック...
-
ブロック崩しについて
-
スクロールボタンの範囲指定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで改行の入ったデータの正規...
-
テキストファイルから読み込ん...
-
VBAユーザーホームテキストボッ...
-
縦横比率のを変えずに画像のサ...
-
外部SWFファイルを再生バーでコ...
-
ラッコって?
-
複数ボタンの生成 - actionscript
-
ActonScriptでムービークリップ...
-
コンプトン散乱について
-
addChildで描画した絵(シンボル...
-
upc 7915と mc7915ctは互換性有...
-
ActionScript3のMovieClipについて
-
AS3 mc0~5をまとめて処理する
-
AS3.0 設置した画像を次のラベ...
-
2つの取り込んだ画像を交差さ...
-
flash as3 ムービークリップの...
-
Flashで外部jpgファイルをmcに...
-
3つのムービークリップ再生・巻...
-
日本ヒューレット・パッカード...
-
四角形の端っこをドラッグした...
おすすめ情報