หน้า: [1] 2 3 4
 
ผู้เขียน หัวข้อ: เขียน scroll bar ยังไง ?  (อ่าน 36605 ครั้ง)
0 สมาชิก และ 1 ขาจร กำลังดูหัวข้อนี้
กำลังลองทำเว็บอยู่  ฮี่ๆ
... ง่ะ แต่ก็เกิดข้อสงสัยขึ้นมาว่าจะเขียน scroll bar ใน flash ยังไง

แบบนี้อะจ๊ะ





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

พนักงานบริษัท.
http://www.mediasparkles.com/resume/scrollbar.html

แบบง่ายๆ ครับ  ยิ้มน่ารัก
บันทึกการเข้า
 ยิ้มน่ารัก  +  ขอบใจจ๊ะ เดี๋ยวจะไปลองดู  กรี๊ดดดดด
บันทึกการเข้า

พนักงานบริษัท.
ขอแบบเด้งๆน่ะ
เต่ามีสต๊อกไว้ไหม
บันทึกการเข้า

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

ในหมู่คนตาบอด คนตาบอดข้างเดียวได้เป็นราชา
ทำไว้วันก่อน คันมือเลยนั่งคิดเล่นๆ(เค้าดองเราไม่ให้งานเราทำ)
อันนี้ลากแล้วจะหน่วงๆ พริ้วตามแบบนุ่มนวลนะ ปลื้ม
<a href="http://img2.f0nt.com/flash/20a94ea91b7b24c9129ff342d573c290.swf" target="_blank">http://img2.f0nt.com/flash/20a94ea91b7b24c9129ff342d573c290.swf</a>
#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 ได้ด้วย ลองแกะดูจ้ะ
« แก้ไขครั้งสุดท้าย: 01 ส.ค. 2007, 01:28 น. โดย thaPIXIE » บันทึกการเข้า
อู้ย มึน ไม่ล่ะ

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

ทำมาหากินด้วยการเปิดร้านสกรีนเสื้อยืด จ้ะ
กรี๊ด  กรี๊ดดดดด
บันทึกการเข้า
 เจ๋ง เจ๋ง
บันทึกการเข้า
อันนี้ ไม่ตรงตามต้องการ เพราะมีแค่ ลูกศร ขึ้นลง ไม่มีลากๆ ไม่มี lmc_tween
ใช้ง่าย ทำไว้นานแล้ว

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

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

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

ตัวอย่าง
<a href="http://img2.f0nt.com/flash/575974dac6c1c49f91a10da958740661.swf" target="_blank">http://img2.f0nt.com/flash/575974dac6c1c49f91a10da958740661.swf</a>
บันทึกการเข้า

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

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

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

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


นั่นแน่ เจอสหาย lmc ละ ลองเปลี่ยนมาใช้ mc tween สิจ๊ะพ่อ หรูกว่าคั่กๆ มัน tween พวก effect ของ flash ได้ด้วยนะ blur bevel emboss แหล่มเลยน๊า... เจ๋ง
บันทึกการเข้า
อธิบายคร่าวๆ หน่อยสิครับว่าไอ้เจ้า mc tween นี่คืออะไร (เหงื่อแตกพลั่ก)
ผมตกเขาครับ


http://hosted.zeh.com.br/mctween/animationtypes.html
อ๊ะ เจอแล้ว แต่มันคืออะไรอะไรยังไงอะไรยังไงยังงอะไรยังไงเหรอครับ (เหงื่อแตกพลั่ก)
« แก้ไขครั้งสุดท้าย: 01 ส.ค. 2007, 03:02 น. โดย uuuuuɐı » บันทึกการเข้า

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



ประโยชน์

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

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

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

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


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

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

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


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



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

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



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

โอ้ว คุณพระช่วยด้วย อ๊ากกกกก

ขอบคุณสำหรับความมัหศจรรย์ครับ +
บันทึกการเข้า

ทำมาหากินด้วยการเปิดร้านสกรีนเสื้อยืด จ้ะ
หน้า: [1] 2 3 4
 
 
Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2007, Simple Machines | Thai language by ThaiSMF Valid XHTML 1.0! Valid CSS!