| السلام عليكم ورحمة الله
وبركاته, في هذا الموضوع انشاء الله راح نشوف كيف ندخل 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
.......... ودمتم في رعاية الله |
| |
| |