メイン コーダーズルーム【スクリプト系】 ActionScript内で待機したい | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
hiruma | Åê¹ÆNo.1868 投稿日時: 2003-12-3 12:53 |
半人前 居住地: 投稿: 42
使用環境:
Win2000 + MX pro 2004 MacOS10.2 + MX |
ActionScript内で待機したい 文字を一文字ずつ表示させたいのですが
//文字を一文字ずつ表示 i = com.length; for (j=0;j<i;j++) { _parent.comment=com.slice(0,j); //待機時間 for (k=0;k<10000;k++){ l++; } } としていますが、一回目のfor文の部分はうまく待機してくれるのですが、2回目以降キャッシュしてしまうのかすぐに表示されてしまいます。 何か良い方法はないでしょうか。 XP+MXで作業しています。 よろしくお願いいたします。 |
近藤泰一 | Åê¹ÆNo.1876 投稿日時: 2003-12-3 14:38 |
常連 居住地: 神奈川県 投稿: 112
使用環境:
Pro Pro |
Re: ActionScript内で待機したい 「待機したい」というのは、一定時間止まってから先に進むようにするということでしょうか。
であれば、forで計算させて時間を空けるというのは良くないと思います。 マシンによって計算の時間は変わりますし。 一定時間待つのであれば、いろいろやり方がありますが、 フレームをその分のばすのが一番簡単なのでFlashらしいのではないでしょうか。 スクリプトで間隔を空けるのであれば、setIntervalを使うのが簡単でしょう。 forではなくて、enterFrameでカウントアップしていくとか、getTimerで制御するとか そういう方法も考えられます。 どのような目的であるかによって最適な方法も変わってくると思いますよ。
|
とんび | Åê¹ÆNo.1881 投稿日時: 2003-12-3 17:06 |
Bak@Fla大巨匠 居住地: 佐賀県 杵島郡 投稿: 275
使用環境:
MX CS3 :Flash CS6:CS6 .7.5 |
Re: ActionScript内で待機したい kondoさんの書いてらっしゃるように、forをぶん回す方法には時間をチェックする部分が無いし、フレーム進行を止めてしまうので、Flash的には色々と問題あります。
私が作ったのは、次のURLで書いているように、フレームアクションから関数を呼び出して、そこでカウントアップさせるという方法です。 http://www.tonbi.jp/Flash/Diary/009/index.html もちろん、setIntervalなんかを利用するのもいいと思います。setIntervalはフレーム単位じゃなくてミリ秒単位なので、設定する数字の感覚が掴みにくいかもしれません。 |
hiruma | Åê¹ÆNo.1896 投稿日時: 2003-12-3 21:56 |
半人前 居住地: 投稿: 42
使用環境:
Win2000 + MX pro 2004 MacOS10.2 + MX |
Re: ActionScript内で待機したい Condoさま、tonbiさま
ありがとうございました。 ご指摘の通り待機ではなく一定時間の静止です。 いろいろ試してみたんですが、思うように動作しません。 function wait(); _parent.comment=com.slice(0,j); } //文字を一文字ずつ表示 i = com.length; for (j=0;j<i;j++) { setInterval(wait,1000); } としたり、tonbiさんのサイトにあるスクリプトを試したりしてみたのですが、どちらも変数comの中身がまとめて時間が遅れて表示されるだけで、1文字ずつ表示しないのです。 ちなみに全体はこんな感じです。 メインのシーンにMCがあり、そこをクリックすると同じくメインのシーンに貼り付けてあるテキストの表示(comment)が動いていくという仕様なのですが on (press) { count+=1; switch (count) { case 1: com="あいうえお"; break; case 2: com="かきくけこ"; break; case 3: com="さしすせそ"; break; case 4: com="たちつてと"; break; } //文字を一文字ずつ表示 function Interval(){ _parent.comment=com.slice(0,j); } i = com.length; for (j=0;j<i+1;j++) { setInterval(Interval, 10000 ); } } on(press)の中で全部処理させようとしてるのが間違いなんでしょうか。。。 |
野中文雄 | Åê¹ÆNo.1897 投稿日時: 2003-12-3 22:34 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: ActionScript内で待機したい 1秒後に鳴る目覚まし時計を10個1度にセットすると、どうなるでしょう? 当然1秒後にすべてが一斉に鳴り始めます。
引用: hirumaさんは書きました: setIntervalは、セットした時間間隔ごとに鳴るタイマーです。ですから、間隔を空けて実行したいなら、ひとつセットすれば足ります。 あと、用が済んだら、それ以上鳴らないようにリセットした方がよいでしょう。
引用: どちらも変数comの中身がまとめて時間が遅れて表示されるだけで、1文字ずつ表示しないのです。 |
hiruma | Åê¹ÆNo.1899 投稿日時: 2003-12-3 23:45 |
半人前 居住地: 投稿: 42
使用環境:
Win2000 + MX pro 2004 MacOS10.2 + MX |
Re: ActionScript内で待機したい Fumioさま
ありがとうございました。 無事動作いたしました。 しかし、うーん。自分自身で納得できていないのでもう少し勉強してみます。 本当にありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |