Actiepunten gebruiken

Een actiepunt is een punt waarop de videospeler een gebeurtenis cuePoint verstuurt tijdens het afspelen van een FLV-bestand. U kunt actiepunten toevoegen aan een FLV-bestand op tijdstippen waarop u een handeling wilt laten plaatsvinden voor een ander element op de webpagina. U wilt wellicht tekst of een afbeelding weergeven of synchroniseren met een Flash-animatie of het afspelen van het FLV-bestand onderbreken, zoeken tot een ander punt in de video of overschakelen naar een ander FLV-bestand. Met actiepunten kunt u met de code in ActionScript de synchronisatie besturen van punten in het FLV-bestand met andere gebeurtenissen op de webpagina.

Er zijn drie typen actiepunten: navigation, event en ActionScript. De actiepunten voor navigatie en gebeurtenis worden ook wel ingesloten actiepunten genoemd, omdat ze zijn ingesloten in de stream van het FLV-bestand en in het pakket metagegevens van het FLV-bestand.

Met een navigatieactiepunt kunt u naar een bepaald frame in het FLV-bestand zoeken omdat binnen het FLV-bestand een hoofdframe wordt gemaakt dat zo dicht mogelijk bij de tijd ligt die u opgeeft. Een hoofdframe is een gegevenssegment dat optreedt tussen afbeeldingsframes in de stream van het FLV-bestand. Wanneer u naar een navigatieactiepunt zoekt, zoekt de component naar het hoofdframe en start deze de gebeurtenis cuePoint .

Met een gebeurtenisactiepunt kunt u een punt in de tijd binnen het FLV-bestand synchroniseren met een externe gebeurtenis op de webpagina. De gebeurtenis cuePoint treedt precies op de opgegeven tijd op. U kunt navigatie- en gebeurtenisactiepunten in een FLV-bestand insluiten met de wizard Video importeren of Flash Video Encoder. Raadpleeg Hoofdstuk 16, ‘Werken met video’, in Flash gebruiken voor meer informatie over de wizard Video importeren en Flash Video Encoder.

Een ActionScript-actiepunt is een extern actiepunt dat u kunt toevoegen via het dialoogvenster Flash Video-actiepunten van de component of via de methode FLVPlayback.addASCuePoint() . ActionScript-actiepunten worden in de component apart van het FLV-bestand opgeslagen en bijgehouden en zijn dan ook minder nauwkeurig dan ingesloten actiepunten. ActionScript-actiepunten zijn nauwkeurig tot op een tiende van een seconde. U kunt de nauwkeurigheid van ActionScript-actiepunten verbeteren door de waarde van de eigenschap playheadUpdateInterval te verlagen. De component genereert namelijk de gebeurtenis cuePoint voor ActionScript-actiepunten wanneer de afspeelkop wordt bijgewerkt. Zie de eigenschap FLVPlayback.playheadUpdateInterval in de Naslaggids voor ActionScript 3.0 voor Flash Professional voor meer informatie.

In ActionScript en in de metagegevens van het FLV-bestand wordt een actiepunt vertegenwoordigd door een object met de volgende eigenschappen: name , time , type en parameters . De eigenschap name is een tekenreeks die de toegewezen naam van het actiepunt bevat. De eigenschap time is een getal dat de tijd in uren, minuten, seconden en milliseconden (HH:MM:SS.mmm) vertegenwoordigt wanneer het actiepunt optreedt. De eigenschap type is een tekenreeks met de waarde "navigation" , "event" of "actionscript" , afhankelijk van het type actiepunt dat u hebt gemaakt. De eigenschap parameters is een array van opgegeven namen en waarden.

Wanneer een gebeurtenis cuePoint optreedt, is het actiepuntobject beschikbaar in het gebeurtenisobject via de eigenschap info .

Het dialoogvenster Flash Video-actiepunten gebruiken

Open het dialoogvenster Flash Video-actiepunten door te dubbelklikken op de waardecel voor de parameter cuePoints in Componentcontrole. Het dialoogvenster ziet uit als in de volgende  afbeelding:

Afbeelding groot weergeven
Dialoogvenster Actiepunten

Het dialoogvenster bevat ingesloten actiepunten en ActionScript-actiepunten. U kunt dit dialoogvenster gebruiken om ActionScript-actiepunten en actiepuntparameters toe te voegen en te verwijderen. U kunt ingesloten actiepunten ook inschakelen of uitschakelen. U kunt ingesloten  actiepunten echter niet toevoegen, wijzigen of verwijderen.

Een ActionScript-actiepunt toevoegen:

  1. Dubbelklik op de waardecel van de parameter cuePoints in Componentcontrole om het dialoogvenster Flash-actiepunten te openen.

  2. Klik op het plusteken (+) in de linkerbovenhoek, boven de lijst met actiepunten, om een standaarditem voor een ActionScript-actiepunt toe te voegen.

  3. Klik in de kolom Naam op de tekst Nieuw actiepunt en geef het  actiepunt een naam.

  4. Klik op de waarde onder Tijd op 00:00:00:000 en voer de tijd in waarop het actiepunt moet optreden. U kunt de tijd opgeven in uren, minuten, seconden en milliseconden (HH:MM:SS.mmm).

    Bij meerdere actiepunten wordt het nieuwe actiepunt op chronologische volgorde in de lijst geplaatst.

  5. Als u een parameter wilt toevoegen voor het geselecteerde actiepunt, klikt u op het plusteken (+) boven de sectie Parameters en voert u waarden in de kolommen Naam en Waarde in. Herhaal deze stap voor elke parameter.

  6. Als u meer ActionScript-actiepunten wilt toevoegen, herhaalt u stap 2 tot en met 5 voor elk actiepunt.

  7. Klik op OK om uw wijzigingen op te slaan.

Een ActionScript-actiepunt verwijderen:

  1. Dubbelklik op de waardecel van de parameter cuePoints in Componentcontrole om het dialoogvenster Flash-actiepunten te openen.

  2. Selecteer het actiepunt dat u wilt verwijderen.

  3. Klik op het minteken (-) in de linkerbovenhoek, boven de lijst met actiepunten, om het actiepunt te verwijderen.

  4. Herhaal stap 2 en 3 voor elk actiepunt dat u wilt verwijderen.

  5. Klik op OK om uw wijzigingen op te slaan.

Een ingesloten actiepunt in het FLV-bestand inschakelen of uitschakelen:

  1. Dubbelklik op de waardecel van de parameter cuePoints in Componentcontrole om het dialoogvenster Flash-actiepunten te openen.

  2. Selecteer het actiepunt dat u wilt inschakelen of uitschakelen.

  3. Klik op de waarde in de kolom Type om het pop-upmenu te openen, of klik op Pijl-omlaag.

  4. Klik op de naam van het type actiepunt (bijvoorbeeld Gebeurtenis of Navigatie) om het in te schakelen. Klik op Uitschakelen om het uit te schakelen.

  5. Klik op OK om uw wijzigingen op te slaan.

Actiepunten met ActionScript gebruiken

U kunt met ActionScript ActionScript-actiepunten toevoegen, luisteren naar gebeurtenissen van cuePoint , actiepunten van elk type of een bepaald type zoeken, zoeken naar een navigatieactiepunt, een actiepunt in- of uitschakelen, controleren of een actiepunt is ingeschakeld en een actiepunt verwijderen.

In de voorbeelden in deze sectie wordt een FLV-bestand met de naam cuepoints.flv gebruikt, dat de volgende drie actiepunten bevat:

Naam

tijd

Type

point1

00:00:00.418

Navigatie

point2

00:00:07.748

Navigatie

point3

00:00:16.020

Navigatie

ActionScript-actiepunten toevoegen

U kunt ActionScript-actiepunten toevoegen aan een FLV-bestand met behulp van de methode addASCuePoint() . In het volgende voorbeeld worden twee ActionScript-actiepunten toegevoegd aan het FLV-bestand wanneer het gereed is om af te spelen. Het eerste actiepunt wordt toegevoegd met behulp van een actiepuntobject, dat de tijd, naam en het type van het actiepunt opgeeft in de eigenschappen ervan. In de tweede aanroep worden de tijd en de naam opgegeven via de parameters time en name van de methode.

// 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"); 

Zie de methode FLVPlayback.addASCuePoint() in de Naslaggids voor ActionScript 3.0 voor Flash Professional voor meer informatie.

Luisteren naar gebeurtenissen van cuePoint

Met de gebeurtenis cuePoint kunt u in uw ActionScript-code controle krijgen wanneer een gebeurtenis van cuePoint optreedt. Wanneer actiepunten in het volgende voorbeeld optreden, roept de cuePoint listener een gebeurtenishandlerfunctie aan die de waarde weergeeft van de eigenschap playheadTime en de naam en het type van het actiepunt. Gebruik dit voorbeeld in combinaite met het voorbeeld in de voorgaande sectie, ActionScript-actiepunten toevoegen, om de resultaten te bekijken.

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); 
}

Zie voor meer informatie over de gebeurtenis cuePoint de gebeurtenis FLVPlayback.cuePoint in de Naslaggids voor ActionScript 3.0 voor Flash Professional .

Actiepunten zoeken

Met ActionScript kunt u actiepunten van elk type zoeken, het dichtstbijzijnde actiepunt op een bepaalde tijd zoeken of het volgende actiepunt met een bepaalde naam zoeken.

De gebeurtenishandler ready_listener() in het volgende voorbeeld roept de methode findCuePoint() aan om het actiepunt ASpt1 te zoeken en roept vervolgens de methode findNearestCuePoint() aan om het navigatieactiepunt te zoeken dat het dichtst bij de tijd van het actiepunt ASpt1 ligt:

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); 
}

In het volgende voorbeeld zoekt de gebeurtenishandler ready_listener() het actiepunt ASpt en roept de methode findNextCuePointWithName() aan om het volgende actiepunt met dezelfde naam te zoeken:

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); 
}

Raadpleeg voor meer informatie over Label-stijlen de methoden FLVPlayback.findCuePoint(), FLVPlayback.findNearestCuePoint() en FLVPlayback.findNextCuePointWithName() in de Naslaggids voor ActionScript 3.0 voor Flash Professional .

Navigatieactiepunten zoeken

U kunt zoeken naar een navigatieactiepunt, zoeken naar het volgende navigatieactiepunt vanaf een bepaalde tijd en zoeken naar het vorige navigatieactiepunt vanaf een bepaalde tijd. In het volgende voorbeeld wordt het FLV-bestand cuepoints.flv afgespeeld en gezocht naar het actiepunt op 7,748 wanneer de gebeurtenis ready optreedt. Wanneer de gebeurtenis cuePoint optreedt, wordt in het voorbeeld de methode seekToPrevNavCuePoint() aangeroepen om naar het eerste actiepunt te zoeken. Wanneer die gebeurtenis cuePoint optreedt, wordt in het voorbeeld de methode seekToNextNavCuePoint() aangeroepen om naar het laatste actiepunt te zoeken door 10 seconden toe te voegen aan eventObject.info.time , de tijd van het huidige actiepunt.

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";

Zie de methoden FLVPlayback.seekToNavCuePoint(), FLVPlayback.seekToNextNavCuePoint() en FLVPlayback.seekToPrevNavCuePoint() in de Naslaggids voor ActionScript 3.0 voor Flash Professional .

Ingesloten actiepunten in het FLV-bestand inschakelen en uitschakelen

U kunt ingesloten actiepunten in een FLV-bestand in- en uitschakelen met behulp van de methode setFLVCuePointEnabled() . Uitgeschakelde actiepunten activeren geen gebeurtenissen van cuePoint en werken niet met de methoden seekToCuePoint() , seekToNextNavCuePoint() of seekToPrevNavCuePoint() . U kunt uitgeschakelde actiepunten echter wel zoeken met de methoden findCuePoint() , findNearestCuePoint() en findNextCuePointWithName() .

U kunt testen of een ingesloten actiepunt in een FLV-bestand is ingeschakeld met behulp van de methode isFLVCuePointEnabled() . In het volgende voorbeeld worden de ingesloten actiepunten point2 en point3 uitgeschakeld wanneer de video gereed is om af te spelen. Wanneer de eerste gebeurtenis cuePoint optreedt, zal de gebeurtenishandler echter testen of het actiepunt point3 is uitgeschakeld en, zo ja, het actiepunt inschakelen.

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"); 
        } 
}

Zie de methoden FLVPlayback.isFLVCuePointEnabled() en FLVPlayback.setFLVCuePointEnabled() in de Naslaggids voor ActionScript 3.0 voor Flash Professional .

Een ActionScript-actiepunt verwijderen

U kunt een ActionScript-actiepunt verwijderen met behulp van de methode removeASCuePoint() . In het volgende voorbeeld wordt het actiepunt ASpt2 verwijderd wanneer het actiepunt ASpt1 optreedt:

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"); 
        } 
}

Raadpleeg FLVPlayback.removeASCuePoint() in de Naslaggids voor ActionScript 3.0 voor Flash Professional .