المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : درس إيقاف و تشغيل الصوت بزر واحد من نقطة توقفه بالأكشن


Flash Lite
02 Aug 2006, 08:08 AM
بسم الله الرحمن الرحيم

السلام عليكم


المثال :

WIDTH=200 HEIGHT=100


أولا :
لكي نستطيع التحكم في الصوت عن طريق الأكشن يجب فتح المكتبة بالضغط على F11

ثم الضغط بالزر الأيمن على الصوت و اختيار Linkage

ثم في النافذة التي ستظهر نفعل الخيار Export for action script و export in first frame

و نسمي الصوت في خانة الإسم بأي إسم من إختيارنا و ليكن مثلا al

وهذا لكي نستطيع مناداته من لوح الأكشن بإسمه المختار هذا .

- نحدد الفريم الأول في الشريط الزمني لساحة العمل الرئيسية ونكتب هذا الكود :

mysound = new Sound();
mysound.attachSound("al");
mybutton._alpha = 99;
mybutton.onRelease = function() {
myposition = mysound.position;
mysound.onSoundComplete = function() {
this.start();
};
if(mybutton._alpha < 100) {
mysound.start(myposition/1000);
mybutton._alpha = 100;
}else if(mybutton._alpha == 100) {
mysound.stop();
mybutton._alpha = 99;
}
}

شرح الكود:

دور خاصية ال alpha للزر واضح في الكود و هو للتحكم بالصوت عن طريق زر واحد
و هناك درس آخر استعملنا فيه هذه الخاصية و هو درس تشغيل و إيقاف الحركة عن طريق زر واحد .. بطبيعة الحال توجد عدة طرق للتشغيل و الإيقاف بنفس الزر و لكننا اخترنا و احدة منها و التي هي خاصية الألفا و التي هي أبسطها على الإطلاق ..

نأتي الآن لصلب موضوع درسنا هذا :

mybutton.onRelease = function() {
myposition = mysound.position;
mysound.onSoundComplete = function() {
this.start();
};
if(mybutton._alpha < 100) {
mysound.start(myposition/1000);

myposition متغير يحمل كمعلومة داخله النقطة التي يوجد عندها الصوت
حيث position هي خاصية من خصائص عنصر الصوت و تحسب بالميلي ثانية ..
في السطر الذي بعدها حددنا للفلاش أنه عند انتهاء الصوت عليه أن يبدأ من نقطة الإنطلاق
أي من الصفر ..
نأتي للخاصية start :
هذه الخاصية في شكلها العام تكتب كما يلي :
mySound.start(secondOffset, loop)

حيث secondOffset تمثل الثانية التي سيبدأ عندها الصوت
و loop تمثل عدد تكرار قراءة الصوت ..
.. فمثلا لو عندنا صوت فيه دقيقة
و وضعنا
mySound.start(30, 10)

فإن هذا الصوت سيبدأ القراءة من نصف الدقيقة أي عند الثانية 30 و سيتكرر 10 مرات ثم يتوقف .. ( طبعا تستطيع لكي يتكرر الصوت مرات كثيرة أن تضع مثلا 999999 بدل 10 .
طبعا هاتان الخاصيتان اختياريتان ..

في الكود وضعنا :
mysound.start(myposition/1000)

و بما أن 1 ثانية = 1000 ميلي ثانية

فإننا قسمنا myposition ( التي تحسب بالميلي ثانية كما أسلفت) على 1000 و هذا حتى نحصل على secondOffset الذي نرغب في تحديده ( لأنه كما قلنا يحسب بالثانية ) ..
لم نضع loop للصوت لأننا وضعناه بطريقة أخرى سيتكرر بها الصوت إلى ما لا نهاية كالتالي :

mysound.onSoundComplete = function() {
this.start();
};

هذا الكود مهم جدا لأن بدونه فإن الصوت عندما ينتهي لن يتكرر و إذا عملنا له loop كما تقدم في الشرح فإنه سيتكرر من آخر نقطة قمنا بتوقيفه عندها (طبعا فيه طرق أخرى كثير لتجاوز هذا الإشكال كالجمل الشرطية مثلا ) ..




يبقى الكود
mysound.stop();




و هو واضح و لا يحتاج لشرح




أرجو أن تكون الفكرة و الشرح في متناول الجميع





و السلام عليكم

MATRIX MX
03 Aug 2006, 02:47 PM
السلام عليكم ورحمة الله وبركاتة

يعطيك الصحه والعافيه يا غالي على مثل هذا الإبداع يا غالي

تسلم يديك والله على روعة الدرس يا جلو :>

نجا

Flash Lite
05 Aug 2006, 08:53 PM
بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاتة


مشكور على المرور حبيبي أبو شوق
تحيتي لك

الاسطورة
12 Aug 2006, 02:12 AM
السلام عليكم

حقيقه درس روعه من جد وخرافي في نفس الوقت


درس الحقيقه الكثير يطلبه وانت تحضره على طبق من ذهب


الف شكر وتقدير لك

بالتوفيق

Flash Lite
13 Aug 2006, 04:10 AM
بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاتة

مشكور كثير أخي الأسطورة على المرور
و أتمنى الجميع يستفيد منه

تحيتي لك

مجد الإسلام
18 Aug 2006, 12:35 PM
ما شاء الله عليك يا أخي ..
ما هذا الإبداع ؟؟
أول مرة أعرف أنك من أساتذة الأكشن بالمنتدى (:
إن شاء الله أقدر أستفيد من الدرس وأطبقه ..

وشكراً على هذه التلاوة الرائعة للشيخ عبد الباسط

Flash Lite
18 Aug 2006, 04:09 PM
بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاتة

مرحبا بمرورك أخي مجد الإسلام
و هذا بعض ما عندكم ..
وإن شاء تستفيد من الدرس و تحاول تطبيقه بطرق مغايرة
لأنه الهدف من الدروس معرفة المبدأ أما التطبيق فكل واحد حر في التطبيق الحرفي
أو التطوير و محاولة الخروج بأفكار جديدة من الدرس

تحيتي لك

bayan
13 Oct 2006, 10:16 AM
السلام عليكم
لو تكرمت بارسال الكود لي لانه لم يظهر عندي .ظهرت الصور على شكل اكس
على الإميل
off_on@hotmail.com

Flash Lite
13 Oct 2006, 07:56 PM
غير ستايل عرض المنتدى و سيظهر لك ..

تجد الستايلات في أقصى أسفل الموقع على اليمين
تحيتي