Yêu cầu cần để có thể chạy được: Bộ Tween Class AS3 của bọn greenShock
Bước 1: “Proxy.as” class
package proxy
{
public class Proxy
{
// Create a wrapper for a callback function.
// Tacks the additional args on to any args normally passed to the
// callback.
public static function create(handler:Function,…args):Function
{
return function(…innerArgs):void
{
handler.apply(this,innerArgs.concat(args));
};
}
}
}
Bước 2: “ScrollObject.as” class nằm trong thư mục “”scrollObject“
package scrollObject {
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.events.MouseEvent;
import gs.TweenMax;
import proxy.Proxy;
import flash.geom.Rectangle;
/**
* @author vnfx
*/
public class ScrollObject {
private var SPRITE : Sprite;
private var BOUND : Rectangle;
private var CONTAINER : MovieClip;
private var SEEK : MovieClip;
private var SEEK_BAR : MovieClip;
private var SEEK_BTN : MovieClip;
private var MASK : MovieClip;
public function ScrollObject(sprite : Sprite,container : MovieClip,seek : MovieClip,mask : MovieClip) {
SPRITE = sprite;
CONTAINER = container;
SEEK = seek;
SEEK_BAR = SEEK.seek_bar;
SEEK_BTN = SEEK.seek_btn;
SEEK_BTN.y = SEEK_BAR.y;
MASK = mask;
CONTAINER.mask = MASK;
BOUND = new Rectangle(SEEK_BTN.x, SEEK_BTN.y, SEEK_BTN.x, SEEK_BAR.height – SEEK_BTN.height);
//———– hide seek
if(CONTAINER.height < MASK.height) {
SEEK.visible = false;
}else {
SEEK.visible = true;
}
//———–
SEEK_BTN.addEventListener(MouseEvent.MOUSE_DOWN, Proxy.create(beginDrag));
SPRITE.stage.addEventListener(MouseEvent.MOUSE_UP, Proxy.create(endDrag));
}
private function beginDrag(evt : MouseEvent) : void {
SEEK_BTN.gotoAndStop(“on”);
SEEK_BTN.startDrag(false, BOUND);
SPRITE.stage.addEventListener(MouseEvent.MOUSE_MOVE, Proxy.create(scrollContent));
}
private function endDrag(evt : MouseEvent) : void {
SEEK_BTN.gotoAndStop(“off”);
SEEK_BTN.stopDrag();
SPRITE.stage.removeEventListener(MouseEvent.MOUSE_MOVE, Proxy.create(scrollContent));
SEEK_BTN.removeEventListener(MouseEvent.MOUSE_DOWN, beginDrag);
}
private function scrollContent(evt : MouseEvent) : void {
var percent : Number = SEEK_BTN.y / (SEEK.height – SEEK_BTN.height);
var distance : Number = -percent * (CONTAINER.height – MASK.height);
TweenMax.to(CONTAINER, 0.5, {y:distance});
}
}
}
Bước 3: Tạo document flash
_ container : name:”container_mc“
_ seekBar name:”seek_mc” chứa * scroll button name :”seek_btn” và * scroll bar name :”seek_bar“
_ mask : name: “mask_mc“
Chọn frame 1 mở bảng actionScript code:
import scrollObject.ScrollObject;
new ScrollObject(this,container_mc,seek_mc,mask_mc);
Bước 3: Ctrl+Enter để test








