• ベストアンサー

onClipEvent (enterFrame)を利用して一旦止めたいのですが。

質問させてください。 onClipEvent (enterFrame) { this._x = this._x - spd; if (this._x <= (-600) * num) { this._x = 0; } } を利用して、右から左へテキストが流れるよに設定しましたが、 一旦、x軸10で止めて、10秒後にまた流れる、という形にしたいのですが、 ご教授いただけますでしょうか。 WIN XP FLASH 8

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

  • ベストアンサー
noname#35109
noname#35109
回答No.1

謎な部分が多いですが, 一応,ムービークリップ(MC)の初期座標(MCの基準点の初期座標)が, 10 より大きい場合について考えてみました。 書かれているスクリプトを次のようにすると, 一応うまく行くことは行きます。 場合によりますけどね。 --------------------------------------------- // このMCの初期 x座標は 10 以上だとする onClipEvent (load) { // ↓適当に定数を入れました num = 1; spd = 5; // 変数 flg の初期化 var flg = 0; // - - - // ユーザー定義関数 stopMC の定義 function stopMC() { // setIntervalを定義して ID を変数 myID に設定 myID = setInterval(function () { // スピードを 5 に戻す spd = 5; // この setInterval をクリア clearInterval(myID); // 10000ミリ秒(10秒)後に setInterval 内を実行 }, 10000); } } // - - - // 1フレーム進む時間ごとに毎回実行 onClipEvent (enterFrame) { this._x = this._x-spd; // - - - if (this._x<=(-600)*num) { this._x = 0; // 変数 flg を 0 に戻す flg = 0; } // - - - // x座標が 10 以下で0より大きく flg が 0 のとき if (this._x<=10 && this._x>0 && flg == 0) { // スピードを 0 にする spd = 0; // ユーザー定義関数 stopMC の実行 stopMC(); // 変数 flg を 1 にする。 flg = 1; } } -------------------------------------------- 要点を書くと, setIntervalアクションで, 「○秒後に□□する」というのを使うのです。 「外部SWFムービー内のfunctionをロード直後に呼出す」 より,「3. setIntervalアクションを使う」 http://www.fumiononaka.com/TechNotes/Flash/FN0304001.html しかし…, 書かれているスクリプト自体がイマヒトツ理解できません。 >> 一旦、x軸10で止めて、10秒後にまた流れる、 という部分がわからないのです。 "普通に(素直に)" 書かれているスクリプトを読みとると, ムービークリップは左に動き, ムービークリップ(ムービークリップの基準点)は, 0 ~ -600×正の数 の間を行き来するだけで, x座標が 10 になることはありません。 ムービークリップの初期位置が,10より大きい場合は, 初回 だけ x座標 が 10 になることもありますが, その 初回 だけ,10秒止めたいということでしょうか? それとも, 変数 spd や num に,負の数が入ると, ムービークリップは 右に動くので,x座標 10 を通ることは何度でもあります。 そういう場合でしょうか? 1 spd に入る数の例(例えば5が入るなどの例)と, 2 num に入る数の例(これも例えばでかまいません)と, 3 ムービークリップの初期 x座標(だいたいでかまいません)と, 4 x座標 10 に到達するたびに 10 秒止めるのか,   初回に x座標 10 に到達したときだけ 10 秒止めるのか, もし 上記スクリプトのコピペや, 上記スクリプトからの応用を考えてもうまく行かない場合はこの4点を補足してください。 例えば,ムービークリップが, 右に動くのか左に動くのかだけでもスクリプトは変わりますよ。

sakura0000
質問者

お礼

つたない説明にもかかわらず、ご回答本当にありがとうございます! 教えていただいたスクリプトのコピペで止めることができました。 ただ、ご指摘いただいたようにわたしの座標の認識が間違えているようで、 希望の位置で止めることができません(汗) 外部テキストが左から右へ動く仕様のものを作成中で、 初回だけでなく、毎回その位置で止まってくれるように設定したいと考えています。 教えていただいた、応用や、サイトを参考に勉強させていただきます。 ありがとうございました!

関連するQ&A