PDA

Volledige versie bekijken : automatisch muziek op pauze


niwde
%Europe/Berlin %668 %2010, 17:02
hoi!

Ik heb een flash website, maar loop tegen een probleem aan.
In plaats van dat mijn muziek standaard aan staat wil ik deze op pauze zetten en dat mensen het button kunnen aanklikken zodat er muziek klinkt (eerst staat er dus een kruisje door het muziek tekentje, als je er op klikt gaat deze weg en speelt er muziek.

Mijn code voor mijn muziek player is tot nu toe:

stop();
var default_volume:Number = 0.70; // 0.00 tot 1.00
var bg_music:Sound = new flash_music();
var music_channel:SoundChannel = bg_music.play(0, 10000);
var music_volume:SoundTransform = new SoundTransform();

music_volume.volume = default_volume;
music_channel.soundTransform = music_volume;

sound_control.stop();
sound_control.addEventListener( MouseEvent.CLICK, play_pause );

function play_pause(e:MouseEvent):void
{
music_volume.volume = default_volume;

if( e.target.currentFrame == 1 )
music_volume.volume = 0;

music_channel.soundTransform = music_volume;
e.target.play();
}


iemand enig idee hoe ik dit kan veranderen?
(ja ik weet het dit script heb ik niet zelf gemaakt, maar ergens anders vandaan gehaald. Ik ben druk bezig Flash zelf onder de knie te krijgen ;) )

alvast bedankt!
Niwde

sidar
%Europe/Berlin %781 %2010, 19:45
var music_channel:SoundChannel = bg_music.play(0, 10000);

Je roept direct de play aan...
Doe dit dan op de click


var music_channel:SoundChannel;

In je click
music_channel = bg_music.play(0, 10000);

niwde
%Europe/Berlin %668 %2010, 17:02
ga ik proberen, dankje!

niwde
%Europe/Berlin %721 %2010, 18:18
moet ik dit dan integreren in
sound_control.addEventListener( MouseEvent.CLICK, play_pause ); ?

Ik heb al meerdere dingen geprobeerd, maar ik krijg het niet helemaal netjes voor elkaar.

Ik voel me zo dom haha, maar 'still learning every day'

Niwde

sidar
%Europe/Berlin %729 %2010, 18:29
stop();
var default_volume:Number = 0.70; // 0.00 tot 1.00
var bg_music:Sound = new flash_music();
var music_channel:SoundChannel;
var music_volume:SoundTransform;
var isPauzed:Boolean = true;


sound_control.stop();
sound_control.addEventListener( MouseEvent.CLICK, play_pause );

function play_pause(e:MouseEvent):void
{
if(isPauzed)
{
music_volume = new SoundTransform();
music_volume.volume = default_volume;
music_channel = bg_music.play(0, 10000);
music_channel.soundTransform = music_volume;
}
else
{
music_channel.stop();
}

isPauzed = !isPauzed;

e.target.play();
}

Zo denk ik =)

Aduen
%Europe/Berlin %736 %2010, 18:40
ik weet niet precies hoe je het nu hebt opgezet maar, het lijkt erop dat er misschien nog iets fout gaat bij: e.target.play();

als je hiermee de muziek wilt starten gaat dat het niet worden denk ik (kan niet terugvinden wat "sound_control" precies voor een object is maar ik ga er nu vanuit dat dit een MovieClip is)


stop();
var default_volume:Number = 0.70; // 0.00 tot 1.00
var bg_music:Sound = new flash_music();
var music_channel:SoundChannel = bg_music.play(0, 10000);
var music_volume:SoundTransform = new SoundTransform();

music_volume.volume = default_volume;
music_channel.soundTransform = music_volume;

sound_control.stop();
sound_control.addEventListener( MouseEvent.CLICK, play_pause );

function play_pause(e:MouseEvent):void
{
music_volume.volume = default_volume;

if( e.target.currentFrame == 1 )
music_volume.volume = 0;

music_channel.soundTransform = music_volume;
e.target.play();
}
pause/play functie op muisklik, bugs voorbehouden, ik heb het niet getest. Zoiets moet het wel zijn.


var isPlaying:Boolean = false;
var lastPosition:int = 0;

sound_control.addEventListener( MouseEvent.CLICK, play_pause );

function play_pause(e:MouseEvent):void
{
if(isPlaying){
lastPosition = music_channel.position;
music_channel.stop();
}
if(!isPlaying)music_channel = bg_music.play(lastPosition, 10000);


isPlaying = !isPlaying
}
alles wat ik niet helemaal begreep heb ik weggehaald en enkel de essentie van play/pause opgezet. Zelf de code toepassen jouw eigen werk, zal misschien niet naadloos gaan.

succes

edit: ha, had de window iets te lang open staan, @sidar onze voorbeelden zijn nagenoeg hetzelfde, sweet. alleen stop jij de muziek en begin je weer bij nul, niet echt pauze. hoe dan ook, sweet.

niwde
%Europe/Berlin %737 %2010, 18:41
dankje voor de moeite, maar er is nog steeds een probleem,
ik krijg nu elke keer de error:
Layer 'Actions', Frame 2, Line 14
1084: Syntax error: expecting rightparen before colon.

line 14 is hier:
if (isPauzed:Boolean)

wat kan hier mis mee zijn?
ik heb even op internet gekeken en het moet iets zijn met de haakjes, maar wat is mij nog een raadsel ;)

sidar
%Europe/Berlin %746 %2010, 18:55
Hahah ik had het al verbeterd =P je was te snel kijk nog maar een keer.

En die "lastPosition" van Aduen is ook wel een goeie tenzij je wilt dat ie opnew begint.

Aduen
%Europe/Berlin %747 %2010, 18:56
haha, wat heb jij nou gedaan.
ik zal uitleggen wat de code is, isPauzed is een boolean. Een boolean heeft maar twee waardes, true of false.

if(isPauzed)//do something;
betekent dan ook als isPauzed de waarde true bevat dan ga je iets doen

isPauzed = !isPauzed;
betekent isPauzed wordt de tegenovergestelde waarde van isPauzed, oftwel, als hij false is wordt hij true en andersom.

nu heb jij :Boolean erbij gegooid, ik weet niet waarom maar, ik zal eens beginnen beter onze code te lezen en die :Boolean uit jouw if clausule te verwijderen ;) succes

Edit: oke ik stop, ik heb een time delay aan deze kant, jammer :P

sidar
%Europe/Berlin %749 %2010, 18:59
haha, wat heb jij nou gedaan.
ik zal uitleggen wat de code is, isPauzed is een boolean. Een boolean heeft maar twee waardes, true of false.

if(isPauzed)//do something;
betekent dan ook als isPauzed de waarde true bevat dan ga je iets doen

isPauzed = !isPauzed;
betekent isPauzed wordt de tegenovergestelde waarde van isPauzed, oftwel, als hij false is wordt hij true en andersom.

nu heb jij :Boolean erbij gegooid, ik weet niet waarom maar, ik zal eens beginnen beter onze code te lezen en die :Boolean uit jouw iof clausule te verwijderen ;) sucecs

Edit: oke ik stop, ik heb een time delay aan deze kant, jammer

Mijn eerste response had die fout ook, daarom heeft niwde de fout meegekregen. Ik had het direct daarna verbeterd. Maar hij had het eerder gelezen dan dat ik het had verbeterd.

Aduen
%Europe/Berlin %754 %2010, 19:06
ja ik had hem ondertussen wel door, de berichten en edits liepen voor iedereen een beetje doorelkaar. :)

PS: heeft iedereen trouwens last van een wat trage server response?

niwde
%Europe/Berlin %773 %2010, 19:33
hee jongens(/meiden),

dankjewel!
Hier heb ik echt iets aan, snelle en goede reacties.

Sidar had een mooi antwoord, Aduen de finishing touch :)

Niwde

niwde
%Europe/Berlin %853 %2010, 21:29
#slotje