Leerdoelen
- Events kunnen voorzien van geluid.
- Interactie met geluid kunnen versterken.
- Kennis van verdere mogelijkheden met geluid in flash.
Deze les
- Wijzigen van geluid (volume en pan)
- Het veranderen van geluid (transform)
- Volume slider maken
- Properties
- MP3 song information
Wijzigen van geluid (volume en pan)
Wanneer je gebruik maakt van de soundclass. Flash geeft je controle over het volume, maar ook over de output uit je linker en rechter speaker. Dit wordt pan-control genoemd. Hieronder een voorbeeld van de code voor een pan.
btnLeftspeaker.onRelease = function(){ sGeluidje.setPan(-100); } btnRightSpeaker.onRelease = function(){ sGeluidje.setPan(-100); } btnLeftSpeaker.onRelease = function(){ sGeluidje.setPan(100); } btnBothSpeaker.onRelease = function(){ sGeluidje.setPan(0); }
DWanneer je dit weet kan je dit natuurlijk ook met script laten animeren. Je kan de pan langzaam van 100 naar -100 laten zakken.
Het veranderen van geluid (transform)
De animatie van geluid hierboven is een vrij groffe methode. Om het geluid zich door een ruimte te laten verplaatsen, kan je het precieser definieren. Hiervoor gebruik je het transformobject. Deze kent 4 eigenschappen: ll, lr, rr, rl. Hieronder de betekenis:
ll | Percentage dat definieert hoeveel van de linker input speelt in de linker speaker |
lr | Percentage dat definieert hoeveel van de rechter input speelt in de linker speaker |
rr | Percentage dat definieert hoeveel van de rechter input speelt in de rechter speaker |
rl | Percentage dat definieert hoeveel van de linker input speelt in de rechter speaker |
Je kunt dus op die manier het geluid zich laten verplaatsen van de linker naar de rechterspeaker. Hier onder een voorbeeld hoe het script er uit zou moeten zien:
sGeluidje = new Sound;
sGeluidje.attachSound("interview");
btnStart.onRelease = function(){
// 0 betekent dat geluid begint bij begin en 1 hoe vaak het loopt
sGeluidje.start(0,1);
}
btnTransform.onRelease = function() {
var geluidTransform = new Object();
var geluidTransform.ll = 0;
var geluidTransform.lr = 100;
var geluiddTransform.rl = 100;
var geluidTransform.rr = 0;
sGeluidje.setTransform(geluidTransform);
}
Volume slider maken
Hierboven en in de vorige les zijn allemaal ingredienten genoemd die je kunt toepassen in games of andere interfaces. In de opdracht heb je gewerkt aan een mp3 speler. Hier heb je direct te maken met allerlei interactieve elementen. Als de gebruiker met jouw product aan de slag gaat, wil je graag zo duidelijk mogelijk feedback geven over de situatie waar de gebruiker zich in bevind. Hiervoor kan je deze lessen goed gebruiken. Hieronder een voorbeeld van het maken van een slider om het volume te regelen.
Een slider bestaat uit twee onderdelen een knop, welke de slider is en een lijn waarover de slider beweegt. Deze noem ik mcGroove en mcSlider. Met een gewoon drag en drop script is het eenvoudig om een slider te maken, zie onderstaand voorbeeld. Ik maak deze slider in een movieclip. De reden hiervoor is dat je dan alles in de movieclip kan afhandelen.
Stap 1 is het aanmaken van een movieclip. Deze noem ik mcSliderObject. Hierin maak ik drie lagen aan. Een laag actions, een laag voor de movieclip mcSlider en een laag voor de movieclip mcGroove. Teken deze movieclips. En geef ze een instancename.
Stap 2: Vervolgens moet je een script schrijven voor drag en drop. In onderstaand voorbeeld plaats ik alle code in de actions laag.
mcSlider.onPress = function(){ this.startDrag(false, mcGroove._x, mcGroove._y, mcGroove._x + 100, mcGroove._y); } mcSlider.onRelease = function(){ stopDrag(); }
Daarna wil je graag het volume koppelen aan de slider.Helemaal links is het geluid 0 of uit. En helemaal rechts is het geluid op 100 procent. Dus op zijn totale volume. Het is overigens mogelijk geluid te laten horen op 200%. Om het geluid te koppelen aan de slider breiden we het script uit met de volgende code:
mcSlider.onMouseMove = function(){ _root.sGeluidje.setVolume(this._y); }
Een probleem in flash is dat elke movieclip zijn eigen tijdlijn en coordinaten kent. Als je wil weten wat de positie in een movieclip is ten opzichte van de stage op scene 1 gebruikje Global to Local. Hiermee kan je de positie opvragen die je je movieclip niet op de
Wat is global to local en wat hoe nu met het geluid? Daarvoor hebben we een play knop nodig en een geluidje dus dat eerst:
sGeluidje = new Sound; sGeluidje.attachSound("interview"); btnPlay.onRelease = function(){ sGeluidje.start(0,1) }
Properties
Een voorbeeld van het gebruikmaken van soundproperties is een afbeeldingen laten blenden in de tijd dat een geluidje duurt.
sGeluidje = new Sound; sGeluidje.attachSound("interview"); _root.onEnterFrame = function(){ mcAfbeelding._alpha = (sGeluidje.position / sGeluidje.duration) * 100); }
Wat hier gebeurt is dat er iedere keer opnieuw wordt berekend hoeveel procent van het nummer al gespeeld is. Bij 100 procent, kan je de afbeelding zien. Je kunt hier natuurlijk nog allerlei informatie aan toevoegen.
Daarnaast kan je ook events koppelen aan geluid, zie volgend voorbeeld:
sGeluidje = new Sound; sGeluidje.attachSound("interview"); sGeluidje.start(0,1); sGeluidje.onSoundComplete = function(){ mcAfbeelding._alpha = 100; }
MP3 song information
Je kunt in flash de gegevens opvragen van een mp3-tje. Belangrijk is natuurlijk wel dat de mp3 deze gegevens inzich heeft. Flash kan uit de mp3 informatie deze gegevens halen. De hoofdletters in onderstaand voorbeeld zijn de parameters waarmee je de verschillende informatie te voorschijn kan halen. Hier bestaat een hele lijst van. Dit is te vinden in flash.
sSong = new Sound; sSong.loadSound("fly.mp3",true); sSong.onID3 = function(){ trace("Artiest:" + sSong.id3.TPE1); trace("Album:" + sSong.id3.TALB); trace("Titel:" + sSong.id3.TIT2); trace("Released:" + sSong.id3.TYER); }
In de help van flash is deze lijst hier te vinden:
actionscript 2.0 language > actionScript classes > sound
Hier staan alle properties die horen bij sound. De informatie uit deze lesbrief is hier voor een deel terug te vinden. Klik hier op id3 en je krijgt de volgende lijst:
TFLT |
File type |
TIME |
Time |
TIT1 |
Content group description |
TIT2 |
Title/song name/content description |
TIT3 |
Subtitle/description refinement |
TKEY |
Initial key |
TLAN |
Languages |
TLEN |
Length |
TMED |
Media type |
TOAL |
Original album/movie/show title |
TOFN |
Original filename |
TOLY |
Original lyricists/text writers |
TOPE |
Original artists/performers |
TORY |
Original release year |
TOWN |
File owner/licensee |
TPE1 |
Lead performers/soloists |
TPE2 |
Band/orchestra/accompaniment |
TPE3 |
Conductor/performer refinement |
TPE4 |
Interpreted, remixed, or otherwise modified by |
TPOS |
Part of a set |
TPUB |
Publisher |
TRCK |
Track number/position in set |
TRDA |
Recording dates |
TRSN |
Internet radio station name |
TRSO |
Internet radio station owner |
TSIZ |
Size |
TSRC |
ISRC (international standard recording code) |
TSSE |
Software/hardware and settings used for encoding |
TYER |
Year |
WXXX |
URL link frame |
Links
Een groot deel van deze les is geinspireerd door het boek 'visual quickpro guide', macromedia flash 8 advanced.