ActionScript を使用すると、ActionScript キューポイントの追加、
cuePoint
イベントのリスン、任意のタイプまたは特定のタイプのキューポイントの検索、ナビゲーションキューポイントのシーク、キューポイントの有効化または無効化、キューポイントが有効であるかどうかの確認、およびキューポイントの削除を行うことができます。
この節の例では、「cuepoints.flv」という名前の FLV ファイルを使用します。このファイルには、次の 3 つのキューポイントが含まれています。
名前
|
時刻
|
型
|
point1
|
00:00:00.418
|
ナビゲーション
|
point2
|
00:00:07.748
|
ナビゲーション
|
point3
|
00:00:16.020
|
ナビゲーション
|
ActionScript キューポイントの追加
ActionScript キューポイントを FLV ファイルに追加するには、
addASCuePoint()
メソッドを使用します。次の例では、再生の準備ができたときに 2 つの ActionScript キューポイントを FLV ファイルに追加します。 キューポイントオブジェクトを使用して最初のキューポイントを追加します。キューポイントのプロパティで、その時間、名前、およびタイプを指定します。 2 番目の呼び出しでは、メソッドの
time
パラメーターおよび
name
パラメーターを使用して時間と名前を指定します。
// Requires an FLVPlayback instance called my_FLVPlybk on Stage
import fl.video.*;
import fl.video.MetadataEvent;
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/cuepoints.flv"
var cuePt:Object = new Object(); //create cue point object
cuePt.time = 2.02;
cuePt.name = "ASpt1";
cuePt.type = "actionscript";
my_FLVPlybk.addASCuePoint(cuePt);//add AS cue point
// add 2nd AS cue point using time and name parameters
my_FLVPlybk.addASCuePoint(5, "ASpt2");
詳しくは、「
Adobe Flash Professional CS5 用
ActionScript 3.0 リファレンスガイド
」の FLVPlayback.addASCuePoint() メソッドを参照してください。
cuePoint イベントのリスン
cuePoint
イベントを使用すると、
cuePoint
イベントが発生したときに、ActionScript コードで制御を受け取ることができます。次の例でキューポイントが発生したときに、
cuePoint
リスナーは
playheadTime
プロパティの値およびキューポイントの名前とタイプを表示するイベントハンドラー関数を呼び出します。前の節の「ActionScript キューポイントの追加」の例と共にこの例を使用して、結果を確認してください。
my_FLVPlybk.addEventListener(MetadataEvent.CUE_POINT, cp_listener);
function cp_listener(eventObject:MetadataEvent):void {
trace("Elapsed time in seconds: " + my_FLVPlybk.playheadTime);
trace("Cue point name is: " + eventObject.info.name);
trace("Cue point type is: " + eventObject.info.type);
}
cuePoint
イベントについて詳しくは、「
Adobe Flash Professional CS5 用
ActionScript 3.0 リファレンスガイド
」の FLVPlayback.cuePoint イベントを参照してください。
キューポイントの検索
ActionScript を使用すると、任意のタイプのキューポイントの検索、時間に対して最も近いキューポイントの検索、または指定した名前を持つ次のキューポイントの検索を行うことができます。
次の例の
ready_listener()
イベントハンドラーは、
findCuePoint()
メソッドを呼び出してキューポイント
ASpt1
を検索し、
findNearestCuePoint()
メソッドを呼び出して、キューポイント
ASpt1
の時間に最も近いナビゲーションキューポイントを検索します。
import fl.video.FLVPlayback;
import fl.video.CuePointType;
import fl.video.VideoEvent;
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/cuepoints.flv"
var rtn_obj:Object; //create cue point object
my_FLVPlybk.addASCuePoint(2.02, "ASpt1");//add AS cue point
function ready_listener(eventObject:VideoEvent):void {
rtn_obj = my_FLVPlybk.findCuePoint("ASpt1", CuePointType.ACTIONSCRIPT);
traceit(rtn_obj);
rtn_obj = my_FLVPlybk.findNearestCuePoint(rtn_obj.time, CuePointType.NAVIGATION);
traceit(rtn_obj);
}
my_FLVPlybk.addEventListener(VideoEvent.READY, ready_listener);
function traceit(cuePoint:Object):void {
trace("Cue point name is: " + cuePoint.name);
trace("Cue point time is: " + cuePoint.time);
trace("Cue point type is: " + cuePoint.type);
}
次の例では、
ready_listener()
イベントハンドラーはキューポイント
ASpt
を検索し、
findNextCuePointWithName()
メソッドを呼び出して、同じ名前を持つ次のキューポイントを検索します。
import fl.video.*;
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/cuepoints.flv"
var rtn_obj:Object; //create cue point object
my_FLVPlybk.addASCuePoint(2.02, "ASpt");//add AS cue point
my_FLVPlybk.addASCuePoint(3.4, "ASpt");//add 2nd Aspt
my_FLVPlybk.addEventListener(VideoEvent.READY, ready_listener);
function ready_listener(eventObject:VideoEvent):void {
rtn_obj = my_FLVPlybk.findCuePoint("ASpt", CuePointType.ACTIONSCRIPT);
traceit(rtn_obj);
rtn_obj = my_FLVPlybk.findNextCuePointWithName(rtn_obj);
traceit(rtn_obj);
}
function traceit(cuePoint:Object):void {
trace("Cue point name is: " + cuePoint.name);
trace("Cue point time is: " + cuePoint.time);
trace("Cue point type is: " + cuePoint.type);
}
キューポイントの検索方法について詳しくは、「
Adobe Flash Professional CS5 用
ActionScript 3.0 リファレンスガイド
」の FLVPlayback.findCuePoint()、FLVPlayback.findNearestCuePoint()、および FLVPlayback.findNextCuePointWithName() の各メソッドを参照してください。
ナビゲーションキューポイントのシーク
ナビゲーションキューポイントのシーク、指定した時間から後の次のナビゲーションキューポイントのシーク、および指定した時間から前のナビゲーションキューポイントのシークを行うことができます。 次の例では、FLV ファイル cuepoints.flv を再生し、
ready
イベントが発生したときに、7.748 にあるキューポイントをシークします。
cuePoint
イベントが発生したときに、
seekToPrevNavCuePoint()
メソッドを呼び出して最初のキューポイントをシークします。
cuePoint
イベントが発生したとき、
seekToNextNavCuePoint()
メソッドを呼び出して、現在のキューポイントの時間である
eventObject.info.time
に 10 秒を追加して、最後のキューポイントをシークします。
import fl.video.*;
my_FLVPlybk.addEventListener(VideoEvent.READY, ready_listener);
function ready_listener(eventObject:Object):void {
my_FLVPlybk.seekToNavCuePoint("point2");
}
my_FLVPlybk.addEventListener(MetadataEvent.CUE_POINT, cp_listener);
function cp_listener(eventObject:MetadataEvent):void {
trace(eventObject.info.time);
if(eventObject.info.time == 7.748)
my_FLVPlybk.seekToPrevNavCuePoint(eventObject.info.time - .005);
else
my_FLVPlybk.seekToNextNavCuePoint(eventObject.info.time + 10);
}
my_FLVPlybk.source = "http://helpexamples.com/flash/video/cuepoints.flv";
詳しくは、「
Adobe Flash Professional CS5 用
ActionScript 3.0 リファレンスガイド
」の FLVPlayback.seekToNavCuePoint()、FLVPlayback.seekToNextNavCuePoint()、および FLVPlayback.seekToPrevNavCuePoint() の各メソッドを参照してください。
FLV ファイルの埋め込みキューポイントの有効化と無効化
FLV ファイルの埋め込みキューポイントを有効または無効にするには、
setFLVCuePointEnabled()
メソッドを使用します。無効になっているキューポイントは、
cuePoint
イベントをトリガーせず、
seekToCuePoint()
、
seekToNextNavCuePoint()
および
seekToPrevNavCuePoint()
の各メソッドに対して機能しません。ただし、
findCuePoint()
、
findNearestCuePoint()
および
findNextCuePointWithName()
の各メソッドを使用して、無効になっているキューポイントを検索できます。
FLV ファイルの埋め込みキューポイントが有効になっているかどうかは、
isFLVCuePointEnabled()
メソッドを使用してテストできます。次の例では、ビデオの再生準備ができたときに、埋め込みキューポイント
point2
および
point3
を無効にします。ただし、最初の
cuePoint
イベントが発生すると、イベントハンドラーはキューポイント
point3
が無効になっているかどうかを確認し、無効の場合はそれを有効にします。
import fl.video.*;
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/cuepoints.flv";
my_FLVPlybk.addEventListener(VideoEvent.READY, ready_listener);
function ready_listener(eventObject:VideoEvent):void {
my_FLVPlybk.setFLVCuePointEnabled(false, "point2");
my_FLVPlybk.setFLVCuePointEnabled(false, "point3");
}
my_FLVPlybk.addEventListener(MetadataEvent.CUE_POINT, cp_listener);
function cp_listener(eventObject:MetadataEvent):void {
trace("Cue point time is: " + eventObject.info.time);
trace("Cue point name is: " + eventObject.info.name);
trace("Cue point type is: " + eventObject.info.type);
if (my_FLVPlybk.isFLVCuePointEnabled("point2") == false) {
my_FLVPlybk.setFLVCuePointEnabled(true, "point2");
}
}
詳しくは、「
Adobe Flash Professional CS5 用
ActionScript 3.0 リファレンスガイド
」の FLVPlayback.isFLVCuePointEnabled() メソッドおよび FLVPlayback.setFLVCuePointEnabled() メソッドを参照してください。
ActionScript キューポイントの削除
ActionScript キューポイントを削除するには、
removeASCuePoint()
メソッドを使用します。次の例では、キューポイント
ASpt1
が発生したときに、キューポイント
ASpt2
を削除します。
import fl.video.*;
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/cuepoints.flv"
my_FLVPlybk.addASCuePoint(2.02, "ASpt1");//add AS cue point
my_FLVPlybk.addASCuePoint(3.4, "ASpt2");//add 2nd Aspt
my_FLVPlybk.addEventListener(MetadataEvent.CUE_POINT, cp_listener);
function cp_listener(eventObject:MetadataEvent):void {
trace("Cue point name is: " + eventObject.info.name);
if (eventObject.info.name == "ASpt1") {
my_FLVPlybk.removeASCuePoint("ASpt2");
trace("Removed cue point ASpt2");
}
}
詳しくは、「
Adobe Flash Professional CS5 用
ActionScript 3.0 リファレンスガイド
」の FLVPlayback.removeASCuePoint() を参照してください。