ฟอนต์ฟอรั่ม

F0NT Community (เก่า) => ห้องคอม => ห้องแฟลช => โพสต์ถูกเริ่มโดย: phaishow เมื่อ 17 พ.ค. 2009, 16:26 น.

ชื่อเรื่อง: เกี่ยวกับ seekbar ช่วยหน่อยนะครับ
โพสต์โดย: phaishow เมื่อ 17 พ.ค. 2009, 16:26 น.
คือ ผมจะทำ music player สักตัว เล่นเฉพาะไฟล์ audio(mp3,wma) ตอนนี้เพิ่งเริ่มต้น

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

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

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

ใครทำเป็น ช่วยแนะนำด้วยนะครับ ขอบคุณล่วงหน้าครับ
ชื่อเรื่อง: ตอบ: เกี่ยวกับ seekbar ช่วยหน่อยนะครับ
โพสต์โดย: กากก่อเกรียนนู้บ เมื่อ 17 พ.ค. 2009, 19:05 น.
จะรับตัวนี้ไปพิจารณาไหมครับ :42:
แนบมาแล้วนะครับ ลองโหลดไปแกะดู :12:

(แก้เพลงที่จะเล่นที่ไฟล์ text นะครับ)
ชื่อเรื่อง: ตอบ: เกี่ยวกับ seekbar ช่วยหน่อยนะครับ
โพสต์โดย: iannnnn เมื่อ 17 พ.ค. 2009, 19:13 น.
:27: แหมๆ จานก่อ
ชื่อเรื่อง: ตอบ: เกี่ยวกับ seekbar ช่วยหน่อยนะครับ
โพสต์โดย: กากก่อเกรียนนู้บ เมื่อ 17 พ.ค. 2009, 19:15 น.
ขอเบิ้ลหน่อยนะครับ จะได้อ่านง่ายๆ หน่อย
:31: พี่แอนตัดหน้าพอดี ค่อยยังชั่ว..

ถ้าจะให้แนะนำว่าเริ่มตรงไหน ตรงนี้ครับ
- 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 ครับ
}


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



อ้างคำพูดจาก: ☼ อภิมหาแอน ☼ เมื่อ 17 พ.ค. 2009, 19:13 น.
:27: แหมๆ จานก่อ
:31: อะไรพี่.. ไฟล์เก่าแก่อะครับ เขียนไว้ 2-3 ปีแล่ว
ชื่อเรื่อง: ตอบ: เกี่ยวกับ seekbar ช่วยหน่อยนะครับ
โพสต์โดย: Bellbells เมื่อ 18 พ.ค. 2009, 05:04 น.
ขอโหลดไปศึกษาดูก่อนนะครับ  :56: :45:
ชื่อเรื่อง: ตอบ: เกี่ยวกับ seekbar ช่วยหน่อยนะครับ
โพสต์โดย: phaishow เมื่อ 18 พ.ค. 2009, 12:50 น.
กำ - -" แฟลชไม่ขึ้นซะงั้น

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

as2 งง มากมาย -.-
ชื่อเรื่อง: ตอบ: เกี่ยวกับ seekbar ช่วยหน่อยนะครับ
โพสต์โดย: กากก่อเกรียนนู้บ เมื่อ 18 พ.ค. 2009, 14:22 น.
อ๋อ งั้นยิ่งง่ายครับ เพราะช่วงนี้ผมก็จับแต่ 3 ไม่ได้เล่น 2 เลย :30:
งั้นเอาตัวอย่าง 3 ไปดูนะครับ

http://files.korstudioxd.com/musicplayer_v2.52.rar (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 เพื่อสั่งให้เสียงเล่นอีกที
ชื่อเรื่อง: ตอบ: เกี่ยวกับ seekbar ช่วยหน่อยนะครับ
โพสต์โดย: โส-เล้ง !!! เมื่อ 18 พ.ค. 2009, 15:35 น.
ตามมาศึกษาด้วยคนครับ  :53:
ชื่อเรื่อง: ตอบ: เกี่ยวกับ seekbar ช่วยหน่อยนะครับ
โพสต์โดย: ej_sing เมื่อ 18 พ.ค. 2009, 23:45 น.
(รวมถึงกดค้างแล้วถูไป-มา)  :04: คำอธิบายแบบนี้ ได้อารมณ์มากจานก่อ  :30:
ชื่อเรื่อง: ตอบ: เกี่ยวกับ seekbar ช่วยหน่อยนะครับ
โพสต์โดย: phaishow เมื่อ 19 พ.ค. 2009, 20:53 น.
-.-

ขอบคุณมาก ๆ ครับ  :04:

ว่าแต่..

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

ผมหาไม่เจอ  :09:
ชื่อเรื่อง: ตอบ: เกี่ยวกับ seekbar ช่วยหน่อยนะครับ
โพสต์โดย: Bellbells เมื่อ 19 พ.ค. 2009, 22:44 น.
นั่นสิ ผมก็หาไม่เจอ  :37:
ชื่อเรื่อง: ตอบ: เกี่ยวกับ seekbar ช่วยหน่อยนะครับ
โพสต์โดย: กากก่อเกรียนนู้บ เมื่อ 20 พ.ค. 2009, 16:31 น.
 :55: อ้าว ไม่อยู่ในนั้นเหรอครับ
เอ่อ ผมอัพใหม่ละครับ กดที่ลิงค์เดิมได้เลยครับ

:05: ขอโทษครับ แง
ชื่อเรื่อง: ตอบ: เกี่ยวกับ seekbar ช่วยหน่อยนะครับ
โพสต์โดย: phaishow เมื่อ 20 พ.ค. 2009, 19:05 น.
คือ ผมลอง debug ดูแล้ว มัน error ครับ

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

on (release) {


ปล. หรือผมต้องแก้ไขอะไรเพิ่มเติมก่อน..
ปล2. ผม debug ไฟล์ musicplayer_v2.52.fla เลยครับ
ชื่อเรื่อง: ตอบ: เกี่ยวกับ seekbar ช่วยหน่อยนะครับ
โพสต์โดย: กากก่อเกรียนนู้บ เมื่อ 20 พ.ค. 2009, 19:22 น.
 :55: เอ๊ะ มาได้ไงอะ อันนั้นมัน ActionScript 2 อะครับ ผมเปิดดูก็คอมไพล์ได้นะครับ ไม่เจอเลย
:05: อะไรกันนี่
ชื่อเรื่อง: ตอบ: เกี่ยวกับ seekbar ช่วยหน่อยนะครับ
โพสต์โดย: phaishow เมื่อ 20 พ.ค. 2009, 20:15 น.
แบบนี้อ่ะท่าน  :32:

(http://upload.meemodel.com/UploadedFiles/153/t8yzz12428246731034395.JPG)
ชื่อเรื่อง: ตอบ: เกี่ยวกับ seekbar ช่วยหน่อยนะครับ
โพสต์โดย: กากก่อเกรียนนู้บ เมื่อ 20 พ.ค. 2009, 20:18 น.
ลบบรรทัด on(release){ ไปเลยครับ
ชื่อเรื่อง: ตอบ: เกี่ยวกับ seekbar ช่วยหน่อยนะครับ
โพสต์โดย: phaishow เมื่อ 20 พ.ค. 2009, 20:21 น.
อยากลบอยู่เหมือนกันครับ

แต่ไม่รู้มันอยู่ตรงไหน กด go to source ก็ไม่ได้ -*-

ท่าจะบ้าแล้วว ว T^T
ชื่อเรื่อง: ตอบ: เกี่ยวกับ seekbar ช่วยหน่อยนะครับ
โพสต์โดย: กากก่อเกรียนนู้บ เมื่อ 21 พ.ค. 2009, 02:12 น.
 :08: นั่นสิครับ ผมเปิดดูก็ไม่เจออะไรเหมือนกัน..