Uitgebreide flash API



Indien je uitgebreidere SWF animaties wilt maken welke beter samenwerken met het magazinesysteem kan je gebruik maken van verschillende events. In dit document een uitleg van de events. Op de volgende URL een voorbeeld SWF/FLA bestand waar alle events in voorkomen :

Download link :
http://www.online-magazine.nl/documentatie/uitgebreide_flash_events.zip


De Custom events
Voor dat je begint aan een nieuw flash bestand dien je eerst de map “nl”, inclusief inhoud in de map van je hoofdbestand te kopieën, deze bevat een actionscript bestand, met de naam FlashEvent.as.

Dit is een custom event klasse, die er voor zal zorgen dat je vanuit je swf ook bepaalde onderdelen kunt aansturen van het magazine:

• EVENT_GOTO_PAGE: Navigeren naar een bepaalde pagina
• EVENT_SHOW_ELEMENT: Een element op de pagina tonen, die verborgen is
• EVENT_SHOW_ELEMENT_AND_CLOSE: Deze toont ook een element dat verborgen is, maar gaat ook alle eerder geactiveerde elementen terug verbergen.
• EVENT_ACTIVATE_TELL_A_FRIEND: Opent het “Tell a friend” popup venster
• EVENT_ACTIVATE_REGISTER: Opent het “Register” popup venster

De constuctor van deze classe ziet er als volgt uit:

public function FlashEvent(pType : String, pdata : int = -1, pBubbles : Boolean = false, pCancelable : Boolean = false)

Deze is gebaseerd op de standaard Flash Event: http://help.adobe.com/nl_NL/FlashPlatform/reference/actionscript/3/flash/events/Event.html?filter_flash=cs5&filter_flashplayer=10.2&filter_air=2.6

Het is van belang dat je telkens als je dit event uitstuurt dit doet dmv bubbels aangezien het event niet rechtstreeks op het element zelf wordt opgevangen, zoals in onderstaand voorbeeld:

dispatchEvent(new FlashEvent(FlashEvent.EVENT_ACTIVATE_REGISTER, -1, true));

Dit is de 3de parameter.

De verschillende events

EVENT_GOTO_PAGE:
Hier moeten we voor de pdata-parameter het id van de pagina van het huidige boek, dat we willen openen opgeven, deze kun je vinden in de url van de pagina: ../nl/app/#/issue=365&page=657704 of in het pagina overzicht in de editor, dit tussen het pagina nummer en de thumbnail.

dispatchEvent(new FlashEvent(FlashEvent.EVENT_GOTO_PAGE, 657704, true));


EVENT_SHOW_ELEMENT & EVENT_SHOW_ELEMENT_AND_CLOSE
Hier moeten we voor de pdata-parameter het ID van het element zijn dat je wilt sluiten, deze vind je in de editor, wel bepaald in het lagen paneel onder de pagina dat je aan het bewerken bent.
Als je over de laag gaat die je wilt openen krijg je een popup te zien met de gegevens van het element waaronder ook zijn ID.

dispatchEvent(new FlashEvent(FlashEvent.EVENT_SHOW_ELEMENT_AND_CLOSE, 4, true));
dispatchEvent(new FlashEvent(FlashEvent.EVENT_SHOW_ELEMENT, 4, true));


EVENT_ACTIVATE_TELL_A_FRIEND & EVENT_ACTIVATE_REGISTER
Hier mag de pdata eender welk nummer bevatten, maar hij moet er wel zijn omdat je nog steeds de parameter, bubbels = true moet meegeven.
dispatchEvent(new FlashEvent(FlashEvent.EVENT_ACTIVATE_TELL_A_FRIEND , -1, true));
dispatchEvent(new FlashEvent(FlashEvent.EVENT_ACTIVATE_REGISTER, -1, true));


BESTURING VAN VOLUME

Als de swf bepaalde geluids bronnen bezit bestaat er de mogelijkheid deze ook te doen luisteren naar de geluidsinstellingen van de magazine, hier voor moet je een publieke functie voorzien welke het magazine-systeem zal gebruiken om het volume in te stellen.
De functie moet er als volgt uit zien:

public function setMagazineVolume(value : Number):void{
<uw code>
}
De volume waardes die naar de functie gestuurd worden lopen van 0 naar 1.