Er zijn twee manieren om een module de status Completed te geven: De cursist moet …
een bepaald aantal schermen bezocht hebben OF
een minimumscore hebben gehaald
In het eerste geval is de eis meestal dat alle schermen zijn getoond. Dit kan echter problemen opleveren als de cursus ook niet-verplichte schermen heeft zoals Lightboxes. Wanneer de cursist niet geïnteresseerd was in de extra informatie op deze slides dan krijgt hij niet de status Completed.
In dit voorbeeld zie je hoe bij de start van de module de niet-verplichte schermen automatisch worden geopend en gesloten, zodat deze meetellen voor het aantal bezochte sides.
(Het kan nodig zijn om je browserscherm te verversen)
VariabelenHet project begint met een slide Initialize (Initialiseren). Vanaf deze slide worden de niet-verplichte (informatie)slides bezocht. Per slide wordt in een variabele init1Done en init2Done bijgehouden of de slides More info 1 en More info2 zijn bezocht. Met de variabele initAll wordt bijgehouden of het initialisatieproces is afgerond.
Verbeterde versie triggers op slide Initialize
Verloop initialisatieproces
Het project start met de slide Initialize.
Omdat init1Done de waarde False heeft wordt direct naar slide More Info 1 gesprongen
Op More Info 1 krijgt de variable init1Done de waarde True
en omdat initAll nog de waarde False heeft wordt teruggesprongen naar de slide Initialize.
Hier wordt de eerste trigger (sprong naar More Info 1) nu overgeslagen omdat init1Done de waarde True heeft.
De tweede trigger zorgt voor een sprong naar More Info 2.
Op More Info 2 gebeurt nu hetzelfde als op More Info 1, alleen met de variabele init2Done.
Terug op slide Initialize worden nu de eerste twee triggers overgeslagen en krijgt de variabele InitAll de waarde True
Hierna wordt doorgegaan naar de slide Menu.
Als vanuit een andere slide één van de slides met achtergrondinformatie wordt bezocht heeft de variabele InitAll inmiddels de waarde True, waardoor er niet meer wordt gesprongen naar de slide Initialize.
Triggers Informatieslides
Voorkom flitsenOm te voorkomen dat tijdens de initialisatie de inhoud van de achtergrondinformatie slides in een flits te zien is, maak ik de objecten op deze slides pas na een korte vertraging zichtbaar.
In dit voorbeeld zijn er twee niet-verplichte slides, uiteraard werkt het ook voor meer slides. Voor iedere niet-verplichte slide maak je dan een eigen variabele.
Dit is alles wat je moet doen …
Nog even over Reset variables en ReplayIn het voorbeeldproject heb ik op de slide Menu twee extra knoppen opgenomen waarmee de drie init-variabelen kunnen worden gereset en kan worden teruggegaan naar de initialisatie slide. Dit is iets wat in een project natuurlijk nooit voorkomt, maar heb hier alleen is opgenomen om het initialisatieproces te kunnen herhalen.
In de eerste versie die ik maakte, gebeurde iets vreemds: Als ik minimaal één informatieslide heb bezocht dan werkte het perfect. Als ik echter geen slides had bezocht en direct de drie variabelen resette en terug ging naar de initialisatieslide dan bleef het project hangen op een leeg 1e scherm. Dit kon ik oplossen door de triggers die ervoor zorgen dat automatisch de twee informatieslides worden bezocht niet aan de tijdlijn van de slide hangen, maar aan de tijdlijn van een object op die slide. In dit geval is dat de Text Box met de tekst Initalize.