1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
|
package
{
import flash.display.*;
import flash.events.*;
[SWF( frameRate="60",width = '1000', height = '400', backgroundColor = '0xFFFFFF')]
public class Main extends Sprite
{
private var im1:Sprite = new Sprite();
private var im2:Sprite = new Sprite();
private var im3:Sprite = new Sprite();
private var clone1:Sprite = new Sprite();
private var clone2:Sprite = new Sprite();
private var clone3:Sprite = new Sprite();
private var pos:Array = new Array(6);
private var permute:Boolean = false;
private var instance:String;
private var w:Number=0;
private var h:Number=0;
private var dx:Number =0;
private var dw:Number =0;
private var dh:Number =0;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
opaqueBackground = 0xFFFFFF;
w = stage.stageWidth;
h = stage.stage.stageHeight;
dw = w / 3;//dim des vignettes
dh = h / 2;//
im1.graphics.beginFill(0xFFFF00);
im1.graphics.drawRect(0, 0,dw, dh);
im1.graphics.endFill();
im1.graphics.beginFill(0x00FF00);
im1.graphics.drawCircle(w / 6, h / 4, h / 5);
im1.y = h / 4;
clone1.graphics.copyFrom(im1.graphics);
clone1.x = -w;
clone1.y = h / 4;
im2.graphics.beginFill(0xFF00FF);
im2.graphics.drawRect(0, 0,dw, dh);
im2.graphics.endFill();
im2.graphics.beginFill(0x0000FF);
im2.graphics.drawCircle(w / 6, h / 4, h / 5);
im2.x = w / 3;
im2.y = h / 4;
clone2.graphics.copyFrom(im2.graphics);
clone2.x = -2 * w / 3;
clone2.y = h / 4;
im3.graphics.beginFill(0x00FFFF);
im3.graphics.drawRect(0, 0,dw,dh);
im3.graphics.endFill();
im3.graphics.beginFill(0xff0000);
im3.graphics.drawCircle(w / 6, h / 4, h / 5);
im3.x = 2 * w / 3;
im3.y = h / 4;
clone3.graphics.copyFrom(im3.graphics);
clone3.x = -w / 3;
clone3.y = h / 4;
for (var i:uint = 0; i < pos.length ; i++) pos[i] = -w + w * i / 3;
addChild(clone1);
addChild(clone2);
addChild(clone3);
addChild(im1);
addChild(im2);
addChild(im3);
stage.addEventListener(Event.ENTER_FRAME, onMove);
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
}
private function onMouseDown(e:MouseEvent):void
{
var indice:int = getChildIndex(e.target as DisplayObject);
permute = !permute;
if (permute)
{
stage.removeEventListener(Event.ENTER_FRAME, onMove);//on stoppe l'animation
instance = e.target.name;
e.target.scaleX = 1.5;//150%
e.target.scaleY = 1.5;//
e.target.x -=( dw * e.target.scaleX-dw)/2;//repositionnement après zoom
e.target.y -=( dh * e.target.scaleY-dh)/2;//
addChildAt(e.target as DisplayObject, indice + 1);//passage au plan supérieur
}
else if (instance == e.target.name)
{
e.target.scaleX = 1;
e.target.scaleY = 1;
addChildAt(e.target as DisplayObject, indice - 1);
stage.addEventListener(Event.ENTER_FRAME, onMove);
e.target.y = h / 4;
instance = "";
}
else permute = true;
}
private function onMove(e:Event):void
{
if ( im1.x >w) dx =0 else dx += 0.6;
clone1.x =pos[0]+dx;
clone2.x =pos[1]+dx;
clone3.x = pos[2] + dx;
im1.x = pos[3]+dx;
im2.x = pos[4] + dx;
im3.x =pos[5]+dx;
}
}
} |
Partager