アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下のActionScriptをスッキリさせたいのですが、良い方法はないでしょうか?
(flash MXを使用しています。)

if (aaa1 == 1) {
mc1.gotoAndStop(2);
}
if (aaa1 == 2) {
mc1.gotoAndStop(3);
}
if (aaa1 == 3) {
mc1.gotoAndStop(4);
}
if (aaa1 == 4) {
mc1.gotoAndStop(5);
}



if (aaa2 == 1) {
mc2.gotoAndStop(2);
}
if (aaa2 == 2) {
mc2.gotoAndStop(3);
}
if (aaa2 == 3) {
mc2.gotoAndStop(4);
}
if (aaa2 == 4) {
mc2.gotoAndStop(5);
}



if (aaa3 == 1) {
mc3.gotoAndStop(2);
}
if (aaa3 == 2) {
mc3.gotoAndStop(3);
}
if (aaa3 == 3) {
mc3.gotoAndStop(4);
}
if (aaa3 == 4) {
mc3.gotoAndStop(5);
}



初心者で、このActionScriptの効率的な書き方がわかりません(^-^;)
functionを使えばいいのでしょうか?
どうぞよろしくお願い致します。

A 回答 (2件)

とりあえず if 文 を無くすと次の3行にできると思います。



-----------------------------
mc1.gotoAndStop(aaa1 + 1);
mc2.gotoAndStop(aaa2 + 1);
mc3.gotoAndStop(aaa3 + 1);
-----------------------------

それで,この3行を,
「for文」 と 「配列アクセス演算子」を使って回すと次のようにできます。

-----------------------------
for (i=1; i<=3; i++) {
this["mc"+i].gotoAndStop(this["aaa"+i]+1);
}
-----------------------------

こんな感じでいかがでしょうか?
    • good
    • 0
この回答へのお礼

ご指摘のようなfor文を使えばi<=3がいくら増えてもいいので便利ですね。
とても助かりました。ご回答いただき、ありがとうございました。

お礼日時:2010/05/10 22:39

変数の型が分からないためそのあたりはぼかして回答しています。


また、私はflash MXを持っていないため、見当違いな回答かもしれません。
※xxxxxxxxxxは適当な関数名に変更してください。

---ここから---
public function xxxxxxxxxx(aaa:変数の型, mc:変数の型) {
if (aaa == 1) {
mc.gotoAndStop(2);
}
if (aaa == 2) {
mc.gotoAndStop(3);
}
if (aaa == 3) {
mc.gotoAndStop(4);
}
if (aaa == 4) {
mc.gotoAndStop(5);
}
}

xxxxxxxxxx(aaa1, mc1);



xxxxxxxxxx(aaa2, mc2);



xxxxxxxxxx(aaa3, mc3);



---ここまで---
    • good
    • 0
この回答へのお礼

勉強になります。ご回答いただき、ありがとうございました。

お礼日時:2010/05/10 22:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!