Flashでムービープレーヤーを作ろう!

作成するインターフェースの概要 前回までは2回にわたって、自作のMP3プレーヤーを作成しましたが、今回はビデオプレーヤーを制作します。作成するものはYoutube風のインターフェースをIllustratorで作成して、それをFlashに読み込み、各機能を実装します。実装する機能は以下のとおりです。

吉田 光利

2008年6月26日 20:00

作成するインターフェースの概要

 前回までは2回にわたって、自作のMP3プレーヤーを作成しましたが、今回はビデオプレーヤーを制作します。作成するものはYoutube風のインターフェースをIllustratorで作成して、それをFlashに読み込み、各機能を実装します。実装する機能は以下のとおりです。

 1つ目は、一時停止と再生を切り替える「トグルボタン」です。

 2つ目は、再生する時間とともに進んでいく「再生スライダー」です。これをドラッグすることで、時間を戻したり、早めたりすることができます。

 3つ目は、メタ情報からビデオのトータル時間と再生時間を表示させます。

 以上のようなものを制作することができれば、どのようなデザインのインターフェースでも作れるようになります。例えば、「続きはWebで」系のムービーなどは、その商品のテイストに合ったものが求められますが、その場合、Flashに最初から用意されているコンポーネントなどでは「うまくテイストが合わない」ということがままあります。今回解説するインターフェースの制作方法をマスターしておくと、このような事態を回避でき、どのような局面にも対応できるようになります。

Flashビデオで使用する基本的なクラス

 ここからはFlashでビデオを扱うために、必要なActionScriptを紹介します(図1)。ソースはここからダウンロード(http://www.thinkit.co.jp/images/article/85/4/8541.zip)できますので、ファイルを見ながら読み進めてください(8541.zip/226 KB)。

 NetConnectionクラスは、Flash Media Serverがなくても、Webサーバからビデオファイル、MP3ファイルを扱えるようにしてくれます。要するに、ローカルにあるflvファイルを疑似ストリーミングさせるという機能を提供してくれます。具体的には、まずNetConnectionのオブジェクトを作成して、connectメソッドで接続を確立します。なおローカルコンピューターのビデオファイルに接続している場合は、connectメソッドのパラメータをnullに設定します。

var connection:NetConnection = new NetConnection();
connection.connect (null);

 次に、NetStreamオブジェクトを作成します。ストリーミング接続を開くために必要なオブジェクトです。このクラスはビデオを扱う上で非常で、ビデオの基本的な操作である「再生」「停止」「一時停止」などを扱うことができます。この使い方は後で説明しますので、まずは上で作成したNetConnectionオブジェクトからNetStreamオブジェクトを作成します。

var stream:NetStream = new NetStream(connection);

 Videoクラスはビデオを表示するためのクラスです。このオブジェクトを使ってステージ上にビデオを表示します。

var my_video: Video = new Video();
stage.addChild (my_video);

 また、作成されたVideoオブジェクトに対して「幅」「高さ」「表示位置」を設定することができます。

my_video.x = 0; my_video.y = 0;
my_video.width = 350; my_video.height = 240;

 次のページではインターフェースの作成を紹介します。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30