ecco una versione finale abb soddisfacente
che ne dite dell'implementazione ottimizzata dei listener? (tnx to marco)
codice:
class ImageFocus {
// properties
// -----------------------------------------------------------------------------------
private static var image_mc:MovieClip;
private static var perc_focus_on:Number = 150;
private static var perc_focus_off:Number = 100;
private static var follow_active:Boolean = false;
// constructor
// -----------------------------------------------------------------------------------
public function ImageFocus(target:MovieClip, imm:String) {
image_mc = target.createEmptyMovieClip("image_mc_istanza", 1);
image_mc.createEmptyMovieClip("loader", 1);
image_mc["loader"].loadMovie(imm);
// // listener
Mouse.addListener(this)
}
// methods
// -----------------------------------------------------------------------------------
public function onMouseDown():Void {
if (!follow_active) {
follow_active = true;
focus_on();
image_mc.onEnterFrame = function() {
follow_mouse();
};
}
}
public function onMouseUp():Void {
follow_active = false;
focus_off();
delete (image_mc.onEnterFrame);
}
//
public static function focus_on():Void {
image_mc.scaleTo(perc_focus_on, 3);
}
public static function focus_off():Void {
image_mc.scaleTo(perc_focus_off, 1);
image_mc.tween("_x", 0, 1);
image_mc.tween("_y", 0, 1);
}
public static function follow_mouse():Void {
image_mc._x -= (image_mc._x+(_xmouse-image_mc._width/2))/7;
image_mc._y -= (image_mc._y+(_ymouse-image_mc._height/2))/7;
}
}
// -----------------------------------------------------------------------------------
// USAGE
// -----------------------------------------------------------------------------------
/*
#include "lmc_tween.as"
var creaFocus:ImageFocus;
creaFocus = new ImageFocus(movieContenitore, "immagine.png")
//
dove "movieContenitore" è un clip posizionato sullo stage e "immagine.png" risiede nella stessa cartella del fla
*/