FLASHのお勉強 ーアクションスクリプトの実践的事始めー |
|||
| (55) FLVPlayback(as3.0)で動画(ビデオ)を見せる 2007/12/31 | |||
| 複数の動画(外部flvファイル)をコンボボックスで切り替えて再生させると言うようなVideoプレイヤーをFLVPlayback(as3.0)を使って作成してみることにする。 MediaPlaybackやmediaDisplayを使った動画再生方法については、既に勉強しているので、ここでは、FLVPlayback(as3.0)を使ってみようと思う。 自前でSKINを作ることもできるが、いくつかのSKINが用意されているのでこれをそのまま使うことにする。 なお、自動で連続的に再生を行い、全部再生し終わったら最初の動画から再生を繰り返すタイプのものも作成してみたので、これについても解説したい。 このタイプもFLVPlaybackを使うが、skinは使わず、VideoPlayerクラスを使う。 |
|||
| SAMPLE | |||
| ステージの準備 | |||
| ●320*200、背景色青(好みの色)のステージ(12fps)を設定 ●コンポーネントウインドウからComboBoxをライブラリーにドラッグ&ドロップし、登録する ●コンポーネントウインドウからFLVPlaybackをステージにドラッグ&ドロップし、座標(4,4)に配置し、インスタンス名をplayerとする ●FLVPlaynackをクリックし、画面下部のパラメータタブで、skinの中から好みのものを選ぶ その他、scaleMode(ここではexactFit)、skin(SkinUnderPlaySeekMute.swf)、skin背景色(灰色)、ボリューム(0.5)などを 設定する(これらは、スクリプトで設定することも可能) ●プロパティータブの「ドキュメントクラス」のところに、asを記述するクラス名を記述し関連付ける (ここではvideoPlay_combo) ●このswfファイルを格納するディレクトリに動画ファイル、SkinUnderPlaySeekMute.swfを格納する ここでの動画ファイルは、http://www.puntopower.com/から引用した(現在は掲載されていない?) |
|||
| スクリプト(videoPlay_combo.asに記述) | |||
|
|||
| スクリプトの説明 | |||
| ●import 必要なパッケージのインポート ●videoNum videoファイルの数 ●private var video:Array = ["punto1.flv","punto2.flv","punto3.flv"]; videoファイル名を配列で管理 ●private var cbItem =["Fiat Punto is Amazing Car!!","Fi******* videoの題名(ここでは適当につけている)を配列で管理 ●private var combo = createComboBox(); createComboBox関数でコンボボックスを作成 ●function readyHandler(event:VideoEvent):void { 以下の関数は、videoのsource(ファイル名)がアクティブになり、再生に十分なロードができた段階で再生を開始するスクリプトで、 adobeのDEVELOPER CONNECTION(http://www.adobe.com/devnet/flash/articles/flvplayback_programming.html)から引用 ●private function videoPlay(event:Event) { 以下の関数は、コンボボックスで何かが選択されたら、その項目名と、データ番号を取得し、その番号に相当するvideoを sourceとしてアクティブにする (項目名はここでは使用していない) ●private function createComboBox():void { 以下の関数はコンボボックスの作成関数である (詳細は「フォーム用コンボボックスの動的作成」を参照のこと) |
|||
| 連続自動再生プレイヤー | |||
| ステージの準備 ●300*200、背景色青(好みによる) ●ライブラリーに FLVPlayback を格納 ●プロパティータグの「ドキュメントクラス」のところに、asを記述するクラス名を記述し関連付ける (ここではvideoPlay_auto) 左サンプルの音声は、player.volume = 0; で消しているが 0のところを、0−1の間で設定すれば数値に対応した音量で音声が出る |
|||
| スクリプト(videoPlay_auto.asに記述) | |||
package {
import fl.video.*;
import flash.events.*;
import flash.display.Sprite;
public class videoPlay_auto extends Sprite {
private var videoNum:Number = 3;
private var video:Array = ["punto1.flv","punto2.flv","punto3.flv"];
private var videoTitle:Array = [];
private var player = new VideoPlayer();
private var videoPath:String;
private var n:Number;
public function videoPlay_auto() {
player.scaleMode = VideoScaleMode.EXACT_FIT;//MAINTAIN_ASPECT_RATIO
player.width = 300;
player.height =200;
player.volume = 0;
n = 0;
videoPath = video[n].toString();
addChild(player);
player.play(videoPath);
function videoChange(event:VideoEvent) {
if (n<videoNum-1) {
n++;
videoPath = video[n].toString();
player.play(videoPath);
} else {
n=0;
videoPath = video[n].toString();
player.play(videoPath);
}
}
player.addEventListener(VideoEvent.COMPLETE, videoChange);
}
}
}
|
|||
|
|
|||
| HOME お勉強総リスト | |||