ActionScript를 사용하여 ActionScript 큐 포인트 추가,
cuePoint
이벤트 수신, 모든 유형 또는 특정 유형의 큐 포인트 찾기, 내비게이션 큐 포인트 검색, 큐 포인트 활성화/비활성화, 큐 포인트의 활성화 여부 확인, 큐 포인트 제거 등의 다양한 작업을 수행할 수 있습니다.
이 단원의 예제에서는 다음과 같은 세 가지 큐 포인트가 포함된 cuepoints.flv라는 FLV 파일을 사용합니다.
이름
|
시간
|
유형
|
point1
|
00:00:00.418
|
내비게이션
|
point2
|
00:00:07.748
|
내비게이션
|
point3
|
00:00:16.020
|
내비게이션
|
ActionScript 큐 포인트 추가
addASCuePoint()
메서드를 사용하여 FLV 파일에 ActionScript 큐 포인트를 추가할 수 있습니다. 다음 예제에서는 FLV 파일이 재생 준비가 되었을 때 두 개의 ActionScript 큐 포인트를 FLV 파일에 추가합니다. 첫 번째 큐 포인트는 큐 포인트의 시간, 이름 및 유형을 속성으로 지정하는 큐 포인트 객체를 사용하여 추가합니다. 두 번째 호출에서는 메서드의
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 파일 큐 포인트 활성화 및 비활성화
setFLVCuePointEnabled()
메서드를 사용하여 포함된 FLV 파일 큐 포인트를 활성화 및 비활성화할 수 있습니다. 비활성화된 큐 포인트는
cuePoint
이벤트를 트리거하지 않으며
seekToCuePoint()
,
seekToNextNavCuePoint()
또는
seekToPrevNavCuePoint()
메서드에 반응하지 않습니다. 그렇지만 비활성화된 큐 포인트도
findCuePoint()
,
findNearestCuePoint()
및
findNextCuePointWithName()
메서드를 사용하여 찾을 수는 있습니다.
isFLVCuePointEnabled()
메서드를 사용하여 포함된 FLV 파일 큐 포인트가 활성화되었는지 확인할 수 있습니다. 다음 예제에서는 비디오 재생 준비가 되었을 때 포함된 큐 포인트
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 큐 포인트 제거
removeASCuePoint()
메서드를 사용하여 ActionScript 큐 포인트를 제거할 수 있습니다. 다음 예제에서는
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()를 참조하십시오.