دو قاعده بسیار مهم در قرار دادن صدا بر روی یک پروژه مالتی مدیا وجود دارد:
1- مطمئن شوید که قرار دادن صدا به کیفیت کار شما میافزاید نه اینکه باعث آزار مخاطب شود و از کیفیت آن بکاهد! که در بسیاری از مواقع، به خاطر تکراری بودن صدا و یا ناشی بودن طراح در صداگذاری و قطع و وصل صدا در صفحات مختلف، صداگذاری تأثیر منفی بیشتری نسبت به تأثیر مثبتش دارد...
2- اگر قرار شد پروژه شما صدا داشته باشد، سعی کنید صدا، خود به خود شروع نشود. بلکه دکمههایی در صحنه باشد که اگر کاربر خواست، صدا را Play یا Stop کند.
اینها را من نمیگویم. John Uliman یکی از برترین طراحان پروژههای مالتی مدیا که تاتور شرکت Total Training نیز هست میگوید.
با این مقدمه، میرویم سراغ ساخت دکمهای که صدا را قطع کند.
اما ما سه نوع Mute در فلش داریم.
یک نوع Mute این است که شما بخواهید تمام صداهایی که در حال پخش شدن است Mute شود که البته بهتر است بگوییم Stop شود.
این کار آسان است، کافیست یک دکمه بسازید و به آن این کد را اعمال کنید:
on(release){
stopAllSounds();
}
اما توجه کنید که این دکمه موقتاً صداهایی که پخش میشود را قطع میکند. اگر بعد از کلیک روی این دکمه، به فریمی برسید که صدا دارد یا مثلاً دکمهای داشته باشید که صدا داشته باشد، صدایش پخش خواهد شد.
اگر این نوع دکمه کار شما را راه میاندازد، میتوانید یک آموزش ویدئویی کامل از آن، از طریق لینک زیر با حجم 10 مگابایت به صورت مستقیم دانلود کنید:
http://www.totaltraining.com/videos/mov/TMMFP8_Mute.mov
(تاتور این ویدئو، جان اولیمن است.)
2- یک نوع Mute هم داریم که میزان صدای (Volume) مربوط به پروژه فلش شما را صفر میکند. این یعنی اینکه با کلیک بر روی این دکمه، همه صداها در هر زمان و در هر فریمی پخش میشوند، اما چون ولوم، صفر است، شنیده نمیشود. یعنی همان Mute خودمان.
برای استفاده از این نوع Mute، یک دکمه بسازید و این اکشن را به آن بدهید:
on(release){
project_sound = new Sound();
project_sound.setVolume(0) ;
}
به جای project_sound هر کلمه دیگری میتوانید بنویسید. (فقط بین حروفش فاصله نباشد)
با دستور setVolume مقدار صدا را به 0 رساندید.
حالا شاید بپرسید چطور صدا را دوباره از حالت Mute در آوریم؟
پارامتر داخل setVolume میتواند مقداری بین 0 تا 100 بگیرد. بنابراین میتوانید یک دکمه هم برای اینکه صدا از حالت Mute در آید بسازید و این کد را به ان تزریق کنید(!)
on(release){
project_sound = new Sound();
project_sound.setVolume(100) ;
}
(اگر میتوانید دکمههای Toggle (دو حالته) بسازید، میشود یک دکمه ساخت که اگر برای بار اول روی آن کلیک شد، صدا قطع شود و شکل دکمه هم عوض شود و آماده برای وصل کردن صدا باشد)
متوجه شدید که میتوانید با تغییر مقدار 0 تا 100، میزان صدای پروژه در سیستم را تغییر دهید.
3- یک نوع Mute دیگر هم هست و آن اینکه صدای کل سیستم Mute شود. در Mute قبلی فقط صدای پروژه فلش ما قطع میشد.
باید به عرض برسانم بعد از نزدیک دو ساعت جستجو کردن، متوجه شدم که این نوع Mute توسط Flash ساپورت نمیشود.
در Help فلش برای اکثر متودهای کلاس Sound آمده است:
Limitations: Supported for use with native Flash sound; not supported for use with device sound.
همانطور که میبینید، نمیتوان صدای قطعه سختافزار پخش صدا (Device) را قطع کرد...
شاید در نسخه 3 از ActionScript این موضوع هم ساپورت شده باشد، نمیدانم. اگر چیزی دستگیرم شد، حتماً به این مقاله اضافه میکنم.
موفق باشید؛
حمید رضا نیرومند