Zedlefou In cabbage we trust ! | Oue l'aide c'est pas mal C'est dans la classe Mouse...
Bon alors sinon, comme hier j'avais rien a foutre au boulot et que je suis vachement curieux, je m'y suis essayé ... et antika a raison C'est SUPER prise de tete. C'est pas tres compliqué, mais c'est long et tu es tres vite limité dans les performances. En plus j'ai utilisé des lineTo donc l'effet est bien mais sans plus et pour l'elasticité j'ai laissé tomber. (oue, moi et les maths c'est pas jojo, mais je me soigne)
Je vais voir si j'ai le temps de m'y repencher aujourd'hui ... mais je crois que c'est mieux un effet de TimeLine en effet.
Code :
- var x = 100;
- var y = 100;
- var w = 200;
- var h = 100;
- var zs = 80;
- var speed = 3;
- _global.monMC = createRectangle ("hop", x, y, w, h);
- // --- WHEN THOSE 4 SHAPES ARE ROLLED OVER, THE CORRESPONDING ANGLE FOLLOW ---
- // --- YOU SEE THEM JUST FOR THE TEST
- var upL : MovieClip = zoneSurvol ("upL", x - zs, y - zs, zs, zs);
- var upR : MovieClip = zoneSurvol ("upR", x + w, y - zs, zs, zs);
- var doL : MovieClip = zoneSurvol ("doL", x - zs, y + h, zs, zs);
- var doR : MovieClip = zoneSurvol ("doR", x + w, y + h, zs, zs);
- // ---
- var myTab : Array = new Array (upL, upR, doL, doR)
- for (var o in myTab)
- {
- myTab [o].id = Number (o) + 1;
- myTab [o].onRollOver = monMcOver;
- myTab [o].onRollOut = monMcOut;
- }
- function monMcOver ()
- {
- this.onEnterFrame = function ()
- {
- _global.monMC.clear ();
- _global.monMC = createQuadril ("hop", x, y, w, h, this.id);
- }
- }
- function monMcOut ()
- {
- // --- REGISTER THE LAST POSITION OF THE MOUSE
- this.souris = (
- {
- x : _xmouse, y : _ymouse
- })
- // --- REGISTER THE MOUSE'S POSITION RELATIVE TO THE zoneSurvol
- this.souris2 = (
- {
- x : this._xmouse, y : this._ymouse
- })
- this.onEnterFrame = null;
- this.onEnterFrame = function ()
- {
- _global.monMC = rewind (this, _global.monMC);
- }
- }
- // -----------------------------------------------------------------------------------------
- function rewind (Ptarg : MovieClip, Psquare : MovieClip)
- {
- // --- WE DEFINE 4 PTS FOR THE SHAPE
- var p1 = new Object (
- {
- x : x, y : y
- })
- var p2 = new Object (
- {
- x : x + w, y : y
- });
- var p3 = new Object (
- {
- x : x + w, y : y + h
- });
- var p4 = new Object (
- {
- x : x, y : y + h
- });
- // --- DEPENDING OF THE zoneSurvol USED, ONE POINT MOVE ---
- switch (Ptarg.id)
- {
- case 1 :
- p1.x = (Ptarg.souris.x < x) ? Ptarg.souris.x += speed * ((zs - Ptarg.souris2.x) / zs) : x ;
- p1.y = (Ptarg.souris.y < y ) ? Ptarg.souris.y += speed * ((zs - Ptarg.souris2.y) / zs) : y;
- if (Ptarg.souris.y >= y && Ptarg.souris.x >= x )
- {
- Ptarg.onEnterFrame = null;
- }
- break;
- case 2 :
- p2.x = (Ptarg.souris.x > x + w) ? Ptarg.souris.x -= speed * (Ptarg.souris2.x / zs) : x + w ;
- p2.y = (Ptarg.souris.y < y ) ? Ptarg.souris.y += speed * ((zs - Ptarg.souris2.y) / zs) : y;
- if (Ptarg.souris.y >= y && Ptarg.souris.x <= x + w)
- {
- Ptarg.onEnterFrame = null;
- }
- break;
- // --- TODO case 3 & 4
- }
- Psquare.clear ();
- // --- RE DRAW THE SHAPE
- var mc2 : MovieClip = this.createEmptyMovieClip ("hop", this.getNextHighestDepth ());
- mc2.lineStyle (1, 0x000000, 100, true, "none", "round", "miter", 1);
- mc2.moveTo (p1.x, p1.y);
- mc2.lineTo (p2.x, p2.y);
- mc2.lineTo (p3.x, p3.y);
- mc2.lineTo (p4.x, p4.y);
- mc2.lineTo (p1.x, p1.y);
- return mc2;
- }
- function createQuadril (name : String, x : Number, y : Number, w : Number, h : Number, Pid)
- {
- // --- MOVE THE CLOSEST CLONER
- var mc2 : MovieClip = this.createEmptyMovieClip (name, this.getNextHighestDepth ());
- mc2.lineStyle (1, 0x000000, 100, true, "none", "round", "miter", 1);
- switch (Pid)
- {
- case 1 :
- // --- upper left
- mc2.moveTo (this._xmouse, this._ymouse);
- mc2.lineTo (w + x, y);
- mc2.lineTo (w + x, h + y);
- mc2.lineTo (x, h + y);
- mc2.lineTo (this._xmouse, this._ymouse);
- break;
- case 2 :
- // --- upper right
- mc2.moveTo (x, y);
- mc2.lineTo (this._xmouse - 1, this._ymouse - 1);
- mc2.lineTo (w + x, h + y);
- mc2.lineTo (x, h + y);
- mc2.lineTo (x, y);
- break;
- case 3 :
- // --- down left
- mc2.moveTo (x, y);
- mc2.lineTo (w + x, y);
- mc2.lineTo (w + x, h + y);
- mc2.lineTo (this._xmouse, this._ymouse);
- mc2.lineTo (x, y);
- break;
- case 4 :
- // --- down right
- mc2.moveTo (x, y);
- mc2.lineTo (w + x, y);
- mc2.lineTo (this._xmouse, this._ymouse);
- mc2.lineTo (x, h + y);
- mc2.lineTo (x, y);
- break;
- }
- return mc2;
- }
- function createRectangle (name : String, x : Number, y : Number, w : Number, h : Number)
- {
- var mc2 : MovieClip = this.createEmptyMovieClip (name, this.getNextHighestDepth ());
- mc2.lineStyle (1, 0x000000, 100, true, "none", "round", "miter", 1);
- mc2.lineTo (0, 0);
- mc2.lineTo (w, 0);
- mc2.lineTo (w, h);
- mc2.lineTo (0, h);
- mc2.lineTo (0, 0);
- mc2._x = x;
- mc2._y = y;
- return mc2;
- }
- function zoneSurvol (name : String, x : Number, y : Number, w : Number, h : Number)
- {
- var mc2 : MovieClip = this.createEmptyMovieClip (name, this.getNextHighestDepth ());
- mc2.beginFill (0xcccccc, 10);
- mc2.lineTo (0, 0);
- mc2.lineTo (w, 0);
- mc2.lineTo (w, h);
- mc2.lineTo (0, h);
- mc2._x = x;
- mc2._y = y;
- return mc2;
- }
|
---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
|