ทำไว้วันก่อน คันมือเลยนั่งคิดเล่นๆ(เค้าดองเราไม่ให้งานเราทำ)
อันนี้ลากแล้วจะหน่วงๆ พริ้วตามแบบนุ่มนวลนะ
http://img2.f0nt.com/flash/20a94ea91b7b24c9129ff342d573c290.swf#include "mc_tween2.as"
// ถ้าไม่รู้จัก mc tween หาดูใน googlethis.scrollbar.scroller.oldx = this.scrollbar.scroller._x;
this.scrollbar.scroller.oldy = this.scrollbar.scroller._y;
// ตั้งค่า X,Y แรกเริ่มของตัว bar ที่ใช้ลากๆthis.scrollbar.scroller.onPress = function() {
this.startDrag(false, this.oldx, this.oldy, this.oldx, this.oldy+350-(this._height));
};
//เมื่อกดเม้าส์บนบาร์ให้ --- เริ่มลาก, snap center เป็น false, ค่าซ้ายสุดที่ไปได้ให้เท่ากับตำแหน่ง x ของมันตอนนี้, ค่าบนสุดที่ไปได้ให้เท่ากับตำแหน่ง y ตอนนี้, ตำแหน่งขวาสุดที่ไปได้ให้เท่ากับตำแหน่ง x ตอนนี้ (สรุปว่า ซ้ายสุดก็คือตรงนี้ ขวาสุดก็คือตรงนี้ ดังนั้นเท่ากับล๊อคมันไม่ให้ขยับซ้ายขวาได้), ตำแหน่งล่างสุดที่มันจะไปได้คือค่า y ตอนนี้บวกไปอีก 350 แล้วลบออกด้วยความสูงของตัวบาร์เอง เพื่อให้มันสุดขอบล่างพอดีไม่ล้ำลงไปthis.scrollbar.scroller.onRelease = this.scrollbar.scroller.onReleaseOutside=function () {
this.stopDrag();
};
// เมื่อปล่อยเม้าส์ให้ --- หยุดลากfunction scrolling() {
container.contents.tween("_y", -(((container.contents._height-container.msk._height)/(scrollbar._height-scrollbar.scroller._height))*scrollbar.scroller._y), 1);
}
// ฟังก์ชั่นปรับตำแหน่งให้ content เลื่อนไปให้สัมพันธ์กับ scrollbar (เรื่อง .tween จะไม่ขออธิบาย หาเอาในเรื่องของ mc tween นะจ๊ะ) โดยให้สัดส่วนของระยะทางที่ content จะเคลื่อนไปได้ เท่ากับสัดส่วนของระยะที่ scrollbar จะเคลื่อนไปได้ พอได้แล้วก็ให้ ตำแหน่ง y ของ content เป็นปฎิภาคกับตำแหน่ง y ของ scrollbar (เพราะมันจะเคลื่อนที่สวนกัน นึกออกไหมจ๊ะ ลากbarลง content จะวิ่งสวนขึ้น) โดยเอาค่าทั้งหมดติดลบไว้ข้างหน้าซะsetInterval(scrolling,10);
// set interval เพื่อให้ฟังก์ชั่นตรวจตำแหน่งที่อุตส่าห์คิดมาทำงานเป็นช่วงๆ คือลาก scrollbar จะรอจิ๊กนึง content ถึงจะเลื่อนไป แต่จิ๊กนึงที่ว่านี้กินเวลาแค่ 10มิลลิวินาที และ mc tween จะช่วยเลื่อน content ของเราไปอย่างนุ่มนวลvar mouseListener:Object = new Object();
mouseListener.onMouseWheel = function(delta) {
scrollbar.scroller._y -= delta*2;
if(scrollbar.scroller._y<=0){
scrollbar.scroller._y = 0;
}
if(scrollbar.scroller._y>= 318){
scrollbar.scroller._y = 318;
}
}
Mouse.addListener(mouseListener);
//ไอ้ยวงสุดท้ายนี่โชว์หรูให้หมุน wheel แล้ว scroll ได้ด้วย ลองแกะดูจ้ะ