•  

ยินดีต้อนรับสู่ ThaiFlashDev

ผู้เขียน หัวข้อ: flash อยากสอบถามเรื่องการใส่เสียง  (อ่าน 524 ครั้ง)

ออฟไลน์ chanonacm

  • เด็กเตรียมอนุบาล
  • *
  • กระทู้: 2
อยากสอบถามว่า ใส่เสียงแล้ว อยากให้กด Scene ถัดไปแล้วให้เสียง หยุดเลยครับ คือ เสียงมันซ้อนกันครับ อยากให้เสียงมันหยุดละเล่นต่อเลยครับ As2.0 ครับ  :46:

ออฟไลน์ thora

  • Global Moderator
  • เด็กอนุบาลสามกำลังโต
  • *****
  • กระทู้: 446
Re: flash อยากสอบถามเรื่องการใส่เสียง
« ตอบกลับ #1 เมื่อ: 01 ส.ค. 16, 03:59:40 »
ถ้าอยากให้เสียงที่เล่นอยู่ทั้งหมดก็ stopAllSound();
ถ้าอยากให้เสียงเฉพาะตัวที่กำหนดหยุดก็ เสี้ยงนั้น.stop();
ถ้าอยากควบคุมเสียงให้ได้หลากหลานและเจาะจงมากกว่านี้ ให้ศึกษาเพิ่มเรื่อง SoundChannel
แค่นี้ก็น่าจะครอบคลุมแล้วครับ
ควรวางลำดับความคิดเราก่อน ก่อนที่จะลงมือทำ

ออฟไลน์ phiromya

  • เด็กเตรียมอนุบาล
  • *
  • กระทู้: 5
Re: flash อยากสอบถามเรื่องการใส่เสียง
« ตอบกลับ #2 เมื่อ: 30 ต.ค. 16, 14:04:44 »
รบกวนหน่อยนะค่ะ  As3.0 ใช้คำสั่งเดียวกันไหมค่ะ ใส่แล้ว error ค่ะ

ออฟไลน์ sukjai

  • น้องอนุบาลสองทับสาม
  • ***
  • กระทู้: 227
Re: flash อยากสอบถามเรื่องการใส่เสียง
« ตอบกลับ #3 เมื่อ: 30 ต.ค. 16, 20:17:30 »
คำสั่งเกีียวกับ Sound ใน As2 กับ As3 เขียนไม่เหมือนกันนะครับ

ลองศึกษาจากตัวอย่างนี้ดูนะครับเผื่อว่าจะพอช่วยได้  แต่ต้องบอกก่อนนะครับว่า รูปแบบที่ให้ไว้นี้ ไม่ได้เป็น
รูปแบบที่ถูกต้องอะไร แค่ใช้เป็นแนวทาง เพื่อให้ดูเป็นแนวทางเบื้องต้นแค่นั้น

โค๊ด: [Select]
var sound:Sound=new sound_1();
/*
sound_1  เป็นชื่อ  Linkage ของเสียงที่ได้กำหนดไว้ในช่อง  class ตอนสร้าง  Linkage
ขั้นตอนการ  สร้าง Linkage ให้กับ  เสียง   คือ
1.  คลิกที่เมนู   File -->  Import  -->  Import to Library
2. ในหน้าต่าง  Library  ให้คลิกขวาที่เพลงที่เราต้องการสร้าง  Linkage เลือก    Linkage..
3.  คลิกเลือกหัวข้อ  Export for ActionScript
4.  จากนั้นกำหนดชื่อในช่อง  Class
*/
var channel:SoundChannel=new SoundChannel();
var transForm=new SoundTransform();
transForm.volume=0.7;
// ปรับค่าความดังของเสียงที่ ตัวแปร  transForm โดยระบุค่าได้ระหว่าง 0-1  ถ้ากำหนดเป็น 1 คือดังสุด
var positionSound:Number=0;
// ตัวแปร  positionSound เป็นตัวแปรที่ใช้เก็บเวลาของเพลงที่กำดลังเล่นอยู่  ณ เวลานั้น
var onPlay:Boolean=false;
//  ตัวแปรที่ใช้สำหรับตรวจสอบสถานะของการเล่นเพลง  ว่า กำลังเล่นเพลงอยู่หรือไม่  ในเบื้องต้นกำหนดให้มีค่าเป็น  false คือไม่ได้เล่น

//  ------------------------------------------------------------------------------
PlayAndResumeBtn.buttonMode=true;
PlayAndResumeBtn.addEventListener(MouseEvent.CLICK,_playAndresume);
/*
function _playAndresume  ทำหน้าที่  กำหนดสถานะของการเล่นเพลงให้เป็นสถานนะตรงกันข้ามกับ
สถานะเดิมที่มีอยู่   จากนั้นจะทำการเปรียบเทียบสถานะของการเล่นว่า มีสถานนะใด  ถ้ามีสถานะเป็นจริง  ก็จะสั่งให้เล่นเพลง
ถ้ามีสถานนะเป็นเท็จ  ก็จะสั่งให้หยุดเล่นเพลง
*/
function _playAndresume(e:MouseEvent):void {
onPlay=!onPlay;
//  กำหนดค่าสถานะของการเล่นเพลงให้เป็นตรงกันข้าม
if (onPlay) {
// ทำาการตรวจสอบว่า  สถานะของการเล่นเพลงเป็น จริง  หรือไม่ ถ้าเป็นจริงก็ให้เล่นเพลง ถ้าไม่จริง ก็ให้หยุดเล่น
channel=sound.play(positionSound);
//  สังให้เล่นเพลงตามค่าเวลาที่ระบุไว้ภายในตัวแปร  positionSound
channel.soundTransform=transForm;
//  กำหนดค่าความดังของเสียงเพลงให้มีค่าความดังตามค่าที่ได้กำหนดไว้ภายในตัวแปร  transForm
} else {
positionSound=channel.position;
//  เก็บค่าเวลาของเพลงที่เล่น ณ เวลานั้นไว้ที่ตัวแปร  positionSound
channel.stop();
//  สั่งให้หยุดเล่นเพลง
}
channel.addEventListener(Event.SOUND_COMPLETE,_loopPlay);
}
//  ------------------------------------------------------------------------------
stopBtn.buttonMode=true;
stopBtn.addEventListener(MouseEvent.CLICK,_stop);
//  function _stop ทำหน้าที่สั่งให้หยุดเล่นเพลงที่เล่นอยู่ พร้อมทั้งทำการคือนค่า สถานะการเลนเพลง และกำหนดค่าเวลาเริ่มต้นของเพลงใหม่
function _stop(e:MouseEvent):void {
channel.stop();
//  สั่งให้หยุดเล่นเพลง
onPlay=false;
//  กำหนดสถานะของการเล่นเพลงให้กลับมาเป็นเท็จ   
positionSound=0;
//  คืนค่าตำแหน่งของการเล่นเพลงกลับไปที่  0  คือ กลับไปยังตำแหน่งเริ่มต้นของเพลง
}
//  ------------------------------------------------------------------------------
//  function _loopPlay  ทำหน้าที่สั่งให้ทำการเล่นเพลงวนซ้ำ เมื่อเล่นเพลงจบ
function _loopPlay(e:Event):void {
channel.removeEventListener(Event.SOUND_COMPLETE,_loopPlay);
channel=sound.play();
//  สังให้เล่นเพลงตามค่าเวลาที่ระบุไว้    0  คือ เริ่มเล่นใหม่ตั้งแต่ต้น
channel.soundTransform=transForm;
//  กำหนดค่าความดังของเสียงเพลงให้มีค่าความดังตามค่าที่ได้กำหนดไว้ภายในตัวแปร  transForm
channel.addEventListener(Event.SOUND_COMPLETE,_loopPlay);
}
//  ------------------------------------------------------------------------------

ปล. หากมีเสียงเล่นอยู่หลาย ๆ เสียง และต้องการสั่งให้ทุกเสียงหยุดเล่น ให้ใช้คำสั่ง  SoundMixer.stopAll();

ผิดพลาดประการใด ก็ต้องขออภัยไว้ ณ ที่นี้ด้วยครับ มิได้อยู่ในสถานะเชี่ยวชาญ แค่มีใจอยากช่วย

ออฟไลน์ Freileya

  • เด็กเตรียมอนุบาล
  • *
  • กระทู้: 2
Re: flash อยากสอบถามเรื่องการใส่เสียง
« ตอบกลับ #4 เมื่อ: 23 พ.ค. 17, 02:30:58 »
จากการอ่านค่าสคริปผมคิดว่าใกล้เคียงกันนะ