Avatar billede peter_molgaard Nybegynder
13. januar 2003 - 07:14 Der er 1 kommentar

Zoom og hotspot

Jeg er igang med et program hvor man kan bevæge et bitmapbillede rundt på Stage med piletasterne, og zoome ind og ud med PgUp og PgDn. Der er skjulte knapper på billedet, lagt i de efterfølgende sprites. Jeg kan få kanpperne til at følge med til siderne og op og ned, men hvordan holder jeg dem på plads når jeg zoomer ind og ud af billedet ?
Avatar billede peter_molgaard Nybegynder
01. marts 2003 - 09:51 #1
Jeg fandt selv løsningen. Den er her, hvis nogen skulle være interesseret:
global K1, K2, lg, br, zoomWidth, zoomHeight, sp2W, sp2H, venstre, hojre,op,ned,sp1W,SP1h,pSprite2locH

on startMovie--konstanter
  sp2W=sprite(2).width
  sp2H=sprite(2).height
 
  pSprite2locH=sprite(2).locH-sprite(1).left
  pSprite2locV=sprite(2).locV-sprite(1).top
 
  K1=pSprite2locH/ float(sprite(1).width)
  K2=pSprite2locV/float(sprite(1).height)
 
  zoomWidth=sprite(1).width/100
  zoomHeight=sprite(1).height/100

end

on zoomUd
  sprite(1).width=sprite(1).width+zoomWidth
  sprite(1).height=sprite(1).height+zoomHeight
 
  lg=sprite(1).width--x
  br=sprite(1).height--y
  sprite(2).loc=point((lg*K1+sprite(1).left),(br*K2+sprite(1).top))

end

on zoomInd
  sprite(1).width=sprite(1).width-zoomWidth
  sprite(1).height=sprite(1).height-zoomHeight
  lg=sprite(1).width--x
  br=sprite(1).height--y
  sprite(2).loc=point((lg*K1+sprite(1).left),(br*K2+sprite(1).top))

end

on venstre
  if sprite(1).right< (the stageRight) then exit
  sprite(1).loc = sprite(1).loc - point(10, 0)
  sprite(2).loc = sprite(2).loc - point(10, 0)
end

on hojre
  if sprite(1).left> (the stageRight - the stageRight) then exit
  sprite(1).loc = sprite(1).loc + point(10, 0)
  sprite(2).loc = sprite(2).loc + point(10, 0)

end

on ned
  if sprite(1).top> (the stageBottom - the stageBottom) then exit
  sprite(1).loc = sprite(1).loc + point(0, 10)
  sprite(2).loc = sprite(2).loc + point(0, 10)

end
on op
  if sprite(1).bottom< (the stageBottom) then exit
  sprite(1).loc = sprite(1).loc - point(0, 10)
  sprite(2).loc = sprite(2).loc - point(0, 10)

end

måske ikke det mest elegante, men det virker.

pm
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
Kurser inden for grundlæggende programmering

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