• 締切
  • すぐに回答を!

flash actionscriptとタイムライン

  • 質問No.5457111
  • 閲覧数473
  • ありがとう数3
  • 回答数3

お礼率 33% (1/3)

flash CS4 Xpでの開発環境です。

メインのタイムラインとムービークリップ自身が持つタイムラインの二つのラインがあります。メインのタイムラインは5fで構成されており、1Fずつキーフレームが設置してあります。

メインのタイムライン上にアクションスクリプト
1F目
var flag=0;
stop();
if(flag=1){gotoAndPlay(2)}
と書かれています。

ムービークリップはメインのタイムライン上の1F目に設置してあり,ムービークリップのタイムラインは60Fで構成されていて、60F目にactionscript
flag=1;

と書いています。
ムービークリップの動きがすべて終わってから、メインのタイムラインを2F目に進めたいのですが、現状ではすぐに2F目にうつってしまうような感じになってしまっています。
どこがいけないのでしょうか?

もし知っている方がいましたらご教授いただきたいです。
よろしくお願いします。

回答 (全3件)

  • 回答No.3

ベストアンサー率 91% (1611/1754)

ActionScript2.0以下なのか3.0なのかがご質問からは判断できませんが,
どちらにしても

if(flag=1){gotoAndPlay(2)}

これは変です。
flag=1 の 「=」 は代入演算子です。
変数flagに1を代入しなさい という意味になります。
if判定では true が返ります。

「=」ではなく「==」にする必要があると思います。
「==」が等価演算子です。
  • 回答No.2

ベストアンサー率 84% (45/53)

AS3.0をお使いなら、
-MainTimeLine側:
//ここから
stop();
var flag:Boolean = false;
var n:int=0;//フレームを数えるカウンターで、検証用
addEventListener(Event.ENTER_FRAME,xEnterFrame,false,0,true);
function xEnterFrame(e:Event):void {
n++;
if (flag) {
gotoAndStop(2);
removeEventListener(Event.ENTER_FRAME,xEnterFrame);
}
trace(n);
}
//ここまで
-MovieClipの最終フレーム:
//ここから
this.stop();
this.parent.flag=true;
//ここまで

となります。
  • 回答No.1

ベストアンサー率 84% (45/53)

jjoe56513さん、
-MainTimeLine側
//ここから
stop();
var flag = 0;
var n:Number=0;//追記、フレームを数えるカウンターで、検証用
this.onEnterFrame = function():Void {//追記、flagの変化を常時監視し、
n++;//カウントアップ
if (flag == 1) {//MovieClipの最後のフレームで、_root.flag=1としてるので、これが、達成されたら、
gotoAndStop(2);//MainTimeLineが第二フレームに移動して、停止
this.onEnterFrame=null;//同時に、不要なonEnterFrameを無効化する
}
trace(n);//検証用
};
//ここまで
尚、if(flag=1)は、変数 flagを1にしたならの意味で、if(flag==1)はflagが、1ならばの意味ですから、意味が異なります。このサイトだと、見えずらいのですが、一つのイコールと2つ連続したイコールの意味です。

-MovieClip側:最終フレームに、
this.stop();
_root.flag=1;//この場合は、this._parent.flag=1;でもいいです。
お礼コメント
jjoe56513

お礼率 33% (1/3)

回答ありがとうございます。

無事これでやりたいことができるようになりました。

ただ、actionscript3.0から_root.が廃止されたそうでthis._parent.flagをつかったところ無事できました。本当にありがとうございました。
投稿日時:2009/11/19 08:10
関連するQ&A

ピックアップ

ページ先頭へ