回答受付中の質問
flash CS4 Xpでの開発環境です。
メインのタイムラインとムービークリップ自身が持つタイムラインの二つのラインがあります。メインのタイムラインは5fで構成されており、1Fずつキーフレームが設置してあります。
メインのタイムライン上にアクションスクリプト
1F目
var flag=0;
stop();
if(flag=1){gotoAndPlay(2)}
と書かれています。
ムービークリップはメインのタイムライン上の1F目に設置してあり,ムービークリップのタイムラインは60Fで構成されていて、60F目にactionscript
flag=1;
と書いています。
ムービークリップの動きがすべて終わってから、メインのタイムラインを2F目に進めたいのですが、現状ではすぐに2F目にうつってしまうような感じになってしまっています。
どこがいけないのでしょうか?
もし知っている方がいましたらご教授いただきたいです。
よろしくお願いします。
投稿日時 - 2009-11-18 10:19:41
2人が「このQ&Aが役に立った」と投票しています
回答(3件中 1~3件目)
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;
//ここまで
となります。
投稿日時 - 2009-11-19 09:16:30
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;でもいいです。
投稿日時 - 2009-11-18 14:54:29
お礼
回答ありがとうございます。
無事これでやりたいことができるようになりました。
ただ、actionscript3.0から_root.が廃止されたそうでthis._parent.flagをつかったところ無事できました。本当にありがとうございました。
投稿日時 - 2009-11-19 08:10:06
OKWaveのオススメ
おすすめリンク