Flashをビデオのようにシーク、再生停止できるMovieClipController(ver.2)を公開
僕がよくFlashのテストで使ってるMovieClipControllerを公開します。
これは、Flashにシークバーとボリュームコントローラを簡単につけることができます。
まずはこちらを見てください。
使い方は簡単です。
基本は_rootに置きます。すると、_rootのフレーム数を取得して、FlashVideoを操作するかのようにMovieClipを操作できます。再生/停止、シーク。対象となるのはこの場合_rootですが、実際は、このmcコントローラを配置したmcです。
一番簡単な基本セットですが、お気軽にダウンロードしてください。一応クリエイティブコモンズライセンスってことにしておきます。by Ryow.netです。
今回公開したのはver2ですが、今後の展望としては、外部ファイル読み込み(loadMovieとかMovieClipLoaderとか)に対応してシークを可能にするver.2.1と、AS3に対応したver.2forAS3の公開、1フレームごとに戻る/進むに対応したver2.12、キーボードの上下左右に対応したver2.13も、反応を待って、しようと思います。どんだけあるんだ。っていうか↓のソース見れば誰でも書けます。むしろ「こう書いたほうがかっこいいよ!スムーズでスマートだよ!!」っていう書き方があったら教えてください。
問題点としては、フレームレートを取得できないのでAS内で直接指定しちゃってるところがあります。
2008.02 追記:ver2.1をこちらのエントリで公開しました。
そもそも何で公開すんのかっていうと、Flashにシークバーをつけるコンポーネントを開発公開してる人が僕の知る限りいないからです。どんどんFlex化していって、総フレーム数1でFlashを作ることが多くなりますが、やっぱりタイムライン職人はこういうのがあると嬉しいと思います。
っていうか、ナイトメアシティとかに代表される紅白Flashのムービーに、こういうコントローラがあるといいな、って単純に思ったからです。
タイムライン派こそ、こういうスクリプトとの共存共生をはかり、進化するべきなんじゃないかなぁ。
→ダウンロードはこちら(ver8 .flaファイル)
ファイルダウンロードさせてもらいました。
素晴らしいですね!
Flashにシークバーを実装したい人、けっこういると思います。flvならコンポーネント使えばいいのですがFlashとなるとまともなサンプルを見た事がありませんでした。一から作成は僕にはまだまだ難しいのでこのようなサンプを公開していただいた事にめっちゃ感謝しています。
ていうかぶっちゃけ必死で探してたのよ・・・。
ありがとうございます!!
>通りすがり
コメントありがとうございました!
やっぱ微妙にニーズありますよね。
「前へ」「次へ」だけじゃなくて、今再生してるのが全体のどの辺なのかを知りたいってのが結構あると思います。
お気軽に使ってくださいませ。
ファイルをダウンロードさせていただきました。
操作感がとても良くて感動いたしました。
シークバーでは何度も悩まされております。
検索しても必要なサンプルがなくて・・・。
今は外部ファイル読み込みに対応してシークを可能にするver.3を心待ちにしているのですが、いつ頃作成される予定ですか?
また、複数の外部ファイル読み込みで、そのトータル時間に対応したシークを作ることは可能なのでしょうか?
質問攻めでスミマセン。
お教えいただけたら嬉しいです。
>シークバー捜索中
コメントありがとうございました!
外部ファイル読み込み用のはアップしてないだけで手元にあるので、近日中にアップするつもりです。
複数の外部ファイルのトータル…に関しては、
僕もそういうのが必要になったことがあって(FlashのMAXフレーム16000を超えるムービーをシークしなきゃいけなかったとき)、結局前半と後半で別ファイルとして作成してしまいました。
つまりこのファイルでは対応できないということです。スミマセン。
複数のファイルをひとつとしてシークするのは他の方のアドバイスなどをいただければいいなーと思ってます。。
早々にご回答いただきありがとうございました。m(_ _)m
やはり複数の外部ファイルを制御するのは難しいのですね・・・。
もうちょっと別の方法で考えてみます。
ryowさんのシークバー、操作性が良いのでver.2.1、楽しみにしています。
大変参考になりました。ありがとうございます。
segmentWidthは何を算出しているのでしょうか?
segmentWidth = bgWidth/targetMC._totalframes;
これは、背景の幅(シークバーがクリックできるエリア)をクリックできるフレーム数で割ることで、1フレームあたりの幅を算出しています。
あとでクリックされたとき、クリックされたx座標にこの1フレームあたりの幅をかけることで、シーク位置を特定しています。その結果、ターゲットとなるmcをgotoさせている、という寸法です。
これはAS2の習作なので、もっとスマートなやり方もきっとあると思います!
やっと見つけました。ver8でFlashサイト制作してて、flvが読み込めずswfのみ読み込み可能で、その為flv用コンポーネントが使用出来なかったので、この2週間色々悩んでました。
おかげでswfサイトに読み込む形でシークバー付きswfムービー読み込み・再生出来ました。ありがたや。
でも、ボリュームが機能しませんでした。上記読んでも私だけなのでしょうか?どこか設定必要なのでしょうか?どうかアドバイスいただけませんでしょうか?素人なので宜しくお願いいたします。(ところで、Remember personal info?ってどういう意味でしょうか?)
やっとみつけました・・・!これです!プログラムがまだちょっとしかわからない私はタイムラインに音を載せるだけでできるものを探してました・・・!ありがとうございます!おかりします!!!