เขียน scroll bar ยังไง ?

เริ่มโพสต์โดย pahn*, 28 ก.ค. 2007, 13:21 น.

0 สมาชิก และ 1 บุคคลทั่วไป กำลังเปิดอ่านโพสต์นี้

pahn*

กำลังลองทำเว็บอยู่  :02:
... :08: แต่ก็เกิดข้อสงสัยขึ้นมาว่าจะเขียน scroll bar ใน flash ยังไง

แบบนี้อะจ๊ะ





หรือถ้าใครมีเว็บสอน ลงลิ้งไว้หน่อยนะ ^ ^'
ขอบคุณค่ะ
พนักงานบริษัท.

เต่ามาก


pahn*

 :22:  +  ขอบใจจ๊ะ เดี๋ยวจะไปลองดู  :25:
พนักงานบริษัท.

คนตาบอดข้างเดียว

ขอแบบเด้งๆน่ะ
เต่ามีสต๊อกไว้ไหม
ในหมู่คนตาบอด คนตาบอดข้างเดียวได้เป็นราชา

เต่ามาก

เด้งๆ แบบไหนเหรอครับน่ะ  :08:
มีแต่แบบที่มันติด easing ดึ๋งๆ อ่ะ

คนตาบอดข้างเดียว

นั่นแหละๆ
ขอหยุ่นๆน่ะ อธิบายด้วยนะ
ในหมู่คนตาบอด คนตาบอดข้างเดียวได้เป็นราชา

thaPIXIE

#6
ทำไว้วันก่อน คันมือเลยนั่งคิดเล่นๆ(เค้าดองเราไม่ให้งานเราทำ)
อันนี้ลากแล้วจะหน่วงๆ พริ้วตามแบบนุ่มนวลนะ :40:
http://img2.f0nt.com/flash/20a94ea91b7b24c9129ff342d573c290.swf
#include "mc_tween2.as"
// ถ้าไม่รู้จัก mc tween หาดูใน google

this.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 ได้ด้วย ลองแกะดูจ้ะ

iannnnn

อู้ย มึน :48:

แต่ขอบคุณครับ เดี๋ยวคงได้ใช้ +

เต่ามาก



ej_sing

อันนี้ ไม่ตรงตามต้องการ เพราะมีแค่ ลูกศร ขึ้นลง ไม่มีลากๆ ไม่มี lmc_tween
ใช้ง่าย ทำไว้นานแล้ว

ปรับขนาด ความกว้างความสูงได้ โดยไม่ต้องไปยุ่งกับโค้ด แต่ต้องแก้ตัว mask ให้เท่ากัน
ปรัปสปีดได้ แก้โค้ดเอานิดเดียว

สามารถยกไปวางได้อย่างง่ายๆ
ลองใช้ดู ง่ายๆครับ แล้วจะเข้าใจ

บรรยายซะเจ๋ง จริงๆ ห่วยครับ  :05:  ทำกันเองได้ง่ายๆแหล่ะครับ  :08: เผื่อใครขี้เกียจทำ

ตัวอย่าง
http://img2.f0nt.com/flash/575974dac6c1c49f91a10da958740661.swf

thaPIXIE

อ้างคำพูดจาก: ej_sing เมื่อ 01 ส.ค. 2007, 01:18 น.
อันนี้ ไม่ตรงตามต้องการ เพราะมีแค่ ลูกศร ขึ้นลง ไม่มีลากๆ ไม่มี lmc_tween
ใช้ง่าย ทำไว้นานแล้ว

ปรับขนาด ความกว้างความสูงได้ โดยไม่ต้องไปยุ่งกับโค้ด แต่ต้องแก้ตัว mask ให้เท่ากัน
ปรัปสปีดได้ แก้โค้ดเอานิดเดียว

สามารถยกไปวางได้อย่างง่ายๆ
ลองใช้ดู ง่ายๆครับ แล้วจะเข้าใจ

บรรยายซะเจ๋ง จริงๆ ห่วยครับ  :05:  ทำกันเองได้ง่ายๆแหล่ะครับ  :08: เผื่อใครขี้เกียจทำ


นั่นแน่ เจอสหาย lmc ละ ลองเปลี่ยนมาใช้ mc tween สิจ๊ะพ่อ หรูกว่าคั่กๆ มัน tween พวก effect ของ flash ได้ด้วยนะ blur bevel emboss แหล่มเลยน๊า... :12:

iannnnn

#12
อธิบายคร่าวๆ หน่อยสิครับว่าไอ้เจ้า mc tween นี่คืออะไร :44:
ผมตกเขาครับ


http://hosted.zeh.com.br/mctween/animationtypes.html
อ๊ะ เจอแล้ว แต่มันคืออะไรอะไรยังไงอะไรยังไงยังงอะไรยังไงเหรอครับ :44:

heart

มันคล้ายๆกับเครื่องซักผ้าอัฉริยะ ที่เรากดปุ่มให้ทำงาน มันก็ซักผ้าจนเสร็จ โดยที่เราไม่ต้องไปนั่งขยี้ หรือ เติมผงซักฟอก หรือ เติมน้ำยาปรับผ้านุ่ม และมันยังอบแห้งให้พร้อม



ประโยชน์

สมมุติจะให้ลูกบอลมันเด้งไป ทางมุมห้อง

ถ้าเขียนสคริปเอง ยุ่งยากมากมาย

แต่พวก mc tween และ lmc tween นี้ จะช่วยให้เราไม่ต้องยุ่งยากเขียนโค้ดอีกต่อไป

เพียงสั่งว่า ลูกบล ไปมุมห้องเดี๋ยวนี้


ลองเปรียบเทียบโค้ดแบบคร่าวๆ

เช่นถ้าเราส่งให้ลูกบอลไปที่แกน x 500

บอล.onEnterFrame =function(){
         ถ้าแกน x ปัจจุบันมีค่าน้อยกว่า 500
                  ก็กระเถิบไปครั้งละ 5 พิกเซล
        ถ้าแกน x ปัจจุบันมีค่ามากกว่า 500
                 ก็กระเถิบกลับมา ครั้งละ 5 พิกเซล
       
  ถ้าถึง 500 แล้ว หยุดการทำงาน
}


แต่ ไอ้เครื่องซักผ้าของเรามันง่ายกว่านั้น



บอล.tween("_x",500,1);

แปลว่า สั่งให้ลูกบอลไปที่แกน x 500 ใช้เวลาเดินทาง 1 วินาที(เวลายิ่งมากแสดงว่าความเร็วจะน้อย มันจะวิ่งช้า)



ง่ายประมาณลงกะไดแล้วลื่นพรวดเดียวถึงพื้นเลย

iannnnn

โอ้ว คุณพระช่วยด้วย :07b:

ขอบคุณสำหรับความมัหศจรรย์ครับ +

SMF 2.1.7 © 2026, Simple Machines