22. juli 2004 - 21:01Der er
33 kommentarer og 1 løsning
Bounce scale
Nogen der ligger inde med et meget simpelt (el. hurtigt kan lave det) af en funktion hvorved man kan trykke på et movieclip, og så resizer det sig til ex. 200% med en elastisk bevægelse (bounce) .. friktion.. kender ikke lige det korrekte ord for det :)
skal selvfølgelig kunne resize sig tilbage til oprindelige størelse..
Sidder og leger med en menu jeg har lavet, og det her er lige hvad jeg mangler :)
For i Flash MX 2004 og Flash Player 7, der ligger det hele direkte indbygget! ;)
Du kan bruge Robert Penner's easing equations, som Macromedia fandt så interessante, at de ligger i mx.transitions.Tweens klassen og kan animere på mange forskellige måder.
Hm, variablen "step" genererer mig! Den er jo ikke definereret noget sted - ligger på framen. Den skal vel tilhørende det pågældende movieclip og dermed have this. foran. Og den initialiseres ikke til 0 - og ligger på movieclippet lige til at forurene :(
Jeg ville rydde lidt op i den og initialisere nogle variabler:
Hvordan skulle den ellers kunne bounce, hvis ikke den kørte hele tiden - den skal jo bevæge sig over flere frames. Men man kunne selvfølgelig godt droppe enterframen, når den var færdig.
Her udvidet til, at du kan have flere knapper til hver sit movieclip:
MovieClip.prototype.elasticScale = function(target, accel, convert) { if (this.$_step == undefined) this.$_step = 0; this.$_step = this.$_step * accel + (target - this._xscale) * convert; this._xscale = this._yscale += this.$_step } // eksempel function setBounce(clip, b) { clip.current_bounce = b; clip.onEnterFrame = bounce; } function bounce() { this.elasticScale(this.current_bounce, .5, .6); if (Math.min(Math.abs(this.current_bounce - this._xscale),Math.abs(this.$_step)) < 0.1) { delete this.onEnterFrame; } } function bounceButton() { // funktion til knapper setBounce(this.clip, this.bounce = !this.bounce ? 200 : 100); } function setNewBounceButton(btn, clip) { btn.onRelease = bounceButton; btn.clip = clip; btn.bounce = false; } setNewBounceButton(btn_clip1, clip1); // btn_clip1 får clip1 til at bounce setNewBounceButton(btn_clip2, clip2); // btn_clip2 får clip2 til at bounce
Ja, men det er der ingen grund til! Gør som ovennævnt og så bør det virke fint! Det ville være noget rod at smide det på global - især når det er ganske unødvendigt!
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.