Avatar billede hobz Nybegynder
03. juni 2004 - 11:28 Der er 9 kommentarer og
1 løsning

Billed manipulation

Hvordan kan man lave en effekt som på http://www.mindindesign.com/pages/main.html under Graphic Design, når musen køres over billederne?
Avatar billede pyroman Nybegynder
06. juni 2004 - 02:14 #1
Jeg tror det er i retning af dette:

elasticity = 0.6;
acceleration = 0.99;
maxDrag = 10;

box.origX = box._x;
box.origY = box._y;
this.onEnterFrame = function(){
  if(box.hitTest(_root._xmouse, _root._ymouse, false)){
    box.newX = (_root._xmouse-box.origX)*(maxDrag/(box._width/2+maxDrag))+box.origX;
    box.newY = (_root._ymouse-box.origY)*(maxDrag/(box._height/2+maxDrag))+box.origY;
  }else{
    box.newX = box.origX;
    box.newY = box.origY;
  }
  box.elasticXMove(box.newX, _root.elasticity, _root.acceleration);
  box.elasticYMove(box.newY, _root.elasticity, _root.acceleration);
}
MovieClip.prototype.elasticXMove = function(target, ela, acc) {
  if(!this.xstep) this.xstep = 0;
  this.xstep = this.xstep * ela + (target - this._x) * acc;
  this._x += this.xstep;
}
MovieClip.prototype.elasticYMove = function(target, ela, acc) {
  if(!this.ystep) this.ystep = 0;
  this.ystep = this.ystep * ela + (target - this._y) * acc;
  this._y += this.ystep;
}


Her er "box" instancenavnet for det movieclip der skal have effekten.
"maxDrag" er en afstand i pixels der bestemmer hvor langt "boxen" kan trækkes før den "giver slip".
"elasticity" og "acceleration" er to værdier der har betydning for elastik effekten, begge er en værdi mellem 0 og 1, så dem kan du bare justere lidt på, så du opnår den ønskede effekt.
Avatar billede hobz Nybegynder
06. juni 2004 - 08:41 #2
Det ser meget fornemt ud!! Det skal så være actionscriptet for en enkelt frame i movieclippet eller hvor?
Avatar billede hobz Nybegynder
06. juni 2004 - 09:10 #3
My bad. Mange tak!
Point?
Avatar billede hobz Nybegynder
06. juni 2004 - 09:12 #4
En lille bug. "Tiltrækningskraften" er størrere på højresiden og bottom, end venstre og top.
Avatar billede pyroman Nybegynder
06. juni 2004 - 13:31 #5
Det er den ikke hvis du har lavet det ordentligt! Det er nemlig teoretisk umuligt!
Hvis din "box" ikke 100% helt firkantet eller der ligger noget usynligt udenfor selve kanten i undersiden og højre side, så kan det dog godt se sådan ud... Sørg for at boxen er en 100% hel firkant. Hvis den ikke skal være dette, og der fx skal være skygge på som på den side du linkede til så skal du lave hitTest koden om til fx:

if(box.hitArea.hitTest(_root._xmouse, _root._ymouse, false){ }


ellers så start med at prøve at bruge denne if-kode i stedet for den der er nu:

if(box.hitTest(_root._xmouse, _root._ymouse, true)){  //Det sidste 'false' er ændret til 'true'
Avatar billede pyroman Nybegynder
06. juni 2004 - 13:31 #6
Og så kunne nogle point da være ganske rare :)
Avatar billede hobz Nybegynder
07. juni 2004 - 18:29 #7
Jeg synes ikke jeg kan få den til det du foreslår.
Det ser ud som om at "control-pointet" er øverst i venstre hjørne. Kan man evt. sætte den i midten?
Avatar billede hobz Nybegynder
07. juni 2004 - 19:31 #8
And the magic word is: Registration = center.

Mange for din assistance. Fuld karma.
Avatar billede pyroman Nybegynder
07. juni 2004 - 19:41 #9
Tjaa - normalt vil man bare centrere grafikken i midten, evt. med hjælp af align vinduet...

...Så lidt ;)
Avatar billede pyroman Nybegynder
07. juni 2004 - 20:01 #10
Heyy.. og tak for karma! :))
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