9 November 2005
ページ ツール |
この記事の目的は、スキン適用機能を使用した FLVPlayback コンポーネントのカスタマイズについて説明することです。ビデオの再生および制御方法の詳細については、「Flash Video Template: Video Presentation with Navigation」を参照してください。
中級
この記事を理解するために必須というわけではありませんが、作業中のファイルでスキンのカスタマイズをテストできるように、Flash Video FLV ファイルを手元に用意することをお勧めします。FLV ファイルが手元にない場合は、FLVPlayback コンポーネントの contentPath プロパティで次の URL を使用することもできます。
Flash Professional 8 での機能アップグレードの 1 つは Flash Video 用の新しい FLVPlayback コンポーネントです。Flash Video コンポーネントの外観を自由にカスタマイズしたいと考えていたユーザーには待望のアップグレードです。FLVPlayback コンポーネントでは、拡張された ActionScript API が提供され、グラフィックのカスタマイズ、スキンの適用のための方法も複数用意されています。
この記事では、FLVPlayback コンポーネントへのスキン適用のための、次の 3 つの方法について順に説明します。
新しい FLVPlayback コンポーネントには優れた機能が満載されています。FLVPlayback コンポーネントで作業しているとまず気付くのは、作成済みスキンが各種用意されていることです。スキン SWF ファイルは、再生中のビデオの制御に FLVPlayback コンポーネントで使用できる作成済みコントロールの集まりです。[スキンの選択] ダイアログボックスを使用して、外観とコントロールのさまざまな組み合わせを選択できます (図 1 を参照)。
作成済みスキンの選択はビデオプレーヤーの外観を変更するための最も簡単な方法です。この方法では、ダイアログボックスを開き、プレビューブラウザから目的のスキンを選択するだけです。残りの操作は Flash が自動的に行います。
Flash Professional 8 では、[ビデオの読み込み] コマンドを使用して、ビデオコンポーネントをステージに追加し、そのコンポーネントに外部 FLV ファイルを割り当て、[スキンの選択] ダイアログボックスから目的のスキンを選択できます。この手順は非常に単純なので、Flash に不慣れな場合や、すばやく目的を達成したい場合にお勧めします。ビデオコンポーネントをステージに初めて追加するときに、この手順を使用できます。その後、コンポーネントインスペクタを使用してスキンオプションを変更します。
ここでは、[ビデオの読み込み] コマンドを使用してスキンを割り当てる基本的な手順を示します。
[ビデオの読み込みの終了] 画面で設定を確認し、[終了] をクリックしてウィザードを終了します。FLVPlayback コンポーネントがステージに追加されたことに注目してください。このコンポーネントは、手順 3 で割り当てた FLV ファイルに合わせてサイズが調整されています。
メモ : FLVPlayback コンポーネントのサイズの調整には、FLV ファイルに埋め込まれているメタデータが使用されます。以前のバージョンの FLV ファイルには、このメタデータが埋め込まれていない場合があります。その場合、コンポーネントのサイズは自動的に調整されません。最良の結果を得るには、Flash 8 Video Encoder を使用してソースファイルを FLV 形式に再度エンコードします。ソースファイルが使用可能でない場合は、FLV メタデータユーティリィティ (FLV MetaData Injector など) を使用して必要なメタデータを埋め込むことによって、この問題に対処できます。
contentPath プロパティには、ビデオへの URL が設定されています。また、skin プロパティには、手順 5 で選択したスキン SWF ファイルの名前が設定されています。これらの点に注意してください。この時点でのスキンの変更は、コンポーネントインスペクタでスキンパラメータを手動で変更することによって可能です。FLVPlayback コンポーネントをステージに配置した後、コンポーネントインスペクタを使用して、選択したスキン (および他の各種パラメータ) を変更します。必要に応じて異なるスキンに何度でも変更できます。
前の実習の手順に続いて、ここでは、コンポーネントインスペクタによるスキンの割り当てや変更の手順を示します。
skin プロパティをクリックして選択し、再度クリックしてダイアログボックスを開きます。[スキンの選択] ダイアログボックスが開きます。FLVPlayback コンポーネントのデフォルトのスキンをオフにしたい場合がよくあります。その場合は、独自のコントロールを追加するか、各種カスタムユーザーインターフェイスコンポーネントを使用するか、ActionScript によってコンポーネントを完全に制御することが可能です (私の記事「Controlling Flash Video with the FLVPlayback Behaviors」を参照)。スキン SWF 機能をオフにするには、次の単純な手順に従います。
skin プロパティをダブルクリックします。[スキンの選択] ダイアログボックスが開きます。ヒント : コンポーネントインスペクタで、FLVPlayback コンポーネントの skinAutoHide プロパティを true に設定して、カーソルがビデオの上に置かれるまでコントロールが非表示になるようにできます。このプロパティが有効になるのは、スキン SWF 機能を使用するときのみです。
作成済みスキン SWF ファイルを直接修正することはできません。この理由から、作成済みスキン SWF ファイルを使用する方法は、FLVPlayback コンポーネントにスキンを適用する 3 つの方法の中で、自由度が最も劣ります。ただし、開発時間がかからず、また Flash の編集スキルも必要ありません。
作成済みスキンの他に、FLV Playback コンポーネントでは、FLV Playback カスタム UI コンポーネントのサポートが新たに追加されています。[コンポーネント] パネルに 2 つの新しいカテゴリが追加されているのがわかります (図 2 を参照)。
FLV Playback カスタム UI コンポーネントは、FLVPlayback インスタンスに関連付けることができる個々のビデオコントロールの集まりです。これらのカスタム UI コンポーネントは、任意に組み合わせて使用したり、画面の任意の場所に配置したり、標準ムービークリップのシンボルのように編集できます。
Flash 8 には次のコントロールが用意されています。
一般に、カスタム UI コンポーネントを使用するには、インスタンスをステージに追加し、インスタンスを指定して、ビデオコンポーネントのスキン適用のプロパティにインスタンス名を関連付けます。カスタム UI コンポーネントが FLVPlayback インスタンスに関連付けられた後、そのコンポーネントの名前どおりの機能が自動的にそのインスタンスに追加されます。追加のコードを記述する必要はありません。
カスタム UI コンポーネントを FLVPlayback インスタンスに追加するには、次の手順に従います。
skin プロパティが None に設定されていることを確認します (コンポーネントインスペクタでの skin パラメータについては次のセクションを参照)。必要な場合のみ、スキン SWF ファイルとカスタム UI コンポーネントを割り当てることもできます。skin プロパティを None に設定するとします。これを行うには、SeekBar コンポーネントを [コンポーネント] パネルからステージまでドラッグします。目的の場所にコンポーネントを配置します。一般に、カスタム UI コンポーネントはステージで拡大 / 縮小されるように設計されていません。コンポーネントインスタンスの拡大 / 縮小はできるだけ避けるようにしてください。代わりに、ライブラリのコンポーネントムービークリップシンボル内部で、グラフィックのサイズを変更してください。ただし、シークバーは水平方向に拡大 / 縮小しても適切に表示されます。自由変形ツールを使用するか、[整列] パネルにある幅を揃えるためのコマンドを使用して、シークバーの幅を FLVPlayback インスタンスの幅に合わせます (図 3 を参照)。
flvPlayback を実際の FLVPlayback インスタンス名に置き換えます。また、mySeekBar を実際のシークバーのインスタンス名に置き換えます。// Assign the mySeekBar instance to the flvPlayback instance
flvPlayback.seekBar = mySeekBar;
ヒント : 以前のバージョンの FLV ファイルで SeekBar コンポーネントを使用している場合、SeekBar コンポーネントとパーセンテージ機能を動作させるために必要なメタデータが FLV ファイルに埋め込まれていない場合があります。この場合、FLVPlayback パラメータに totalTime 値を手動で入力することによって、この問題を解決できます。
ムービークリップシンボルを通常編集するように、カスタム UI コンポーネントのグラフィックを編集できます。ムービークリップのタイムラインに切り替え、調整するグラフィックを見つけて、編集します。重要なのは、既存のインスタンス名またはファイル構造を変更しないということです。
前の実習の手順に続いて、ここでは、シークバーのグラフィックを修正する方法について説明します。
ここでの手順はすべてのカスタム UI コンポーネントに適用できます。より複雑なカスタマイズについては、次に挙げているヘルプマニュアルを参照してください。
ムービークリップのコンポーネントのタイプごとに設定内容が多少異なっていることがわかります。各種コンポーネントの詳細については、Flash 8 ヘルプマニュアルの次のセクションを参照してください。
[コンポーネントリファレンスガイド]-[FLVPlayback コンポーネント]-[FLVPlayback コンポーネントのカスタマイズ]-[FLVPlayback カスタム UI コンポーネントへの個々のスキン適用]
次のコード例は、FLVPlayback コンポーネントのスキン適用のプロパティをすべて示しています。この例では、コンポーネントのインスタンス名は flvPlayback であり、代入演算子 (=) の右側の値はステージ上のカスタム UI コンポーネントのインスタンス名です。
flvPlayback.playButton = playbtn;
flvPlayback.pauseButton = pausebtn;
flvPlayback.playPauseButton = playpausebtn;
flvPlayback.stopButton = stopbtn;
flvPlayback.muteButton = mutebtn;
flvPlayback.backButton = backbtn;
flvPlayback.forwardButton = forbtn;
flvPlayback.volumeBar = volbar;
flvPlayback.seekBar = seekbar;
flvPlayback.bufferingBar = bufbar;
PlayPauseButton コンポーネントを使用するか、PlayButton コンポーネントと PauseButton コンポーネントを使用することに注意してください。PlayPauseButton コンポーネントは 2 つの状態を切り替えますが、PlayButton コンポーネントと PauseButton コンポーネントは別個のボタンです。上記のコード例は単に参考用としてスキンのプロパティを示しています。
bufferingBarHidesAndDisablesOthers プロパティを使用して、バッファリングバーに関連付けられたスキンをコンポーネントがどのように扱うかを修正することもできます。
flvPlayback.bufferingBarHidesAndDisablesOthers = true;
バッファサイズが大きく、ビデオのダウンロード中にコントロールを無効にする必要がある場合 たとえば Flash Media Server サーバーからのビデオのストリーミング時 、このプロパティは便利です。このプロパティはデフォルトで false に設定されています。
スキンのプロパティとして autoSkinHide もありますが、このプロパティは FLV Playback カスタム UI コンポーネントのインスタンスに影響を与えないことに注意してください。このプロパティは、「作成済みスキン SWF ファイルの使用」で前述したように、スキン SWF ファイルに対してのみ使用できます。
既に見てきたように、[スキンの選択] ダイアログボックスやスキン SWF 機能は、すばやく簡単に使用できます。ここでは、カスタムスキン SWF ファイルの作成手順を紹介します。
デザイン済みのカスタムコントロール、拡張機能用の ActionScript コード、およびスキンを適用するための [スキンの選択] ダイアログボックスを組み合わせてカスタムスキン SWF を作成すると、作成時間を大幅に節約することができます。また、スキン SWF は、Flash 8 の新しいムービークリップ拡大/縮小機能を使用して、拡大/縮小できるように設計されています。詳細については、Flash のヘルプドキュメント ([Flash ユーザーガイド]-[シンボル、インスタンス、およびライブラリアセットの使用]-[9 スライスの拡大/縮小とムービークリップシンボルについて]) を参照してください。
スキン SWF ファイルの最も簡単な作成方法は、既存のファイルをコピーしてそれを修正する方法です。まず、Flash Professional 8 に組み込まれている作成済みスキン SWF ファイルのコピーを作成します。デフォルトのスキンセットの FLA ファイルは、ハードディスク上の "<言語>\Configuration\SkinFLA" フォルダの Flash 8 アプリケーションフォルダ内にあります。
次の手順に従って作業を進めます。
これで、新しいスキン SWF ファイルをカスタマイズする準備が整いました。
上記の手順で、既存のスキン SWF ファイルを基にした新しいスキン SWF ファイルが作成されました。この SWF ファイルを修正する最も簡単な方法は、ステージ上のムービークリップに表示されるグラフィックを編集する方法です。ここで、グラフィックの修正を試してみましょう。
スキン SWF ファイルでは、Scale-9 と呼ばれる Flash 8 の新機能を使用します。この機能は、ライブラリ内のムービークリップの上にガイド用のグリッドを配置します。このグリッドによってグラフィックが 9 つのセクションに分断されるため、ゆがみを生じることなく、インスタンスごとに拡大/縮小することができます。これを確認するため、ライブラリ内の "Chromes" フォルダを開き、そのシンボルをダブルクリックしてタイムラインを表示します。長方形のクロムグラフィックにガイドが重ねて表示されます。これらのガイドは、ライブラリ編集モードでムービークリップやボタンを編集するときに表示されます。SWF ファイルに適用された Scale-9 機能の効果は、実行時にのみ示されます。試しにメインタイムラインでいくつかのインスタンスを拡大/縮小し、ムービーを書き出して ([制御]-[ムービープレビュー]) 結果を確認します。
ボタンやボタンのクロム (または背景) の外観を修正するだけで、ムービークリップのサイズは変更しない場合は、さらに編集を続ける必要はありません。ほとんどの場合、コントロールの場所のみを修正することもできます。
ファイルを編集するには、次の手順に従います。
ファイルは複数のレイヤーで構成され、ルートタイムラインのフレーム 1 にグラフィックが置かれています。レイヤースタックの一番上にあるレイヤーには、layout_mc インスタンス (作成されたコントロールのコンテナ) と、layout_mc ムービークリップのさまざまなプロパティを初期化する ActionScript コードが置かれています。このコードは編集不要ですが、コメントやデフォルトのプロパティ設定を確認しておくことをお勧めします。
たとえば、画面の下に水平に表示される、クロムの背景を持つグラフィックを編集するには、そのグラフィックを 1 回ダブルクリックして、ムービークリップのタイムラインおよび編集領域を表示します。ムービークリップに含まれている編集可能なグラフィックは、複数のレイヤーに分かれて置かれています (図 7 を参照)。ムービークリップの名前はファイルごとに異なりますが、常にルートタイムラインの一番下のレイヤーに表示され、内部に同じレイヤー構造を保持しています。
ヒント : クロムグラフィックや背景グラフィック内の色を修正することによって、多大な労力を費やさずにビデオプレーヤーの外観を変更することができます。
カスタムスキン SWF ファイルを FLVPlayback コンポーネントにロードするには、スキンパラメータと [スキンの選択] ダイアログボックスを使用して SWF ファイルを参照します。SWF ファイルはどの場所からでも参照できますが、ファイルを Flash の "Configuration" フォルダに置くと、デフォルトのスキンリストと一緒に表示されるので便利です。こうすることによって、スキン SWF ファイルと他のデフォルトファイルを一緒にプレビューできます。また、スキン SWF ファイルのコピーが、開発中の FLVPlayback SWF ファイルの隣に自動的に配置されます。
スキン SWF ファイルが [スキンの選択] ダイアログボックスに常に表示されるようにするには、作成したカスタムスキン SWF ファイルを Flash 8 アプリケーションフォルダ内の "<言語>\Configuration\Skins" フォルダに保存します。この場所に保存した SWF ファイルは、[スキンの選択] ダイアログボックスに表示されます。これで、[スキンの選択] ダイアログボックスを開くたびに、作成したカスタムスキンがダイアログボックス内に表示され、使用できるようになります。
スキン SWF を FLVPlayback コンポーネントにロードするには :
skin パラメータを 1 回クリックして選択し、もう一度クリックして [スキンの選択] ダイアログボックスを開きます。[スキンの選択] ダイアログボックスにデフォルトでは表示されないスキン SWF ファイルをロードするには、[カスタムスキンの URL] オプションを使用します。会社のサーバーに置かれている SWF ファイルを参照する場合や、便宜的に自分のデスクトップにファイルを保存する場合は、このオプションが便利です。
これで、コンポーネントのライブプレビューと、書き出されたときにはムービーに、SWF ファイルが表示されます。
コンポーネントインスペクタのパラメータをまったく使用せず、ActionScript を使用してスキン SWF ファイルをコンポーネントに割り当てることもできます。実行時に初期化される動的アプリケーションの場合は、この方法が便利です。
ActionScript を使用してスキン SWF ファイルをコンポーネントに割り当てるには :
// Assign a new skin to my FLVPlayback instance using ActionScript
flvPlayback.skin = "myCustomSkin.swf";
スキン SWF ファイルを最初から作成する場合は、ファイルのレイアウト構造について学ぶ必要があります。Flash のヘルプドキュメントの次のセクションに、ファイル構造の要点がまとめられています。
[コンポーネントリファレンスガイド]-[FLVPlayback コンポーネント]-[FLVPlayback コンポーネントのカスタマイズ]-[FLVPlayback カスタム UI コンポーネントへの個々のスキン適用]
ここで説明した 3 つの方法を使用して、FLVPlayback コンポーネントおよびコントロールの外観をさまざまな方法でカスタマイズできます。少し時間を使って、Flash Professional 8 に組み込まれている作成済みのスキンファイルを操作してみてください。FLVPlayback コンポーネントには、機能拡張された ActionScript API も用意されています。この API を使用すると、ビデオプレーヤーの状態やパフォーマンスを詳細に制御できます。詳細については、Flash のヘルプドキュメントを参照してください ([Flash ヘルプ]-[コンポーネントリファレンスガイド]-[FLVPlayback コンポーネント]-[mx.video.FLVPlayback クラス])。