السلام عليكم  ورحمة الله وبركاته, في هذا الموضوع انشاء الله راح نشوف كيف ندخل 4  ملفات صوتيه في الفلاش ونتلاعب فيهم عن طريق رفع الصوت او كتم الصوت (mute) وغير ذلك
وعلى شان توضح الفكره اكثر ياليت لو تشوفوا الفلاش الي تحت

 

 

فكرة الفلاش الي فوق مره سهله بس قبل كل حاجه احب اقلكم انه الي ما يعرف يستخدم الـ ActionScript راح يلاقي صعوبه في فهم هذا الموضوع, فخلونا نبداء.

 

اولا المتطلبات:

Flash Profession 8 وهذا لانه انا استخدمت خاصية الفلاتر الي موجوده في فلاش 8 فقط عن غيره من الاصدارات الي قبله مثلا زي فلاش ام اكس او فلاش 6

 

ثانيا الفكره:

بكل بساطه انا استخدمت هنا الكلاس Sound الي يعطيني القدرة على التحكم والتلاعب بالملفات الصوتيه عن طريق الـ Methods الموجوده في هذا الكلاس, مثلا زي

attachSound الي عن طريقها يمكن تخزين اي ملف صوت في متغير من نوع Sound بس بشرط ان يكون هذا الملف موجود في المكتبه تبع الفلاش Library (في حالة عدم وجود المكتبه اضغط على F11).

start و stop وهذي الـ methods من اسمهم نقدر نعرف اش طبيعة عملهم.

setVolume عن طريقها انا اقدر اعطي قيمة للصوت وهذي القيمة مداها من 0 الى 100.

والحين لما عرفنا اش هي الاوامر او المحددات او القيود الي ممكن تساعدنا في تشغيل ملف صوتي باقي علينا كيف نوجد الفكره او الطريقه الي راح نستخدمها لتمثيل الكلام الي ذطرنها بصوهر جيده,

مثلا:  تحديد درجة الصوت عن طريق قرص دوار زي الي موجود في الفلاش الي فوق.

اول حاجة القرص الي دوار فوق عباره عن MovieClip  يعني انا اقدر استخدم الخاصيه rotation الي عن طريقها انا اقدر ادور القرص في اتجاه ابغاه وذلك عن طريق اعطاء قيمة من 0 الى 180

اذا كانت القيمة موجبه فراح يكون اتجاه التدوير مع عقارب الساعه اما اذا كانت سالبه فالتدوير راح يكون عكس اتجاه عقارب الساعه , الشكل الي تحت يوضح الكلام هذا  

 

 

طيب الحين ما باقي الا كيف نوجد علاقة ما بين نطاق درجة الصوت ونطاق التدوير , يعني كيف انا ممكن اسوي علاقة بحيث انه كل ما اسوي تدوير بدرجه وحده موجبه يعني لليمين يزيد الصوت بدرجه واحده واذا سويت

تدوير بدرجه واحد سالبه ينقص الصوت بدرجه واحده ؟

الفكره بسيطه جدا, اول شيء افرض انه الصوت يبداء بشكل افتراضي على درجة 50  وبعد كذا اما يزيد الى 100 او ينقص الى 0 (يعني اما 50 خطوه الى اليمين او 50 خطوه الى اليسار)

والقرص راح اعطيه تدوير من سالب 100 الى موجوب 100  وراح اربط ما بين التدوير ودرجة الصوت بالعلاقة التاليه:

درجة الصوت = 50 + (مقدار التدوير / 2)

في البدايه اول ما يشتغل الفلاش راح يكون التدوير صفر والصوت  راح يكون 50 + (التدوير / 2)  وهذا الكلام راح يساوي 50 اما لو دورنا القرص بمقادر 100 درجه يعني باتجاه عقارب الساعه

فالصوت راح يساوي 100 (من العلاقه الي فوق) وبنفس الطريقه لو كان التدوير سالب 100 فالصوت راح يكون صفر.

باقي مشكلة تحديد اتجاه التدوير, هذي المشكله راح نحلها على حسب مقدار الـ X للفاره

نفرض انه مركز القرص هو نقطة الاصل (0,0) فاذا المستخدم ضغط على القرص وكان مقدار الـ X اكبر من صفر قم بتدوير القرص مع عقارب الساعه, غير ذلك قم بالتدوير عكس عقارب الساعه.

 

ثالثا تطبيق الفكره:

اول حاجة لازم نرسم الشكل هذا الي راح يكون هو القرص

 

 

وبعد كذا من قائمة components نضيف NumericStepper  كما هو مبين في الشكل الي تحت

 

 

بعد ما نضيف الستيبر راح نلاحظ انه صار موجود في المكتبه وفي المسرح Stage , نقوم بتغير بعض خواصه وذلك عن طريق الضغط على Parameters كما هو موضح في الشكل الي تحت

 

 

لو تلاحظوا في الصوره الي فوق الـ maximum هو الي يحدد اكبر قيمه الي ممكن ياخذها هذ التدريج الرقمي والـ minimum اقل قيمة ممكن ياخذها اما الـ stepSize يحدد حجم الخطوه  واخر شيء الي هو

الـ value يحددلنا القيمة الحاليه لهذا التدريج.

وبعد كذا نسوي الشكل التالي (الشكل التالي غير مهم بس عشان الديكور)

 

 

وبعد كذا نضيف الاشكال الي موجوده عندنا في الـ Stage كما هو مبين في الصوره الي تحت, الـ Stage هو المشهد النهائي او الي راح يظهر

 

 

بعد ما نضيف الشكلين على الـ Stage نحدد على التدريج الرقمي عشان تطلعنا خواصه ونعطيه اسم  mySongs في الـ Instance Name زي ما هوي مبين في الصوره التاليه

 

 

هذا الاسم هو الي راح يخلينا نتحكم بالتدريج الرقمي برمجيا , بعد كذا نضيف الملفات الصوتيه الي نبغاها وفي حالتنا هذي انا اضفت 4 ملفتا صوتيه, وعشان ندخل على اي شيء داخل المكتبه برمجيا لازم نعطيه اسم

عن طريق الضغط على هذا الملف بالزر اليمين ثم اختيار Linkage وبعد ذلك ادخل الاسم الي تبغاه كما هو مبين في الصور الي تحت

 

 

لو تلاحظوا انا سميت الملف الاول باسم Song1 والثاني راح يكون Song2 وهلم جرا , المهم في الـ Stage نضيف طبقة ثانيه نسميه script عشان نكتب السكربت تبعنا فيها, بعد ما نضيف الطبقه الجديده نحدد في الفريم الاول فيها ونضغط على F9 عشان نكتب كود سكربت كما هو مبين في الصوره الي تحت

 

 

الكود الي فوق بسيط جدا ما فيه تعاريف لمتغيرات راح تساعدنا للتوصل الى النتيجه المطلوبه (العباره الي في السطر الاول غير مهمه)

لو تلاحظوا في الاسطر من 2 الى 6 انا معرف متغيرات بس قبل كل واحد منها في العباره global , هذي العباره تخلي المتغير مرئي في الـ Time Line لهذا الفلاش  يعني زي الـ global في لغة سي ++

حاليا اهم شيء الىن هو الي في الاسطر 3 و 4 و 6

volumeValue هو الي راح يحددلنا مقدار الدوران وبناءا عليه راح نحدد مقدار الصوت.

flag هو متغير من نوع bool يعني اما true او false , وعن طريقه انا  ممكن اعرف انه المستخدم ضغط على القرص واثناء ضغطه على القرص غير اتجاه الفاره (يعني كانه فعلا يدور القرص).

s وهذا متغير من نوع Sound وهو الي راح يحتوي على الملف الصوتي الي نبغى نشغله وكمان عن طريقه اقدر اغير حجم الصوت (الاسطر 7 و 8).

الحين نحدد القرص الي موجود على الـ Stage ونعطيه اسم myVol2 في حقل الـ Instance Name عشان نقدر نتحكم فيه برمجيا وبعد كذا نضغط على زر F9 عشان نعطيه كود خاص فيه كما هو مبين في الصوره الي تحت

(ملاحظه: قبل لا تضغط على F9 تأكد انه القرص محدد او عليه الاختيار)

 

 

الكود الي فوق مره بسيط والغرض منه بس انه لما المستخدم يضغط على القرص  flag تتحول قيمته الى true ولما المستخدم يفلت زر الماوس (release) تتحول قيمة الـ flag الى false.

الحين اعمل دبل كليك على القرص عشان تدخل في طور تصميم القرص وفي هذا التصميم ادخل طبقه جديده عشان نكتب فيها الكود في حالة تحريك المستخدم للماوس كما هو مبين في الصوره الي تحت

 

 

في السطر الاول انا قمت بتعريف function يتم استدعائها كلما تحركت الماوس فوق القرص وفي السطر الثاني ادخلت شرط يتحقق من قيمة الـ flag  حيث ان قيمته تدل على ان المستخدم ضغط على القرص ولا لا

السطر الثالث في شرط يتأكد من قيمة الـ volumeValue انها محصوره ما بين سالب 100 وموجب 100 وبعد كذا انا لازم اشوف وين اتجاه حركة الماوس الى اليمن ويعني زياده في الصوت ولا اليسار

وهذا عن طريق دراسة قيمة الـ X تبع الماوس بالنسبة الى القرص myVol2 الي موجود في الـ Stage (ملاحظه: انا الآن حاليا داخل القرص الاساسي).

وفي الاسطر 9 و 10  اقوم بتدوير القرص myVol2  واعطاء قيمة جديده لحجم الصوت .

وبعد كذا قم برسم اي شكل حيث انه يمثل مفتاح تشغيل الملف الصوتي وحوله الى MovieClip و اعطيه اسم switchKey في حقل الـ Instance Name وقم بادخال الكود التالي في الـ Stage

 

 

لو ترجعوا للكود الاول الي موجود فوق راح تلاحظوا انه في متغير باسم switchFlag وياخذ قيم بولينيه يعني اما true وهذا يعني تشغيل الملف الصوتي (السطر 37)  او false  وهذا يعني اغلاق الملف الصوتي

(السطر 38).

باقي علينا ندخل الكود الي راح يخلينا نتحكم باختيار الملف الي نبغى نشغله ما بين الاربع ملفات الي اضفناهم في المكتبه وسميناهم (Linkage) بالاسامي Song1, Song2, Song3, Song4 من اليسار لليمين على التوالي

فكل الي عليك تسويه هو تحديد التدريج الرقمي الي موجود في الـ Stage والي سميناه mySongs في حقل الـ Instance Name وبعد كذا تضغط على زر F9 عشان ندخل الكود التالي

 

 

في السطر الاول لازم نعرف event تصير كل مره يتغير فيها التدريج الرقمي وبعد كذا من السطر 2 الى 8 نقوم اول شيء بايقاف الملف الصوتي الحالي وبعد كذا تغير املف الصوتي الى الملف الصوتي الي بعده

وبعدين اعطاء قيمة صوت 50 بشكل افتراضي وبعدين نتأكد من زر التشغيل الي اضفناه في الخطوه الي قبل ذي اذا كان on ولا off عن طريق المتغير switchFlag.

وكذا الموضوع انتهى تقريبا ولكن الي حاب يضيف حاجه من عنده زي مثلا زر لكتم الصوت او زر لتقديم الملف الصوتي او تأخيره او اظهار اسم الملف الصوتي فهو حر.

انشاء الله تكونوا استفدتوا من هذا الموضوع والي عنده اي استفار فلا يستحي من السؤال او الي عنده ملاحظه او توضيح لا يبخل علينا

 

 

اخوكم Robatic .......... ودمتم في رعاية الله

 
 
Hosted by www.Geocities.ws

1