Flash AS3 Sound, play, stop and pause [EN]


Click on the radio to start or pause the music. Click on the plug to stop the music. Music by Alphonso Steverink – We are all distorted.

This is the code i used to make the swf above:

stop();
 
// declaring variables
var pausePoint:Number = 0.00;//Make a pausepoint, for resuming playback
var soundClip:Sound = new Sound();//Make a soundobject
var sndChannel:SoundChannel = new SoundChannel();//Make a soundchannel
var isPlaying = false;//a variable for checking if the music is playing
 
soundClip.load(new URLRequest("name.mp3"));//loading an mp3 into the soundobject
 
StopKnop.addEventListener(MouseEvent.CLICK, onClickStop);//button for stopping the music
SpeelOn.addEventListener(MouseEvent.CLICK, onClickPauze);//button to pause or play the music
 
function onClickStop(evt:MouseEvent)//the stop function
{
	if (isPlaying==true)//check if the sound is playing, if true then continue
	{
		sndChannel.stop();//stop soundchannel from playing
		isPlaying = false;//set playing var on false
		StopKnop.visible = false;//hide the stop button
	}
	pausePoint = 0.00;//return pausepoint to 0
}
 
function onClickPauze(evt:MouseEvent)//the pause function
{
	if (isPlaying==true)//check if the sound is playing, if true then continue
	{
		pausePoint = sndChannel.position;//remember the pause position
		sndChannel.stop();//stop soundchannel from playing
		isPlaying = false;//set playing var on false
	}
	else
	{
		sndChannel = soundClip.play(pausePoint);//resume playing from pausepoint
		isPlaying = true;//set playing var on true, sound is playing
		StopKnop.visible = true;//hide the stop button
	}
}

To stop all sounds playing on either a timeline or through actionscript, use the following code:

import flash.media.SoundMixer;
SoundMixer.stopAll();

In short, if you would like to play a sound on your timeline use the following code:

var soundClip:Sound = new Sound();//Make a soundobject
var sndChannel:SoundChannel = new SoundChannel();//Make a soundchannel
 
soundClip.load(new URLRequest("name.mp3"));//loading an mp3 into the soundobject
 
sndChannel=soundClip.play();//play the sound

If you want to re-use this code for more sounds, don’t forget to adjust the var names “soundClip” and “sndChannel”.

It is possible that flash doesn’t play the mp3, depending on the used codec flash can give a streamerror. Use adobe photobooth or audacity to make a new mp3 without any compression. I always use mp3’s instead of other formats. In my opinion those work most of the time.

To stop the above sound from playing use:

sndChannel.stop();//channel stoppen

If you would like to loop the sound, use the folowing code:

sndChannel=soundClip.play(0,999);

The last number after the play function states how many times your sound is going to loop. 999 is the maximum you can enter.

Flash AS3 timer

Om deze timer te maken heb je de volgende code nodig op het eerste frame van de swf:

stop();

var Teller=30; //hierin het aantal seconden dat de timer moet gebruiken

var Tellen=true; // om maar een keer te tellen, zet ik deze nu op true. Later op False, hij is dan al een keer terug geteld naar 0

time_txt.text=Teller; //time_txt is de instance name van het text veld waarin afgeteld wordt. Teller is de variabele met daarin het aantal seconden

var myTimer:Timer=new Timer(1000,30); //1000,30 betekend dat er 30 keer een seconde getimed wordt, aanpassen naar 60 voor een minuut.

myTimer.addEventListener(TimerEvent.TIMER, timerListener);

function timerListener(e:TimerEvent):void {
if (Teller==0) {
Tellen=false; //Niet meer tellen als de teller op 0 staat
} else {
Teller–; //iedere seconde een afhalen van het getal in de variabele Teller
time_txt.text=Teller; //het text vak updaten met het nieuwe getal
//ZwartVlak.nextFrame(); //gaat binnen de instance ZwartVlak naar een volgend frame
}
}

myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete);

function onComplete(e:TimerEvent):void {
gotoAndStop(“uit”); //als de timer klaar is wordt dit uitgevoerd, ga naar frame label “uit” in dit geval op frame nummer 2
}

start_btn.addEventListener(MouseEvent.CLICK, onStart);

function onStart(e:MouseEvent):void {
myTimer.start(); //starten van de timer
}

Op frame 2 staat in principe hetzelfde, alleen een donkere laag over alle andere assets heen. Vergeet geen stop(); code toe te voegen voor de zekerheid op frame 2.

Flash AS3 Naam invullen en hergebruiken

Op frame 1 staat deze code:

stop();

var Naam=”vul hier je naam in”; //de variabele naam een waarde geven

NaamText.text=Naam;//de var naam in het textveld NaamText (instance name van het inputveld) zetten

NaamText.addEventListener(MouseEvent.CLICK, Leegmaken); //als je klikt op het inputveld, het veld leegmaken

function Leegmaken (e:MouseEvent):void {
Naam=””;//leeg maken
NaamText.text=Naam;//textveld updaten
}

verder.addEventListener(MouseEvent.CLICK, VolgendeFrame);// naar volgende frame

function VolgendeFrame (e:MouseEvent):void {
Naam=NaamText.text;//textveld updaten met de content
gotoAndStop(2);
}

Op frame 2 staat de volgende code (en dat kan natuurlijk ook een willekeurig ander frame zijn):

this.Naam=Naam;//met this voor een variabele, pakt flash de var mee uit andere keyframes
NaamText2.text=Naam;//textveld vullen met de variabele

Flash AS3 schalen met toetsenbord toetsen + & –

Deze code is geupdate met een variatie, je moet dan eerst een object selecteren voor je hem kunt gaan schalen. De code is hier te vinden.

Klik op bovenstaande flash om met de + toets een van de schilderijtjes groter te maken en – om hem kleiner te maken.

De volgende code heb je hiervoor nodig:

stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPress);
//een listener op de stage, die luisterd of er een toets ingedrukt wordtfunction onKeyPress(e:KeyboardEvent):void
{
if (e.keyCode == 187)
{//als de keycode 187 is (+)
Schilderij.scaleX += 0.5; //schaal 0.5 omhoog in de X-as
Schilderij.scaleY += 0.5; //schaal 0.5 omhoog in de Y-as
}
if (e.keyCode == 189)
{//als de keycode 189 is (-)
Schilderij.scaleX -= 0.5; //schaal 0.5 omlaag in de X-as
Schilderij.scaleY -= 0.5; //schaal 0.5 omlaag in de Y-as
}
}

Vindt hier de verschillende keycodes voor je keyboardtoetsen.

flashles

Ieder tweede en vierde blok van het schooljaar geef ik weer flashles. Studenten leren bij mij dan hoe ze het programma moeten gebruiken om een immersive space te maken. Kort uitgelegd is een immersive space een programma op de computer waar je als gebruiker interactie mee hebt. Je kunt klikken, naar andere scenes gaan enzovoorts. Als het maar immersive is, zodat je eigenlijk even vergeet dat je in het hier en nu zit.

Dat laatste is lastig, bijna niet haalbaar. Maar de meesten komen toch best een eind. Voorheen gaf ik les in flash en actionscript 2, dat is nu veranderd en actionscript 3 geworden. Wat een verschil is dat! Moet weer vanaf het begin gaan leren hoe dat werkt. De opzet is heel anders, logica is anders.. Ben nu dus daarmee bezig en gelijk maar al het geleerde in sheets plaatsen. Kan ik het de studenten ook weer goed uitleggen in de klas.

Net geleerd hoe het zit met audio in flash en actionscript, nu door met het laden van een nieuwe swf..