Codice PHP:
package {
import flash.display.DisplayObject;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.geom.Rectangle;
import flash.events.Event;
import flash.events.MouseEvent;
public class MouseBox extends Sprite {
private var __t:DisplayObject;
private var __w:int;
private var __h:int;
private var __b:Boolean;
private var __v:Number;
private var __c:Sprite;
private var __g:Sprite;
private var __s:Sprite;
private var __bv:Boolean;
public function MouseBox (t:DisplayObject=null, w:int=0, h:int=0, v:int=1) {
__t = t;
__w = w;
__h = h;
__v = v;
__bv = true;
__c = new Sprite();
__g = new Sprite();
__s = new Sprite();
if (__t != null) {
__init__();
}
}
private function __init__() {
addChild(__g);
addChild(__c);
__s.addChild(__setRect__('n', 1, 300, 0, 0, 0, {alpha:0}));
__s.width = __t.width;
__c.addChild(__t);
__c.addChild(__s);
__c.scrollRect = new Rectangle(0,0,__w,__h);
__s.addEventListener(MouseEvent.MOUSE_OVER, __over__);
__s.addEventListener(MouseEvent.MOUSE_OUT, __out__);
__s.addEventListener(MouseEvent.MOUSE_MOVE, __move__);
}
private function __over__(e:MouseEvent) {
__b = true;
}
private function __out__(e:MouseEvent) {
__b = false;
__c.removeEventListener(Event.ENTER_FRAME, __enterFrame__);
__c.removeEventListener(Event.ENTER_FRAME, __enterFrameX__);
}
private function __move__(e:MouseEvent) {
if (__b) {
if(__bv){
__c.addEventListener(Event.ENTER_FRAME, __enterFrame__);
}
__c.addEventListener(Event.ENTER_FRAME, __enterFrameX__);
} else {
if(__bv){
__c.removeEventListener(Event.ENTER_FRAME, __enterFrame__);
}
__c.removeEventListener(Event.ENTER_FRAME, __enterFrameX__);
}
}
private function __enterFrame__(e:Event) {
var temp:Number = Math.floor((__c.mouseY-__h/2)/__v);
switch (Math.abs(temp)/temp) {
case 1 :
if (__t.y > -__t.height+__h) {
__t.y -= temp;
} else {
__c.removeEventListener(Event.ENTER_FRAME, __enterFrame__);
}
break;
case -1 :
if (__t.y < 0 ) {
__t.y -= temp;
} else {
__c.removeEventListener(Event.ENTER_FRAME, __enterFrame__);
}
break;
}
}
private function __enterFrameX__(e:Event){
var tempX:Number = Math.floor((__c.mouseX-__w/2)/__v);
switch (Math.abs(tempX)/tempX) {
case 1 :
if (__t.x > -__t.width+__w) {
__t.x -= tempX;
} else {
__c.removeEventListener(Event.ENTER_FRAME, __enterFrameX__);
}
break;
case -1 :
if (__t.x < 0 ) {
__t.x -= tempX;
} else {
__c.removeEventListener(Event.ENTER_FRAME, __enterFrameX__);
}
break;
}
}
private function __setRect__ (n:String="", w:Number=100.0, h:Number=100.0, c:uint=0, b:Number=NaN, l:uint=0, o:Object=null):Shape {
var s:Shape = new Shape();
s.name = n;
var A = o != null && o['alphaFill'] != null ? o['alphaFill'] : 1.0;
if (o != null) for (var p in o) try { s[p] = o[p] } catch (err) {};
with (s) {
graphics.lineStyle (b, l, 1, false, "normal", "none", "miter", 255);
graphics.beginFill (c, A);
graphics.drawRect (0, 0, w, h);
graphics.endFill ();
}
return s;
}
public function applyInterface(d:DisplayObject) {
__g.addChild(d);
__c.x = (__g.width-__w)/2;
__c.y = (__g.height-__h)/2;
}
public function refresh () {
__s.width = __t.width;
__s.height = __t.height;
}
public function get container():Sprite {
return __c;
}
public function get content():* {
return __t;
}
public function get activeArea():Sprite {
return __s;
}
public function set verticalScroll (b:Boolean) {
__bv = b;
}
public function set scrollWidth (n:Number) {
__w = n;
__c.scrollRect = new Rectangle(0,0,__w,__h);
}
public function set scrollHeight (n:Number) {
__h = n;
__c.scrollRect = new Rectangle(0,0,__w,__h);
}
}
}