• ベストアンサー

Action Scriptで

フラッシュのいろいろのデザインがのってる本で勉強しているんですが、 そのなかのアクションスクリプトの記述に、 onClipEvent (enterFrame) { if (part) { nextFrame(); } else { prevFrame(); } } と書いてある部分がありまして、ifの後のカッコ内の "part"というのがどうしてもわからない・・んです。 べつにどのインスタンス名にもpartと書いていないし、、 if→part というのは、何をしているんでしょうか?? すいません。だれか教えてください。

  • Flash
  • 回答数1
  • ありがとう数0

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

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

状況を数値で管理し、分岐や判断の条件として使う変数のことを、フラグといいます。 ご質問文にある part は変数で、フラグとして使われているのではないでしょうか。 if 文は、条件である ( ) 内の演算の結果が0以外の時に真(条件成立)、0の時に偽(条件不成立)となります。 if( part ) のように変数だけ書いてある条件式の場合は、part の値が if 文の条件として評価されます。ご質問文のスクリプトは、part に0以外の値が入っている時は nextFrame(); (次のフレームへ移動)、0の時は prevFrame(); (前のフレームへ移動)を実行する、という意味になります。 なお、ブール値(真・偽の2値)として使われる true と false は、Flash の内部で予め、true = 1 ・ false = 0 と定義されています。 part が数値ではなくブール値で何らかの状況を管理しているのであれば、true の時に次のフレーム、false の時に前のフレームに移動、といった動作になります。 part が何の状態を表すフラグで、どんな時に何の値に変わるのかは、ご質問文のスクリプトからだけでは分かりませんが。 おそらく、ムービークリップの中で、アニメが終了した・何かの条件が成立したなど、何らかの状態の変化を知らせるためのフラグだと思います。 ムービークリップのタイムラインや内部に配置されているボタン・ムービークリップのインスタンスに、part = ・・・; や _parent.part=・・・; というように、part の値を書き換えているスクリプトが設定されていませんでしょうか? 先述の通り、if 文では part の値により再生するフレームを切り替えています。どんな時にフレームを切り替えるムービークリップなのかを考えると、part の値を書き換えているスクリプトも見付けやすいと思います。

関連するQ&A

  • mcのx座標が50以上になったら次フレーム

    タイトルどおり、 mcのx座標が50以上になったら次フレーム という処理をしたく、 mcに次のアクションスクリプトを記述しました。 onClipEvent(enterFrame){ this._x += 10; } onClipEvent(load){ if(this._x >= 50){ nextFrame(); } } しかし何故か次のフレームに行ってくれません。 どこか間違っているのでしょうか。。。 nextFrame();をgotoAndPlay(2);にしても駄目でした。

    • ベストアンサー
    • Flash
  • アクションスクリプトでのフレーム移動について

    FlashCS3 actionscript2.0で画像が1枚ずつフェードインしてきてサムネイル一覧になるようなものを作っています。 それぞれの写真をレイヤーに分けていれ、ラベルをつけています。 全ての写真インスタンスに飛び先のラベル名だけど変更して、下記のようにアクションスクリプトを記述しました。 ―――――――――――――――――――――――――――――― onClipEvent (load) { this._alpha = 0; } onClipEvent (enterFrame) { if(this._alpha < 100){ this,_alpha += 2; } if(this._alpha >= 80){ _root.gotoAndStop("pic02"); } } ―――――――――――――――――――――――――――――― が、1つめの写真と2つめの写真はフェードインしてきて表示されるのですが、3つめの写真以降が読み込まれません。 ラベルの番号をずらすと、その一の写真は読み込むのですが、次のラベルにはジャンプしてくれません。 原因が分かる方がいらっしゃいましたら、ぜひおしえてください。 よろしくおねがいします。

    • ベストアンサー
    • Flash
  • アクションスクリプトについて

    今、毎月決まった日になったら表示させるというのをやりたくて がんばってみたのですがいまいちわかりません。 スクリプトは onClipEvent(load){  stop();  function update(){   var nowDate = new Date();   var Day = nowDate.getDate();   if (Day == 1){    this.gotoAndStop("today");   }else if(Day == 16){    this.gotoAndStop("today");   }else    this.gotoAndStop("a");   } } onClipEvent(enterFrame){ update(); } こんな感じです。(まったく自身がありません。) いまいち変数のところがわかりません。オブジェクトの生成とか・・・ PCの日付の方は変えてありますが、表示がされません。 今後は「次回の何回目は後何日」って感じに出来たらと思っています。 これについてもよかったら何かアドバイスお願いします。

  • FLASHのアクションスクリプトで回転の際の中心点

    FLASHでムービーをつくり、アクションスクリプトを使って回転させました。 onClipEvent(enterFrame){ _rotation += 10; } ちゃんと回転してますが、意図する中心点と違うところを中心点として回転しています。 自分で「ここだ!」と指定することはできますか?

  • 移動に関するアクションスクリプトがわかりません

    あるムービークリップをクリックした時にX座標を0の位置にもっていきたいのですが、アクションスクリプトをどう書いたら良いのか分かりません。 瞬間的に移動するのではなくスーッという感じで動かしたいのです。 on (release){ this._x = 0} と onClipEvent(enterframe){ this._x += -2 } これを融合させたような感じにしたいのですが、書き方が分かりません。メインのタイムラインに動くフレームをつくりgotoAndPlay()で飛ばしても良いんですが、アクションスクリプトだけで作ることは不可能でしょうか?

    • ベストアンサー
    • Flash
  • FlashMXアクションスクリプトの記述で分からないのですが…

     現在FlashMXのアクションスクリプトを勉強中で購入した書籍に、マウスカーソルを動かすとカーソルに着いていき波紋が広がるというのがあるのですが、マウスカーソルがステージ上からなくなっても波紋が残ってしまいます。この波紋を残さないようにする記述方法をどなたか教えて下さい。WindowsXP環境です。 onClipEvent (load) { if (_name == "mc") { _visible=false; max = 10; //複製する個数 for (i=0; i<max; i++) { this.duplicateMovieClip(i, 100+i);//複製 } } } onClipEvent (mouseMove) { if (_name == "0") {//一つ目のmcはマウスの座標とする _x = _parent._xmouse; _y = _parent._ymouse; } else {//それ以後は自分の名前から-1引いたインスタンス名の座標を取得する _x = _parent[int(_name)-1]._x; _y = _parent[int(_name)-1]._y; } updateAfterEvent(); } と記述されています。インスタンスmcはシェイプトゥイーンで、円が徐々に大きくなり、消えていくアニメーションを設定しています。

  • アクションスクリプトでイージング

    Flash初心者です。 お聞かせ願いたいのですが、トゥイーンで設定できる イージングのような動きを、スクリプトで制御したく 思っているのですが、方法が分からずにいます。 下記のように、指定したX座標へ移動させる際に イージングを適用させたいのですが、どこにどのような スクリプトを追記すればよろしいでしょうか? onClipEvent (load) { theX = 0; } onClipEvent (enterFrame) { this._x += (theX-this._x)/5; } ご存知の方がおられましたら、回答いただければ幸いです。 よろしくお願い致します。

    • ベストアンサー
    • Flash
  • swfobject:配置したflash内のボタンをクリックしても反応が無い

    お世話になります。 swfobjectで配置したflash内のボタンが、 マウスオーバーのアクションはしますがその後、クリックしてもリンク先に飛ばずに困っています。 ボタンは以下のような仕組みになっています。 ※配置したムービークリップに、以下のスクリプトを入力してボタンにしています。 onClipEvent (load) { this.stop(); flag = "0"; } on (rollOver) { flag = "1"; } on (rollOut, dragOut) { flag = "2"; } onClipEvent (enterFrame) { if (flag == "0") { this.stop(); } else if (flag == "1") { this.nextFrame(); } else if (flag == "2") { this.prevFrame(); } } on (release) { getURL("http://www.test.com"); } 静止しているボタンのような形のMCにマウスオーバーでアニメーションして(光る等)、 クリックしてリンク先に飛ぶようになっています。 ※swfobjectではなく通常の埋め込み方法では、動作確認済みです。 アニメーションに関係するスクリプトは、この問題に関係ないかとは思いますが、もし何か原因の一つであったらと思い記入致しました。 swfobjectでは、ボタンでリンクするのに何か特殊な事が必要なのでしょうか? それとも、上記スクリプトに何か原因があるのでしょうか? 何か小さな助言だけでも大変助かりますので、 ご存知の方、何卒よろしくお願いします。

  • アクションスクリプトについて質問です。

    アクションスクリプトについて質問です。 ◆やりたいこと◆ 曜日を取得して、その曜日のフレーム内容を表示させたいです。 ◆試したこと◆ アクションスクリプトをいろいろなサイトを見ながら作ってみました。 myDate = new Date(); myDay = myDate.getDay(); if (myDay == 0) { gotoAndStop("sun"); } else if (myDay == 1) { gotoAndStop("mon"); } else if (myDay == 2) { gotoAndStop("tue"); } else if (myDay == 3) { gotoAndStop("wed"); } else if (myDay == 4) { gotoAndStop("thu"); } else if (myDay == 5) { gotoAndStop("fri"); } else if (myDay == 6) { gotoAndStop("sat"); } ◆不具合内容◆ データは表示されるのですが、myday のsun がまず表示されてしまいます。 ブラウザの更新をかけないと、その曜日のフレームの内容が表示されません。 3台のPCで試しましたが、同様な状態になります。 アクションスクリプトに不具合があるかと思うのですが 無知なため、これ以上のアイデアがでません。 どこを修正すれば良いのかお教えいただけませんでしょうか? こちらの作成ソフトはfrimo 3 で ActionScript2.0、Flash Player8で吐き出ししております。

  • 良いソースの書き方について(複数のインスタンスをまとめてヒットテストする方法)

    ■例文: ---------------------------------------------------------------- onClipEvent (enterFrame) { if ( this.hitTest(_root.char1)) { _parent.nextFrame(); } else if ( this.hitTest(_root.char2)) { _parent.nextFrame(); } else if ( this.hitTest(_root.char3)) { _parent.nextFrame(); } else if ( this.hitTest(_root.char4)) { _parent.nextFrame(); } else if ( this.hitTest(_root.char5)) { _parent.nextFrame(); } else if ( this.hitTest(_root.char6)) { _parent.nextFrame(); } else if ( this.hitTest(_root.char7)) { _parent.nextFrame(); } else if ( this.hitTest(_root.char8)) { _parent.nextFrame(); } else if ( this.hitTest(_root.char9)) { _parent.nextFrame(); } else if ( this.hitTest(_root.char10)) { _parent.nextFrame(); } else if ( this.hitTest(_root.char11)) { _parent.nextFrame(); } } ---------------------------------------------------------------- 上記は、_root.char1 から_root.char11までインタンス名をつけたムービークリップとのヒット確認をするアクションスクリプトです。 こういう動作をしたい場合。 for文を駆使する等で、ソースを短くまとめる方法はありませんでしょうか。 いい案がありましたら、是非ご教授の程宜しくお願い致します。

    • ベストアンサー
    • Flash

専門家に質問してみよう