- 2007年11月18日 00:12
- UI
僕がよく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ファイル)
- Newer: ニコニコで最近ハマってるのは「出オチ」
- Older: SWFObjectを使うときに気をつけること
Comments:8
- 通りすがり 2007年11月23日 22:03
ファイルダウンロードさせてもらいました。
素晴らしいですね!Flashにシークバーを実装したい人、けっこういると思います。flvならコンポーネント使えばいいのですがFlashとなるとまともなサンプルを見た事がありませんでした。一から作成は僕にはまだまだ難しいのでこのようなサンプを公開していただいた事にめっちゃ感謝しています。
ていうかぶっちゃけ必死で探してたのよ・・・。ありがとうございます!!
- ryow 2007年11月24日 15:34
>通りすがり
コメントありがとうございました!
やっぱ微妙にニーズありますよね。「前へ」「次へ」だけじゃなくて、今再生してるのが全体のどの辺なのかを知りたいってのが結構あると思います。
お気軽に使ってくださいませ。- シークバー捜索中 2008年2月 7日 18:02
ファイルをダウンロードさせていただきました。
操作感がとても良くて感動いたしました。シークバーでは何度も悩まされております。
検索しても必要なサンプルがなくて・・・。
今は外部ファイル読み込みに対応してシークを可能にするver.3を心待ちにしているのですが、いつ頃作成される予定ですか?また、複数の外部ファイル読み込みで、そのトータル時間に対応したシークを作ることは可能なのでしょうか?
質問攻めでスミマセン。
お教えいただけたら嬉しいです。- ryow 2008年2月 7日 22:09
>シークバー捜索中
コメントありがとうございました!外部ファイル読み込み用のはアップしてないだけで手元にあるので、近日中にアップするつもりです。
複数の外部ファイルのトータル…に関しては、
僕もそういうのが必要になったことがあって(FlashのMAXフレーム16000を超えるムービーをシークしなきゃいけなかったとき)、結局前半と後半で別ファイルとして作成してしまいました。つまりこのファイルでは対応できないということです。スミマセン。
複数のファイルをひとつとしてシークするのは他の方のアドバイスなどをいただければいいなーと思ってます。。
- シークバー捜索中 2008年2月 8日 18:59
早々にご回答いただきありがとうございました。m(_ _)m
やはり複数の外部ファイルを制御するのは難しいのですね・・・。もうちょっと別の方法で考えてみます。
ryowさんのシークバー、操作性が良いのでver.2.1、楽しみにしています。
大変参考になりました。ありがとうございます。- 通りすがり 2009年7月 6日 19:58
segmentWidthは何を算出しているのでしょうか?
-
ryow
2009年7月 8日 01:19
segmentWidth = bgWidth/targetMC._totalframes;
これは、背景の幅(シークバーがクリックできるエリア)をクリックできるフレーム数で割ることで、1フレームあたりの幅を算出しています。あとでクリックされたとき、クリックされたx座標にこの1フレームあたりの幅をかけることで、シーク位置を特定しています。その結果、ターゲットとなるmcをgotoさせている、という寸法です。
これはAS2の習作なので、もっとスマートなやり方もきっとあると思います!
- ishiyan 2010年6月 3日 14:10
やっと見つけました。ver8でFlashサイト制作してて、flvが読み込めずswfのみ読み込み可能で、その為flv用コンポーネントが使用出来なかったので、この2週間色々悩んでました。
おかげでswfサイトに読み込む形でシークバー付きswfムービー読み込み・再生出来ました。ありがたや。
でも、ボリュームが機能しませんでした。上記読んでも私だけなのでしょうか?どこか設定必要なのでしょうか?どうかアドバイスいただけませんでしょうか?素人なので宜しくお願いいたします。(ところで、Remember personal info?ってどういう意味でしょうか?)
Trackbacks:0
- TrackBack URL for this entry
- http://ryow.net/mt/mt-tb.cgi/253
- Listed below are links to weblogs that reference
- Flashをビデオのようにシーク、再生停止できるMovieClipController(ver.2)を公開 from ryow.net Blog