Het is bijzonder eenvoudig om een filmclip naar een nieuw frame te sturen. U roept
gotoAndPlay()
of
gotoAndStop()
aan. De filmclip springt dan naar het framenummer dat als parameter is opgegeven. U kunt ook een tekenreeks doorgeven, die overeenkomt met de naam van een framelabel. U kunt een label aan alle frames in de tijdlijn toewijzen. U doet dit door een frame in de tijdlijn te selecteren en een naam in het veld Framelabel van Eigenschapcontrole in te vullen.
De voordelen van het gebruik van framelabels in plaats van nummers worden vooral duidelijk wanneer u een ingewikkelde filmclip maakt. Wanneer het aantal frames, lagen en tweens in een animatie groot wordt, kunt u belangrijke frames een label geven met verklarende beschrijvingen over ander gedrag van de filmclip (bijvoorbeeld ‘uit’, ‘lopen’ of ‘rennen’). Hierdoor wordt de leesbaarheid van de code verhoogd. Deze methode biedt tevens flexibiliteit, aangezien ActionScript-aanroepen die naar een frame met een label gaan, naar een enkele referentie verwijzen (het label), in plaats van naar een specifiek framenummer. Als u later besluit een bepaald segment van de animatie naar een ander frame te verplaatsen, hoeft u de ActionScript-code niet te wijzigen, als u voor de frames in de nieuwe locatie tenminste hetzelfde label gebruikt.
ActionScript 3.0 bevat de klasse FrameLabel voor het vertegenwoordigen van framelabels in code. Elke instantie van deze klasse vertegenwoordigt een enkel framelabel en heeft een eigenschap
name
waarmee de naam van het framelabel volgens de specificatie in Eigenschapcontrole wordt aangegeven, en een eigenschap
frame
waarmee het framenummer (de plaats van het frame in de tijdlijn) wordt aangegeven.
Voor toegang tot FrameLabel-instanties die aan een filmclipinstantie zijn gekoppeld, bevat de klasse MovieClip twee eigenschappen waarmee direct objecten FrameLabel worden geretourneerd. De eigenschap
currentLabels
retourneert een array dat uit alle objecten FrameLabel in de volledige tijdlijn van een filmclip bestaat. De eigenschap
currentLabel
retourneert een reeks met de naam van het framelabel dat het laatst op de tijdlijn is aangetroffen.
Stel dat u een filmclip met de naam
robot
maakt, waarbij u een label aan de verschillende toestanden van de animatie geeft. U kunt een voorwaarde instellen, waarmee de eigenschap
currentLabel
wordt gecontroleerd op toegang tot de huidige toestand van
robot
, zoals in de volgende code:
if (robot.currentLabel == "walking")
{
// do something
}
In Flash Player 11.3 en AIR 3.3 is de gebeurtenis
frameLabel
toegevoegd aan de FrameLabel-klasse. U kunt een gebeurtenishandler toewijzen aan de FrameLabel-instantie die een framelabel vertegenwoordigt. De gebeurtenis wordt verzonden wanneer de afspeelkop het frame betreedt.
In het volgende voorbeeld wordt een FrameLabel-instantie gemaakt voor het tweede framelabel in de array met framelabels voor de MovieClip. Vervolgens wordt een gebeurtenishandler geregistreerd voor de gebeurtenis
frameLabel
:
var myFrameLabel:FrameLabel = robot.currentLabels[1];
myFrameLabel.addEventListener(Event.FRAME_LABEL, onFrameLabel);
function onFrameLabel(e:Event):void {
//do something
}