Zoom sur la scène Imprimer

Vous aimeriez pouvoir appuyer sur la lettre Z de votre clavier et obtenir un zoom en lieu et place de votre curseur ? C'est ce que vous permet le script ci-dessous...

 

var cadreMasque:Sprite = new Sprite();

var bordureMasque:Sprite = new Sprite();

 

var largeurScene:int=stage.stageWidth;

var hauteurScene:int=stage.stageHeight;




cadreMasque.graphics.beginFill(0,1);

cadreMasque.graphics.drawRect(0,0,100,50);

cadreMasque.graphics.endFill();



bordureMasque.graphics.lineStyle(1,0,0.5);

bordureMasque.graphics.drawRect(0,0,100,50);



var copieFond:BitmapData=new BitmapData(this.stage.stageWidth,this.stage.stageHeight,false);

copieFond.draw(stage);

var fond:Bitmap=new Bitmap(copieFond,"auto",true);


stage.addEventListener(KeyboardEvent.KEY_DOWN,afficherZoom);


function afficherZoom(evt:KeyboardEvent) {

stage.removeEventListener(KeyboardEvent.KEY_UP,supprimerZoom);

stage.addEventListener(KeyboardEvent.KEY_UP,supprimerZoom);

stage.addEventListener(MouseEvent.MOUSE_MOVE,replacerCarte);

if (evt.keyCode==90) {

addChild(cadreMasque);

addChild(fond);

addChild(bordureMasque);

fond.mask=cadreMasque;

cadreMasque.x=mouseX-50;

cadreMasque.y=mouseY-25;

bordureMasque.x=mouseX-50;

bordureMasque.y=mouseY-25;

fond.scaleX=2;

fond.scaleY=2;

fond.x=-largeurScene*(mouseX/largeurScene);

fond.y=-hauteurScene*(mouseY/hauteurScene);

}
}


function supprimerZoom(evt:KeyboardEvent) {

removeChild(fond);

removeChild(cadreMasque);

removeChild(bordureMasque);

stage.removeEventListener(KeyboardEvent.KEY_UP,supprimerZoom);

stage.removeEventListener(MouseEvent.MOUSE_MOVE,replacerCarte);

}



function replacerCarte(evt:MouseEvent) {

cadreMasque.x=mouseX-50;

cadreMasque.y=mouseY-25;

bordureMasque.x=mouseX-50;

bordureMasque.y=mouseY-25;

fond.x=-largeurScene*(mouseX/largeurScene);

fond.y=-hauteurScene*(mouseY/hauteurScene);

}