質問

アクションスクリプト初心者です。
今までプログラミングなどは行った事が無く、せいぜいExcel関数を使用する程度のものです。現在書籍を下にアクションスクリプトを勉強しています。
それで書籍の中に、ムービークリップをボタンシンボルの様に使用する手法について書かれているのですが、途中から理解が進まない状態なので質問書き込みさせていただきました。
書籍には

ムービークリップ-みかんちゃんの制御
 前述のフローチャートに沿ってアクションを完成させます。
 変数を作成し、初期値として「false」を格納します。

onClipEvent (load){
this.stop();
flg = false;
}

次にマウスをクリック(アップ)した時に変数をtrueにします。

on (release){
flg = true;
_parent.play();
}

最後にif文を使ってロールアウト時に実行する処理を分岐します。

on (releaseOutside,rollout) {
if(flg) {
this.play();
} else (
this.gotoAndStop(1);
}
}

以上で完成です。
 複雑になりましたが、一応メインのムービーも動き、自分自身もマウスのアクションによって動作するように記述する事ができました。
 *本来 else以下の部分は省略可能です。
                   」と書かれています。

それで、まず分からないのが「変数を作成し、初期値として「false」を格納します。」という記述のところで、flg = false; とは何を書いているのかが分からないという状態です。
この部分、どの様に理解すればよいのかご教授やご助言をいただきたく思います。
よろしくお願いします。

通報する

回答 (1件)

flgというのはフラッグ=旗の事です。これは変数名なのでなんでもかまいませんが、プログラムではよく使う変数名です。
falseは×(誤)、trueは○(正)の旗になります。
flgは×か○のどちらかの値をとることになるわけですが、初期値としては×(false)としておく、と言う話です。

そのflgが、
if(flg) {
 this.play();
} else (
 this.gotoAndStop(1);
}
と言う所で条件分けされています。ifは英語でいうところの、もし~ならば、です。同じくelseは さもなければ、です。
if()は()内がtrueの場合は最初の{}内が処理され、falseの場合はelse以降の{}内の処理が行なわれる決まりになっています。

上記のスクリプトを日本語的に訳すと、
もしflg(旗)がtrue(正、○)ならば、
this.play()(再生)して、
さもなければthis.gotoAndStop(1)(フレーム1に行って止まれ)、
と言い換える事が出来ます。

初期値はfalseですから、最初にロードした時にムービーはフレーム1で止まっています。マウスアップでtrueになりますから、ムービーは動き出します。

このように理解していってください。
プログラムは、機械の言葉のようですが、もともとは英語から作られており、英単語としてみれば解釈がしやすく、覚えるのもはやいです。

この回答へのお礼

taketan_mydns_jpさん、ご回答ありがとうございます。

数時間何度も読み返したり、Flashをいじってみたりしてようやく理解出来ました(たぶん)。
onClipEvent (load){
this.stop();
flg = false;
}
と記述する事で、onClipEvent (load)の状態では、if(flg)のflgにはfalseが返され、if(false)という状態になっていて、同じくon (release)、、、、ではtrueが返されて、if(true)となっていて、でそれによって、
on (releaseOutside,rollout) {
で if(true) またはif(false)
の指定スクリプトが実行されるという様なイメージでだいたいよいのでしょうか。

このQ&Aは役に立ちましたか?1 件

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

新しく質問する

このQ&Aを見た人が検索しているワード


新しく質問する

このカテゴリの人気Q&Aランキング

毎日見よう!教えて!gooトゥディ

べんりQ&A特集