Du kan använda ActionScript för att lägga till ActionScript-referenspunkter, avlyssna
cuePoint
-händelser, hitta alla referenspunkter eller referenspunkter av en viss typ, söka efter en navigeringsreferenspunkt, aktivera eller inaktivera en referenspunkt, kontrollera om en referenspunkt är aktiverad och ta bort en referenspunkt.
Exemplet i det här avsnittet använder en FLV-fil som heter cuepoints.flv, och som innehåller följande tre punkter:
|
Namn
|
Tidpunkt
|
Typ
|
|
point1
|
00:00:00.418
|
Navigation
|
|
point2
|
00:00:07.748
|
Navigation
|
|
point3
|
00:00:16.020
|
Navigation
|
Lägga till ActionScript-referenspunkter
Du kan lägga till ActionScript-referenspunkter i en FLV-fil med metoden
addASCuePoint()
. Följande exempel lägger till två ActionScript-referenspunkter i FLV-filen när den är klar för uppspelning. Den första referenspunkten läggs till med ett referenspunktsobjekt som anger tidpunkten, namnet och typen för referenspunkten i sina egenskaper. Det andra anropet anger tidpunkten och namnet med metodens
time
- och
name
-parametrar.
// 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");
Mer information finns i avsnittet om metoden FLVPlayback.addASCuePoint() i
Referenshandbok för ActionScript 3.0
i Adobe Flash Professional
.
Avlyssna cuePoint-händelser
Med
cuePoint
-händelsen kan du få kontroll i din ActionScript-kod när en
cuePoint
-händelse inträffar. När en referenspunkt inträffar i följande exempel anropar
cuePoint
-avlyssnaren en händelsehanterarfunktion som visar värdet på egenskapen
playheadTime
samt namnet på och typen av referenspunkt. Använd det här exemplet i kombination med exemplet i föregående avsnitt, Lägga till ActionScript-referenspunkter, för att visa resultatet.
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);
}
Mer information om händelsen
cuePoint
finns i avsnittet om händelsen FLVPlayback.cuePoint i
Referenshandbok för ActionScript 3.0
i Adobe Flash Professional
.
Söka efter referenspunkter
Med ActionScript kan du hitta referenspunkter av alla typer, hitta den referenspunkt som ligger närmast en viss tidpunkt eller hitta nästa referenspunkt med ett visst namn.
Händelsehanteraren
ready_listener()
i följande exempel anropar metoden
findCuePoint()
för att hitta referenspunkten
ASpt1
, och anropar sedan metoden
findNearestCuePoint()
för att hitta navigeringsreferenspunkten som ligger närmast referenspunkten
ASpt1
i tiden:
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);
}
I följande exempel hittar händelsehanteraren
ready_listener()
referenspunkten
ASpt
och anropar metoden
findNextCuePointWithName()
för att hitta nästa referenspunkt med samma namn:
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);
}
Mer information om hur du söker efter referenspunkter finns i avsnitten om metoderna FLVPlayback.findCuePoint(), FLVPlayback.findNearestCuePoint() och FLVPlayback.findNextCuePointWithName() i
Referenshandbok för ActionScript 3.0
i Adobe Flash Professional
.
Söka efter navigeringsreferenspunkter
Du kan söka till en navigeringsreferenspunkt, söka till nästa navigeringsreferenspunkt från en viss tid och söka till föregående navigeringsreferenspunkt från en viss tid. Följande exempel spelar upp FLV-filen cuepoints.flv och söker till referenspunkten vid 7,748 när
ready
-händelsen inträffar. När
cuePoint
-händelsen inträffar anropar exemplet metoden
seekToPrevNavCuePoint()
för att söka efter den första referenspunkten. När den här
cuePoint
-händelsen inträffar anropar exemplet metoden
seekToNextNavCuePoint()
för att söka efter den sista referenspunkten genom att lägga till 10 sekunder till
eventObject.info.time
, som är tidpunkten för den aktuella referenspunkten.
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";
Mer information finns i avsnitten om metoderna FLVPlayback.seekToNavCuePoint(), FLVPlayback.seekToNextNavCuePoint() och FLVPlayback.seekToPrevNavCuePoint() i
Referenshandbok för ActionScript 3.0
i Adobe Flash Professional
.
Aktivera och inaktivera en inbäddad referenspunkt i en FLV-fil
Du kan aktivera och inaktivera inbäddade referenspunkter i FLV-filer genom att använda metoden
setFLVCuePointEnabled()
. Inaktiverade referenspunkter utlöser inte
cuePoint
-händelser och fungerar inte med metoderna
seekToCuePoint()
,
seekToNextNavCuePoint()
och
seekToPrevNavCuePoint()
. Däremot kan du hitta inaktiverade referenspunkter med metoderna
findCuePoint()
,
findNearestCuePoint()
och
findNextCuePointWithName()
.
Du kan testa om en inbäddad referenspunkt i en FLV-fil är aktiverad genom att använda metoden
isFLVCuePointEnabled()
. Följande exempel inaktiverar de inbäddade referenspunkterna
point2
och
point3
när videon är klar att spelas upp. Men när den första
cuePoint
-händelsen inträffar testar händelsehanteraren om referenspunkten
point3
är inaktiverad, och aktiverar den om den är inaktiverad.
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");
}
}
Mer information finns i avsnitten om metoderna FLVPlayback.isFLVCuePointEnabled() och FLVPlayback.setFLVCuePointEnabled() i
Referenshandbok för ActionScript 3.0
i Adobe Flash Professional
.
Ta bort en ActionScript-referenspunkt
Du kan ta bort en ActionScript-referenspunkt med metoden
removeASCuePoint()
. Följande exempel tar bort referenspunkten
ASpt2
när referenspunkten
ASpt1
inträffar:
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");
}
}
Mer information finns i avsnittet om FLVPlayback.removeASCuePoint() i
Referenshandbok för ActionScript 3.0
i Adobe Flash Professional
.