- ベストアンサー
ロードしたムービーの早送りができない?
- WinXPでFlashMXでプログラムを作成しており、メインムービーにサブムービーをロードしています。現在のフレームから2フレーム飛ばすことはできますが、都度クリックが必要です。早送りのような機能はないのでしょうか?
- 質問者はWinXPでFlashMXでプログラムを作成しており、メインムービーにサブムービーをロードしています。コマ送りのような機能はできたが、早送りができずに困っています。検索したプログラムは上手く動作しなかったため、早送りの方法を教えて欲しいとのことです。
- 質問者はWinXPでFlashMXでプログラムを作成しており、メインムービーにサブムービーをロードしてます。コマ送りのようなものはできたが、早送りができずに困っています。検索したプログラムはうまく動かず、都度クリックが必要な状態です。早送りの方法を教えて欲しいとのことです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
_currentframe+(2*fps) に関してはよくわかりません。 >> 早送りのような機能はないのでしょうか? 特に早送りという機能はないと思います(ちょっと不明)。 >> 都度クリックしなければなりません。 onEnterFrameで,1秒毎フレームレートに1回,同じ計算をするので, 早送りボタンに on (press) { this.onEnterFrame = function() { load.gotoAndPlay(load._currentframe += 2); }; } on (release, dragOut) { this.onEnterFrame = null; load.Play; } と書かれてはどうでしょうか。 (load._currentframe+(2)); でも早送りしますが,なんとなくウズウズするので, (load._currentframe += 2); に変えさせて頂きました。 マウスを上げると this.onEnterFrame = null; で,いったんonEnterFrameが解除されて,その後は普通にPlayするようにしています。
その他の回答 (2)
ものすごく返事が遅くなってしまいました。 すみません。 >> していて60フレームから100フレームを >> 繰り返し再生するようにしてあります。 つまり,早送りしても60フレームに戻れば良いわけですね。 元のスクリプトのまま,その部分だけを変えると, on (press) { this.onEnterFrame = function() { load.gotoAndPlay(load._currentframe + 2); if (load._currentframe >= 100) { load.gotoAndPlay(60); } }; } on (release, dragOut) { this.onEnterFrame = null; load.Play; } という具合になります。 もし100フレーム(以上)になったら,60フレームにgotoするということです。
#1です。 (load._currentframe+(2*fps)); の意味がやっとわかりました(遅すぎ)。 (load._currentframe+(秒*フレームレート)); ということです。 fpsという関数は聞いたことないし,fpsという変数をどこかで作って, そこにフレームレートでも代入するのかな? などと,変な方向を考えていました。 2秒ムービーを進めたいなら,「2×フレームレート」にするという公式というかそういう意味のものです。 実際に2秒進めるのは速すぎると思うので,仮に0.5秒進めたいと思ったら, 0.5×12(デフォルトの場合)=6 となるので, (load._currentframe+6); にすると言うことです。 考える基準がフレームではなくて秒の場合の話です。 それで,その他も考え直しましたが, gotoAndPlayを中心に考えると gotoAndPlay(絶対フレーム数) ですから,質問者様の言うとおり load.gotoAndPlay(load._currentframe+2); で良いのです。 ですから,前のを向上させると on (press) { this.onEnterFrame = function() { load.gotoAndPlay(load._currentframe+2); }; } on (release, dragOut) { this.onEnterFrame = null; load.Play; } となります。 on (release, dragOut)以下は別に書かなくて,他のボタンのスクリプトとしてもいいです。 その場合早送りボタンは, on (release) { this.onEnterFrame = function() { load.gotoAndPlay(load._currentframe+2); }; } だけでもいいことになります。 ただしこのボタンを1度クリックすると,早送りしっぱなしになります。
お礼
sassakunさん「ボタンの表示非表示」に続きご回答ありがとうございます。 早送りの件上手くいきました。 ちょっと問題点が。 LOADされたムービーは1フレームから再生して100フレームまで行くと60フレームにgotoAndPlay(60);と していて60フレームから100フレームを繰り返し再生するようにしてあります。 今回の早送り機能でマウスをon (release)のままにしておくと1フレームから100フレームの繰り返しになってしまいました。 これはいたしかたないでしょうか? 分かりましたらご教授願います。
お礼
sassakunさんありがとうございます。 上手く出来ました。 いろいろご教授くださいましてありがとうございます。