Avatar billede s_u_m_s_a_r Nybegynder
02. december 2005 - 13:23 Der er 15 kommentarer og
1 løsning

Keyframe tjek

Hey,

Jeg sidder med noget lyd som jeg ikke helt kan finde ud af at styre.
Det skulle gerne være sådan at hvis jeg klikker 10 gange på "play" knappen - skulle musikken stadig gerne kun spille 1 gang.

Lyden jeg skal styre ligger i et movieclip (mc_sound1). Der er "stop" på første frame i movieclippet og selve lyden ligger i 2. frame.

Når jeg så klikker på min "play" knap går jeg ud fra at den skal tjekke om playhead'et i movieclippet befinder sig i frame 1 eller 2?

Jeg må indrømme jeg er blank som en nyslået 25-øre...help.

/Rasmus
Avatar billede nikolajdu Nybegynder
02. december 2005 - 13:39 #1
knap.onRelease = function(){
if(playhead._currentframe == 1){
gør noget
}else{
vi er i frame 2.
}
}

sårn i den dur?
Avatar billede nikolajdu Nybegynder
02. december 2005 - 13:39 #2
og med lidt pænere formatiering end ekspertens.

knap.onRelease = function () {
    if (playhead._currentframe == 1) {
        // gør noget
    } else {
        // vi er i frame 2.
    }
};
Avatar billede s_u_m_s_a_r Nybegynder
02. december 2005 - 13:49 #3
Det her har jeg på den første frame i på main timelinen indtil videre - men den afspiller stadig selve sangen 10 gange oven i hinanden hvis jeg trykker 10 gange...:S

///
_root.btn_forwards.onRelease = function(){
    if (_root.mc_sound1._currentframe == 1) {
        _root.mc_sound1.gotoAndPlay(2);
        }else{
}
};
///
Avatar billede s_u_m_s_a_r Nybegynder
02. december 2005 - 13:50 #4
forresten ved jeg ikke hvad jeg skal skrive i "else" delen...Jeg skal fortælle musikken at hvis den allerede afspiller skal den ikke gøre noget...tsk tsk...jeg har glemt ALT om Flash..

/R.
Avatar billede nikolajdu Nybegynder
02. december 2005 - 13:53 #5
Du behøver jo slet ikke else delen hvis ikke den skal gøre noget. Prøv at trace hvilken frame den er i for at se om det virker.  Måske det skal være gotoAndStop

_root.btn_forwards.onRelease = function(){
trace((_root.mc_sound1._currentframe );
    if (_root.mc_sound1._currentframe == 1) {
        _root.mc_sound1.gotoAndStop(2);
        }else{
}
};
Avatar billede s_u_m_s_a_r Nybegynder
02. december 2005 - 14:01 #6
hmmm - jeg prøvede at trace framen - og den siger at mc_sound1 afspiller i frame 1 - hvilket jeg ikke kan forstå da der kun ligger lyd i frame 2??
Avatar billede barklund Nybegynder
02. december 2005 - 14:07 #7
Brug dog et Sound-objekt og lav det i actionscript - det andet er lidt for meget et flash4-hack :(
Avatar billede s_u_m_s_a_r Nybegynder
02. december 2005 - 14:10 #8
Hep,

Ja det ville jeg skam også gerne - men som det fremgår kan min scripting kunnen ligge på et meget lille sted.

Er det noget med at man laver et soundObjekt sådan her?

var sound1 = new Sound (_root.mc_sound1);

...jeg har bare ingen anelse om hvordan man kontrollerer det?

Tak for hjælpen indtil videre.

/R.
Avatar billede barklund Nybegynder
02. december 2005 - 15:44 #9
slet dit movieclip, det skal vi ikke bruge...

giv din frame følgende script:

var sound = new Sound(this);
var playing = false;
sound.attachSound("lydens attach navn i library");
sound.onSoundComplete = function() {
  playing = false;
}
_root.btn_forwards.onRelease = function(){
    if (!playing) {
        sound.start();
        playing = true;
    }
};

That's it - meget simpelt og logisk. Vi laver et lydobjekt, tilføjer lyden, sætter playing til false (den spiller ikke fra starten), når lyden er færdig sætter vi igen playing til false, når der trykkes på knappen tester vi, om der spilles, og hvis ikke spiller vi og sætter playing til true.

:)

--
Morten Barklund
Avatar billede s_u_m_s_a_r Nybegynder
02. december 2005 - 16:02 #10
kanon - takker - smid et svar :)

/R.
Avatar billede s_u_m_s_a_r Nybegynder
02. december 2005 - 16:10 #11
Nu har jeg fået styr på brugen af currentframe - men hvis jeg skal have den til at tjekke om currentframe er f.eks. <81 og >63 i en if-sætning...hvordan gør jeg så det?

    _root.btn_back.onRelease = function(){
    if (_root.mc_animation._currentframe < 81 HVAD SÆTTER JEG IND HER)
    {_root.mc_animation.gotoAndPlay(62);
    }

Mange tak for hjælpen - jeg burde smide nogle flere points i med alle de spørgsmål ;)

/R.
Avatar billede barklund Nybegynder
02. december 2005 - 16:38 #12
&& betegner logisk AND:

_root.btn_back.onRelease = function(){
    if (_root.mc_animation._currentframe < 81 && _root.mc_animation._currentframe > 63)
        _root.mc_animation.gotoAndPlay(62);
    }
}

:)

--
Morten Barklund
Avatar billede s_u_m_s_a_r Nybegynder
02. december 2005 - 16:56 #13
Du er lige blevet udnævnt til "helt"...

Jeg havde bare ikke skrevet hele stien med, og så gad skidtet ikke.

Mange tak - smider du et svar?

/R.
Avatar billede barklund Nybegynder
02. december 2005 - 19:35 #14
Hvis du har mod på at få frisket dit actionscript lidt op og gerne vil lære mere, så kan jeg da rekommandere http://globe.dk/?action=detail&vare=FG227-7 - den skulle være skrevet af sådan en hyggelig fyr ;)

--
Morten Barklund :)
Avatar billede s_u_m_s_a_r Nybegynder
02. december 2005 - 19:58 #15
Hehe - Det kunne være den var en investering værd :) - sådan en ebook kan altid bruges.

/R.
Avatar billede barklund Nybegynder
03. december 2005 - 11:10 #16
Helt fint, tark for points - og bogen fås selvfølgelig også som almindelig bog :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester