หน้า: [1] 2
 
ผู้เขียน หัวข้อ: เกี่ยวกับ seekbar ช่วยหน่อยนะครับ  (อ่าน 7246 ครั้ง)
0 สมาชิก และ 1 ขาจร กำลังดูหัวข้อนี้
คือ ผมจะทำ music player สักตัว เล่นเฉพาะไฟล์ audio(mp3,wma) ตอนนี้เพิ่งเริ่มต้น

ทำได้แค่ ปุ่ม play / pause เองครับ

แต่ไม่ว่า จะไปหาข้อมูลที่ไหน ๆ ก็ไม่มีที่เกี่ยวกับ seekbar เลย

ผมยังจับต้น ชนปลายไม่ถูกเลย ไม่รู้จะเริ่มต้นที่ตรงไหนอ่ะครับ

ใครทำเป็น ช่วยแนะนำด้วยนะครับ ขอบคุณล่วงหน้าครับ
บันทึกการเข้า

กำลังทำ music player อยูครับ
last update :
•play/puase fuction
•progress bar (seekbar cannot seek)
•valume bar
จะรับตัวนี้ไปพิจารณาไหมครับ ฮิ้ววว
แนบมาแล้วนะครับ ลองโหลดไปแกะดู เจ๋ง

(แก้เพลงที่จะเล่นที่ไฟล์ text นะครับ)
บันทึกการเข้า

เกย์ออก แหมๆ จานก่อ
บันทึกการเข้า

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

ถ้าจะให้แนะนำว่าเริ่มตรงไหน ตรงนี้ครับ
- onPress
- คำนวณเปอร์เซ็นต์จากตำแหน่งที่เมาส์กำลังคลิกอยู่ที่ seekbar
- เอาไปเทียบกับความยาวเพลง

เช่น สมมติว่าคลิกที่ตรงกลางของ seekbar ก็จะคำนวณได้ 50 เปอร์เซ็นต์..
ก็เอา 50 เปอร์เซ็นต์ * ความยาวเพลง = ตำแหน่งตรงกลางเพลง

โค้ด:
seekBar.onPress = function(){
  var positionPercentage = this._xmouse/this._width;
  sound.stop();
  sound.start( sound.duration * positionPercentage / 1000 ); //หาร 1000 เพื่อแปลง milliseconds เป็น seconds ครับ
}

คร่าวๆ ก็ประมาณนี้ครับ


เกย์ออก แหมๆ จานก่อ
ไอ้มืดหมี อะไรพี่.. ไฟล์เก่าแก่อะครับ เขียนไว้ 2-3 ปีแล่ว
« แก้ไขครั้งสุดท้าย: 17 พ.ค. 2009, 19:16 น. โดย ☼ ก่อสตูดีอวย ☼ » บันทึกการเข้า

ขอโหลดไปศึกษาดูก่อนนะครับ  อ๊าง~ (แจ๋ว แจ๋ว)
บันทึกการเข้า

กำ - -" แฟลชไม่ขึ้นซะงั้น

/* ลืมบอกไป ผมโพล่มาเล่นแฟลช ก็ as3 เลยครับ

as2 งง มากมาย -.-
« แก้ไขครั้งสุดท้าย: 18 พ.ค. 2009, 13:13 น. โดย phaishow » บันทึกการเข้า

กำลังทำ music player อยูครับ
last update :
•play/puase fuction
•progress bar (seekbar cannot seek)
•valume bar
อ๋อ งั้นยิ่งง่ายครับ เพราะช่วงนี้ผมก็จับแต่ 3 ไม่ได้เล่น 2 เลย กร๊าก
งั้นเอาตัวอย่าง 3 ไปดูนะครับ

http://files.korstudioxd.com/musicplayer_v2.52.rar

เสร็จแล้วให้ดูในโฟลเดอร์ lib\FLAMP.as
แล้วหาฟังก์ชั่นชื่อ SelectTime ครับ หน้าตาแบบนี้

โค้ด:
public function SelectTime(time:Number):void {
if (PlayStatus > 0) {
target.sc.stop();
trace(target.s.length);
target.sc = target.s.play(time);
target.sc.soundTransform = s_transform;
target.sc.addEventListener(Event.SOUND_COMPLETE, target.onSoundCompleted);
if (PlayStatus == 2) {
Pause(target.sc);
}
}
}

แล้วก็มันจะมีการ addEventListener ให้กับตัว Seek bar ที่ไฟล์ lib\ButtonListeners.as ครับ
(ตอนนั้นผม OOP ห่วยแตกมาก)
หาดูฟังก์ชั่นนี้ครับ SK_doProgress

โค้ด:
function SK_doProgress(e:MouseEvent) {
if (e.buttonDown) {
var position:Number = e.target.mouseX*_root.root.s.length/e.target.width;
_root.SelectTime(position); //_root เป็นตัวแปรที่ผมตั้งขึ้น เก็บที่อยู่ของ stage ไว้
}
}

ฟังก์ชั่นนี้จะเป็น listener ให้กับ seek bar ครับ เมื่อมีการกดลงไปที่ seek bar (รวมถึงกดค้างแล้วถูไป-มา)
มันก็จะตำแหน่งปัจจุบัน (position) ว่าเพลงควรเริ่มเล่นที่ตำแหน่งไหน
ก็คือ หาค่าเปอร์เซ็นต์ครับ สังเกตว่าจะมี  e.target.mouseX/e.target.width ตัวนี้จะได้เป็นค่าทศนิยมระหว่าง 0 ถึง 1
มันคือค่าอัตราส่วนครับ
จากนั้นก็เอาไปคูณกับความยาวเพลง _root.root.s.length (ตัวแปร s อยู่ที่ root ของ stage) ก็จะได้
ตำแหน่งของเพลงที่ต้องเล่นในเวลาที่คลิกครับ

แล้วมันก็จะส่งค่าที่คำนวณได้ ไปที่ฟังก์ชั่น SelectTime เพื่อสั่งให้เสียงเล่นอีกที
บันทึกการเข้า

ตามมาศึกษาด้วยคนครับ  หยี
บันทึกการเข้า

....(= - =")..   .3dsMax  .  ..(๐ Q")<<<<<..
(รวมถึงกดค้างแล้วถูไป-มา)  หื่น คำอธิบายแบบนี้ ได้อารมณ์มากจานก่อ  กร๊าก
บันทึกการเข้า

-.-

ขอบคุณมาก ๆ ครับ  หื่น

ว่าแต่..

โฟลเดอร์ lib มันหนีไปไหนแล้วอ่าครับ  ง่ะ

ผมหาไม่เจอ  งง
บันทึกการเข้า

กำลังทำ music player อยูครับ
last update :
•play/puase fuction
•progress bar (seekbar cannot seek)
•valume bar
นั่นสิ ผมก็หาไม่เจอ  หมีโหด~
บันทึกการเข้า

 อู้ย.. อ้าว ไม่อยู่ในนั้นเหรอครับ
เอ่อ ผมอัพใหม่ละครับ กดที่ลิงค์เดิมได้เลยครับ

 ฮือๆ~ ขอโทษครับ แง
บันทึกการเข้า

คือ ผมลอง debug ดูแล้ว มัน error ครับ

1087: Syntax error: extra characters found after end of program.

on (release) {


ปล. หรือผมต้องแก้ไขอะไรเพิ่มเติมก่อน..
ปล2. ผม debug ไฟล์ musicplayer_v2.52.fla เลยครับ
บันทึกการเข้า

กำลังทำ music player อยูครับ
last update :
•play/puase fuction
•progress bar (seekbar cannot seek)
•valume bar
 อู้ย.. เอ๊ะ มาได้ไงอะ อันนั้นมัน ActionScript 2 อะครับ ผมเปิดดูก็คอมไพล์ได้นะครับ ไม่เจอเลย
 ฮือๆ~ อะไรกันนี่
บันทึกการเข้า

แบบนี้อ่ะท่าน  มึนตึ้บ

บันทึกการเข้า

กำลังทำ music player อยูครับ
last update :
•play/puase fuction
•progress bar (seekbar cannot seek)
•valume bar
หน้า: [1] 2
 
 
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!