Regardez l'exemple ici.
movieClip.prototype.shake = function(force){ if(this._oldy==null){ this._oldx = this._x; this._oldy = this._y; } /* on calcule au hasard la déviation de l'objet */ var x = random(force)-force/2+1; var y = random(force)-force/2+1; /* ici on calcule la déviation par rapport à la position initiale, une fois que l'objet aura subit la déviation : */ var distx = this._x + x - this._oldx; var disty = this._y + y - this._oldy; var distance = Math.sqrt(distx*distx + disty*disty); /* Si ça ne le bouge pas trop de sa position initiale, c'est bon */ if(distance < 2*force){ this._x += x; this._y += y; } } |
.
.Commentaires: damien:il y a d'autres manières de le faire, plus simples, je mettrai peut-être on_line le nouveau script prochainement jayce: thanx obl: joli jacomo: doit on inscrire ce code sur le movie clip ? damien: En fait tu inscris le code n'importe où dans l'animation, par exemple sur la première image. Ensuite tu peux faire dans le clip: 'methode(arg)' ou dans le _root: 'clip.methode(arg)' kif22: samut !peux tu etre plus explicite sur le code :_root: 'clip.methode(arg)'je ne comprends pas comment il faut l'utiliser !en fait je n'arrive pas a faire secouer mon clip !merci damien: Salut, et bien ici ça va être: 'clip.onEnterFrame=function(){this.shake(10);}' à condition que le clip à secouer s'appelle 'clip' et avec une force de 10 pixels. dema: j'arrive pas a le faire marché, j'ai remplacé prototype par le nom de mon movie clip ms ca fait rien..., pourrait tu m'envoyé ton fichier .fla avec le code sur mon mail : ugf@free.fr merci No0ZBeeX: G 1 besoin urgent de comprendre comment marche le script shake ... pour ma part rien ne marche ... G changé le "prototype" par le nom de l occurence objet ... si y a 1 possibilité d avoir le .fla ( bogos_ludo@hotmail.com) ou encore des Xplications plus pour les débutants :p , çà serait cool :) .Merci bcp , ce site est vraiment terrible :D sosign: alors pour faire marcher:: il faut copier le code et l'insérer dans une image (frame), la premiere de l'anim. ou bien du MC et ensuite il faut appeler la fonction prototype shake() la ou l'on veut avec le code : onclipevent(enterframe) {shake("intensité")} voila aussi simple que cela, surtout ne remplacez pas le mot prototype de la fonction, enfin du code a gauche pour ceux qui ne comprennent pas, car le mot prototype définit par definition que c'est une nouvelle fonction qui n'existe pas dans le langage actionscript interprete par flash, c'est donc un PROTITYPE, voila j'espere en avoir eclairé certains!!!! ibakusha: eh, merci pour vos script je debute en flash et ca m'est tres utile;) chez moi ca marche et je decouvre l'actionscript siper: excellent!!!!!!!! damien: Merci beaucoup sosign, j'avais pas vu les comments sur ce script depuis longtemps; Alors en effet il ne faut pas chercher à adapter le code !!! scrogneugneu ! combien de fois faudra-t-il le dire, lol !!! copiez-collez tel quel dans la première frame de flash ! un point c'est tout ;-) drag: marche toujours pas chez moi boulet: ben t es un boulet FranK45: c pas trop mal mais tu te complike la vie pour rien, tu peut en faire un mieux en 6 lignes de code, tu n'a qu'à faire: this._x=oldx x FranK45: en fait c this._x = oldx PLUS x ché pas pkoi jai pas mi de Plus ou c'est ptete ton php ki ne le traite pas tk, c ca! mina: salut ! super ce site. bon, moi je me demandais pourquoi le onenterframe il est pas dans la fonction directement ?(juste pour comprendre pourquoi c'est mieux comme ça ^^)@ gh: bonjour j'arrive pas à vous envoer un email eNyto: Attention ceci fonctionne pour une version de FlashPlayer 6 avec de l'AS 1.0 ... peut etre que ca va régler des problème pour certains brahimo: merci slt: votre message d: votre message |