Avatar billede hunghing Nybegynder
08. maj 2002 - 02:34 Der er 5 kommentarer og
1 løsning

play/pause multiknap!

Hej, er der nogle der kan hjælpe mig med noget script til play/pause knap. Det er sådan at jeg har 6 billeder ialt.

"play" = play knappen
"play2" = mouseover knappen til play
"play3" = Nedtrykkede knap til play
"pause" = pauseknappen
"pause2" = mouseover knappen til pause
"pause3" = Nedtrykkede knap til pause

Indtil videre har jeg indsat play knappen ind på stagen og placeret den.
Jeg har skrevet følgende script:

on mouseEnter me
  set the member of sprite 7 to "play2"
 
on mouseLeave me
  set the member of sprite 7 to "play"
 
on mouseUp me
  set the member of sprite 7 to "play"
  set the movierate of sprite 6 to 1
 
on mouseDown me
  set the member of sprite 7 to "play3"
 
end

Det jeg gerne vil have er at når jeg har trykket på når jeg peger med musen over play knap viser den mouseoverbilledet og når jeg trykker så den nedtrykkede billede. Når jeg så har trykket og sluppet musen skal den skifte til pausebilledet og som skal have den samme funktion som play knappen med mouseover og nedtrykkede billede. Altså en multiknap play/pause.

Det var så en lang smørre og håber der er nogle der kan hjælpe mig.

/HungHing
Avatar billede hunghing Nybegynder
08. maj 2002 - 02:50 #1
Knapperne skal selvfølgelig have deres rigtige funktioner samtidig som knapperne illustreres.
Avatar billede hunghing Nybegynder
08. maj 2002 - 03:11 #2
Forresten styrer knappen en quicktime movie. Når filmen slutter skal knappen gerne automatisk skifte til play igen.
Avatar billede Himbear Nybegynder
08. maj 2002 - 08:01 #3
Det ser egentlig meget rigtigt ud, men du skal have "end" efter hver handler.

on mouseEnter me
  set the member of sprite 7 to "play2"
end 
on mouseLeave me
  set the member of sprite 7 to "play"
end
on mouseUp me
  set the member of sprite 7 to "play"
  set the movierate of sprite 6 to 1
end 
on mouseDown me
  set the member of sprite 7 to "play3"
end


Prøv sådan.
Avatar billede ask-m Nybegynder
08. maj 2002 - 08:55 #4
Du er nødt til at have gang i nogle propertys, så du kan holde styr på hvilken funktion knappen har lige nu (og evt. hvilke andre sprites den skal kommunikere med).

- Jeg går ud fra et det er en behavior du har gang i (så scriptet ligger på en sprite)

Sådan her ville jeg gribe det an. (NB nu skriver jeg koden, så du kan se principperne - jeg har ikke testet det, så det må du selv gøre)...


property pSprite -- nummeret på denne sprite er altid godt at have
property pVideoSprite -- nummeret på din videosprite

property pPlayMember1 -- det castmember der indeholder play1
property pPlayMember2
property pPlayMember3
property pPauseMember1
property pPauseMember2
property pPauseMember3

property pState -- viser knappen play eller pause
property pClickState -- er der klikket på knappen (true/false)

on beginSprite me
  pSprite = me.spriteNum
  pVideoSprite = 10 -- erstattes med nummeret på din videosprite

  pPlayMember1 = member("play1")
  pPlayMember2 = member("play2")
  pPlayMember3 = member("play3")
  pPauseMember1 = member("pause1")
  pPauseMember2 = member("pause2")
  pPauseMember3 = member("pause3")

  pState = #play
  pClickState = FALSE
end

on mouseEnter me
  if pState = #play then -- knappen viser play
      if pClickState then -- museknappen er trykket ned
        sprite(pSprite).member = pPlayMember3
      else
        sprite(pSprite).member = pPlayMember2
      end if
  else
      if pClickState then -- museknappen er trykket ned
        sprite(pSprite).member = pPauseMember3
      else
        sprite(pSprite).member = pPauseMember2
      end if
  end if
end

on mouseLeave me
  if pState = #play then
      sprite(pSprite).member = pPlayMember1
  else
      sprite(pSprite).member = pPauseMember1
  end if
end

on mouseDown me
  pClickState = TRUE

  if pState = #play then
      sprite(pSprite).member = pPlayMember3
  else
      sprite(pSprite).member = pPauseMember3
  end if
end

on mouseUp me
  if pClickState then -- there was a mouse down on me earlier = valid click
      pClickState = FALSE

      if pState = #play then
        pState = #pause -- skifter til pause-mode
        sprite(pSprite).member = pPauseMember2 -- der er jo stadig rollover, derfor pause2
        sprite(pVideoSprite).movieRate = 1 -- sætter videoen igang
      else
        pState = #play
        sprite(pSprite).member = pPlayMember2
        sprite(pVideoSprite).movieRate = 0 -- pause'r videoen
      end if
  end if
end

on mouseUpOutSide me
  pClickState = FALSE
end

on exitFrame me
  if pState = #pause then -- knappen viser pause
      if sprite(pVideoSprite).movieRate = 0 -- videoen er stoppet
        pState = #play
        sprite(pSprite).member = pPlayMember1
      end if
  end if
end


Det største problem med dette er, hvis brugeren holder knappen nede når video stopper (når til slut), så kan der være lidt grafik forvirring, men der skulle ikke være nogen funktionalitets-problemer...

Ask-M
Avatar billede hunghing Nybegynder
08. maj 2002 - 11:39 #5
Jeg prøver lige en gang Ask-M's eksempel. Tino, jeg tror desværre der skal mere til.
Avatar billede hunghing Nybegynder
08. maj 2002 - 11:50 #6
Jeg har fået det til at virke. Mange tak for hjælpen Ask-M, det var 100% rigtigt.
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