Voici ce que vous obtiendrez à la fin de ce tutoriel:
Voici le script utilisé dans notre la classe Zoomer:
- Code:
package fr
{
import flash.display.Sprite;
import flash.display.Loader;
import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.geom.Rectangle;
import flash.geom.Point;
import flash.filters.BlurFilter;
import flash.ui.Mouse;
public class Zoomer extends Sprite
{
private const type :String = ".jpg";
private const chemin :String = "image/art-k";
private var maskk :Sprite;
private var contMiniImg :Sprite;
private var contImg :Sprite;
private var loaderImg :Loader;
private var blur :BlurFilter;
private var loupe :Loupe;
public function Zoomer ():void
{
stage.scaleMode = StageScaleMode.NO_SCALE;
contMiniImg = new Sprite();
contImg = new Sprite();
loaderImg = new Loader();
loupe = new Loupe();
this.addChild( contMiniImg );
this.addChild( contImg );
loaderImg.load ( new URLRequest ( chemin + type) );
loaderImg.contentLoaderInfo.addEventListener( Event.COMPLETE, chargComplet );
}
private function chargComplet ( e:Event ):void
{
var petiteImg:Bitmap = loaderImg.content as Bitmap;
var miniBmpData:BitmapData = petiteImg.bitmapData;
petiteImg.cacheAsBitmap = true;
contMiniImg.addChild ( petiteImg );
var bmpData:BitmapData = new BitmapData ( miniBmpData.width , miniBmpData.height );
bmpData.copyPixels(miniBmpData, new Rectangle( 0, 0,miniBmpData.width,miniBmpData.height),new Point(0,0));
var grandImg:Bitmap = new Bitmap( bmpData );
grandImg.cacheAsBitmap = true;
loupe.cacheAsBitmap = true;
contImg.addChild( grandImg );
contMiniImg.scaleX = .555;
contMiniImg.scaleY = .670;
maskk = new Sprite();
maskk.graphics.lineStyle();
maskk.graphics.beginFill(0xffffff);
maskk.graphics.drawCircle(0, 0, 40);
maskk.graphics.endFill();
this.addChild( maskk );
this.maskk.filters[new BlurFilter(20,20,3)];
trace (maskk.cacheAsBitmap);
this.addChild( loupe );
grandImg.mask = maskk;
Mouse.hide();
this.addEventListener(MouseEvent.MOUSE_MOVE, activer );
}
private function activer (me:MouseEvent):void
{
if(mouseY > 5 || mouseY < stage.stageHeight -5 || mouseX > 5 || mouseX < stage.stageWidth -5)this.addEventListener(Event.ENTER_FRAME, inertie );
else this.removeEventListener(Event.ENTER_FRAME, inertie );
}
private function inertie (e:Event):void
{
maskk.x -= (maskk.x - mouseX) *.13;
maskk.y -= (maskk.y - mouseY) *.13;
loupe.x = maskk.x;
loupe.y = maskk.y;
contImg.x = - maskk.x *.8;
contImg.y = - maskk.y *.55;
if(loupe.y > 290) maskk.y = 290;
}
}
}
Les fichiers sources:
(un peu de courage, faites le tutoriel avant de sauter sur les sources:) )
Le fichier fla pour flash cs3:
Dernière édition par artkabis le Jeu 22 Avr - 11:01, édité 4 fois