كائن الصوت Sound Object
يعتبر هذا الكائن من أقوى الكائنات المتضمنة في نسخ فلاش 5 فما فوق، والذي يوفر تحكم متقدم في الصوت من خلال الaction script، وفي السطور التالية سأشرح كل ما تحتاج معرفته عن هذا الكائن فبسم الله نبدأ.
تكمن الفكرة الرئيسية في كائن الصوت ( شأنه شأن معظم كائنات الفلاش ) بتعريف نسخة منه باستخدام دوال الConstructors،أو الدوال البانية، ومن ثم استخدامه دواله الخاصة.
يتم تعريف نسخة منه كالتالي :
MySound=new Sound( );
من الان فصاعدا سيكون تعاملك مع MySound ودعنا نرى ماذا يمكنك ان تفعل به :)

1.attachSound( idName )
هذه الدالة هي مفتاح تحكمنا بMySound، فعند استبدالك idName باسم الصوت الذي سبق استيراده للعمل، ولنقل مثلا AnySound، فإنه سيرتبط به ويأخذ قيمته، وبالتالي عند تطبيق أي امر او استخدام أي دالة على نسخة الكائن MySound فأنك بذلك تؤثر حقيقة في AnySound!
2.start( secondsOffset, loops )
لتشغيل الصوت تستخدم هذه الدالة والتي تأخذ كمتغيرات الثانية التي سيبدأ عندها الصوت ( ويحسب من بداية الملف الصوتي )، وعدد مرات التكرار.
يمكنك ان تترك القيم فارغة وبذلك سيشغلها من البداية والتكرار سيكون في حاله تكرار الاطارات فقط ( اذا وضع الكود في اطار ) . اما اذا اردت تكرارها بشكل لا نهائي اكتبها بالشكل التالي:
start ( 0.9999999)
3.stop()
دالة ايقاف الصوت.
4.setVolume( volume )
بداية من هذه الدالة يبدأ التحكم الحقيقي بالصوت.
فباستخدام هذه الدالة يمكنك ان تحدد مدى ارتفاع ( علو ) الصوت، وهي تأخذ قيم من 0 (صوت مكتوم ) إلى 100 ( اعلى قيمة ).
5.getVolume()
والتي ترجع قيمة ارتفاع الصوت حاليا.
6.setPan( pan)
هي دالة تستخدم للتحكم في موازنة الصوت الصادر من مكبرات الصوت الأيمن والأيسر. المتغير عبارة عن رقم صحيح وتتراوح قيمه بين -100 و 100، بحيث عن استخدام القيمة -100 يكون الصوت متدفق من مكبر الصوت الأيسر فقط، وكذلك بالنسبة للقيمة 100 تكون للمكبر الايمن، 0 يكون الصوت موزعا بالتساوي بينهما.
7.getPan()
يرجع عدد صحيح يمثل قيمة الموازنة بين مكبرات الصوت.
8.setTransform( sxform )
تعتبر من دوال التحكم المتقدم بالصوت، حيث تحدد بدقة كمية الصوت المنبثق من كل مكبر. قد تلاحظ الشبه بين هذه الدالة و setPan ولكن الفرق ان في setPan انك تحدد حجم الصوت المرسل من القناة اليمنى للمكبر الايمن، ومن القناة اليسرى للمكبر الأيسر فقط، اما في هذه الدالة فيمكنك تحديد كمية الصوت الصادر من القناة اليمنى للمكبر الأيمن والأيسر معا وكذلك الأمر بالنسبة للقناة اليسرى.
المتغير عبارة عن كائن جديد يجب ان تقوم انت بتخليقه ويحتوي على الخصائص التالية:
ll حجم الصوت المرسل من القناة اليسرى للمكبر الأيسر وقيمته بين -100 و 100.
rr حجم الصوت المرسل من القناة اليمنى للمكبر الأيمن وقيمته بين -100 و 100.
lr حجم الصوت المرسل من القناة اليمنى للمكبر الأيسر وقيمته بين -100 و 100.
rl حجم الصوت المرسل من القناة اليسرى للمكبر الأيمن وقيمته بين -100 و 100.
وتحسب النتيجة النهائية حسب المعادلة التالية:
الخرج الأيسر =حجم الصوت الداخل من القناة اليسرى ككل *ll + الداخل من القناة اليمنى * lr
الخرج الأيمن = الداخل من القناة اليمنى * rr + الداخل من القناة اليسرى*rl
حسنا كيف نعرف كائن جديد؟
بسيطة :) كالتالي:
MySoundTransformObject = new Object; MySoundTransformObject.ll = 0; MySoundTransformObject.lr = 0 ; MySoundTransformObject.rr = 0; MySoundTransformObject.rl = 0;
وبالتالي تستخدم الدالة كالتالي :
MySound.setTransform(MySoundTransformObject);
بهذا نكون قد انهينا طرق ووسائل التحكم بالصوت عن طريق الأكشن :)
(f)(f)
