重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

if ((mc.x - 1)< 200) {
mc.x = mc.x+1;

このようにすると、200まで1ずつ進んでいきますが、200まで、5秒に一度5ずつ進ませるにはどうしたらいいですか??

5進んで5秒停止、5進んで5停止を200まで繰り返させたいです。

A 回答 (1件)

mc.x などという書き方をされているところから推測して


ご使用の ActionScript のバージョンは 3.0 ですよね?

また何の説明もありませんが
mc.x の mc とはステージ上にあるムービークリップのインスタンス名ですよね?

その辺のことはちゃんと記述すべきです。
その他に関しても説明が不足し過ぎているため
「いったい何だ? どうしたいんだ?」と思うことが多々多々ありますが
私の推測を含めて一応スクリプトを考えてみました。


/*===========================================*/
//カウンタとなる変数「cnt」を用意
var cnt:int=0;

//「mc」を右に 5px 動かす関数「moveMC」を作成
function moveMC(e:Event):void {
if (mc.x<200) {
if (mc.x<cnt*5) {
mc.x+=1;
} else {
//「mc」から毎フレーム実行する関数「moveMC」を削除
mc.removeEventListener(Event.ENTER_FRAME,moveMC);
}
} else {
//指定時間間隔で関数「startMC」を実行するのをやめる
myTimer.removeEventListener(TimerEvent.TIMER, startMC);
}
}

//5秒間隔で動作するTimerインスタンスを作成
var myTimer:Timer=new Timer(5000,0);
//指定時間間隔で関数「startMC」を実行
myTimer.addEventListener(TimerEvent.TIMER, startMC);
//タイマースタート;
myTimer.start();

//関数「startMove」の定義;
function startMC(te:TimerEvent):void {
//カウンタに1を加算
cnt++;
//「mc」に毎フレーム実行する関数「moveMC」を登録
mc.addEventListener(Event.ENTER_FRAME,moveMC);
}

//関数「startMove」をすぐに実行
startMC(null);
/*===========================================*/


5秒間隔で5pxずつ動くのですから
かなり地味な動きですよ。。。

この回答への補足

すみません。試してみましたが、インスタンスmcが全く動かない状態です。

補足日時:2011/12/29 23:23
    • good
    • 0
この回答へのお礼

ありがとうございます。試します。

お礼日時:2011/12/29 15:20

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