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

مشاهدة النسخة كاملة : جولة حول أكشن سكريبت 3 التعامل مع الصوت جزء 1


azizsoft
23-09-2013, 05:30 AM
بسم الله الرحمن الرحيم
الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين
السلام عليكم ورحمة الله وبركاته




التعامل مع الصوت



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

أنواع الكلاسات الخاصة بالتعامل مع الصوت


flash.media.Sound
classe Sound : هذا الكلاس مسؤول على تشغيل الملف الصوتي .

flash.media.SoundTransform
classe SoundTransform : هذا الكلاس مسؤول على تعديل الصوت (volume, balance) = (الدرجة والتوازن).

flash.media.SoundChannel
classe SoundChannel : هذا الكلاس مسؤول على النحكم في الصوت

flash.media.LoaderContext
classe LoaderContext : هذا الكلاس مسؤول على بيانات الملف الصوتي عند بداية التحميل وتأمينها

flash.media.SoundMixer
classe SoundMixer : هذا الكلاس مسؤول على التحكم الكامل لاي ملف صوتي بصدد التشغيل

flash.net.NetConnection
classe NetConnection : هذا الكلاس مسؤول على تحميل الملفات الصوتية بصيعة MPEG-4

flash.net.NetStream
classe NetStream : هذا الكلاس مسؤول على التعامل مع هاته الملفات الصوتية بصيغة MPEG-4


استيراد ملف صوتي وتشغيله من المكتبة

افتج برنامج الفلاش واضغط CTRL+R او من قائمة file اختر importe ثم importe to library حدد الملف الصوتي
بعد ذلك افتح المكتبة اضغط على الملف بيمين الماوس واختر Properties ستفتح لك نافذة اضغط على التبويب Action Script
فعل خيارExport For Action Script ومن خانة class اعطه اسم واضح وبدون مسافة وبدون تعقيد نأخذ على سبيل المثال
كلمة aziz سيكون عليها التطبيق واضغط ok تظهر نافذة
أخرى اضغط ok لاتهتم . ستلاحظ في المكتبة ان الملف الصوتي اصبح لديه اسم كلاس جديد وتابع لــــ sound class

حدد الطبقة الأولى اضغط F9
الان سنقوم بانشاء نسخة من هذا الكلاس وطبعا عملية الانشاء تكون بالدالة أوالمعامل new

var s1:aziz = new aziz();


لاحظ هنا قمنا باشاء نسخة من الملف الصوتي باسم عزيز وخزناه في متغير باسم s1 " اقصد بها sound1 ملف صوتي رقم 1 "
الان بكل بساطة نضيف أمر التشغيل لهذا الملف


s1.play();


ويكون الكود لتشغيل الملف الصوتي كما يلي :


var s1:aziz = new aziz();
s1.play();


الوظيفة play(); تستقبل 3 معاملات وهي
1 - startTime:Number بداية وقت التشعيل يكون بالثواني يعني احب المقطع يشتغل من الثانية 12 نكتب داخل القوسين 12000
2- loops:int عدد مرات تكرار المقطع نكتب 1 او 2 او 3 الخ ...
3- sndTransform:SoundTransform تحويل الصوت الجاري تشغيله " غير هامة "


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


var s1:aziz = new aziz();
var canalaziz:SoundChannel = s1.play();


أرغب في ان يتم تشغل المقطع من الثانية 9 ويتم تكراره 2 اذن اضيف الرقمين بين قوسي الوظيفة play كما يلي


var s1:aziz = new aziz();
var canalaziz:SoundChannel = s1.play(9000,2);


الان نريد من المستخدم عندما يضغط بالماوس على المسرح يتم ايقاف الصوت سيكون الكود الكامل ما يلي :


var s1:aziz = new aziz();
var canalaziz:SoundChannel = s1.play(9000,2);
// المسرح سيستجيب لحدث الماوس وهو الضغط
stage.addEventListener( MouseEvent.CLICK, stoppSon );
function stoppSon ( pEvt:MouseEvent ):void
{ // ايقاف الصوت
canalaziz.stop();
}



تشغيل ملف صوتي خارجي


يتم تشغيل ملف صوتي خارجي بطريقتين متشابهتين سندرج الأسهل

1 - افتح مجلد جديد بسطح المكتب اعطه اي اسم وضع فيه ملف صوتي أنا وضعت سورة الاخلاص رقم 112
افتح مشروع جديد بالفلاش واحفظه داخل هذا المجلد حدد الطبقة الأولى افتح نافذة الاكشن والصق الكود وغير فقط رقم
112 باسم الملف الصوتي الخاص بك لاتحذف امتداد الصوت


var mySound:Sound = new Sound();
var myChannel:SoundChannel = new SoundChannel();
mySound.load(new URLRequest("112.mp3"));
mySound.play();


عند تحميل وتشغيل الملف الصوتي الكائن أو كلاس sound يرسل عدة أحداث هي على النحو التالي :
Event.COMPLETE حدث الانتهاء من تحميل الصوت
Event.ID3 حدث معلومات الصوت المتوفرة وتعرف بـ ID3
IOErrorEvent.IO_ERROR حدث عند حصول خطا في تحميل الصوت
Event.OPEN حدث بداية تشغيل الصوت
ProgressEvent.PROGRESS حدث اثناءعملية تحميل الصوت يعني قيمة octets

سنقوم الان بتجربة هاته الاكواد لمزيد معرفتها اكثر
احذف كامل الكود من نافذة الاكشن والصق الكود التالي وغير فقط اسم الملف الصوتي باسم الملف الخاص بك
ولاحظ في نافذة المخرجات Output Pannel المعلومات .



// انشاء نسخة من كائن الوصت وتخزنه في متغير
var mySound:Sound = new Sound();
// تحميل الملف الصوتي
mySound.load(new URLRequest("112.mp3"));
// الاستماع لمختلف الأحداث المذكورة
mySound.addEventListener( Event.OPEN, chargementDemarre );
mySound.addEventListener( Event.ID3, informationsID3 );
mySound.addEventListener( ProgressEvent.PROGRESS, chargementEnCours );
mySound.addEventListener( Event.COMPLETE, chargementTermine );
mySound.addEventListener( IOErrorEvent.IO_ERROR, erreurChargement );
function chargementDemarre ( pEvt:Event ):void
{
trace("بدأ التحميل");
}

function informationsID3 ( pEvt:Event ):void
{
trace("معلومات ID3");
}

function chargementEnCours (pEvt:ProgressEvent ):void
{
trace("جاري التحميل : " + pEvt.bytesLoaded + " / " + pEvt.bytesTotal );

}

function chargementTermine ( pEvt:Event ):void
{
trace("انتهى التحميل ");
}

function erreurChargement ( pEvt:IOErrorEvent ):void
{
trace("خطاء في التحميل");
}



نواصل في الجزء الثاني ان شاء الله

عبود عبود
23-09-2013, 09:20 AM
شكـــــــــــــرا ............... جزاك الله خيـــــــرا

:abc_152:

أبو يوسف
23-09-2013, 05:48 PM
جزاك الله خيرا أخانا عزيز على هذه الجولات

أتمنى لك التوفيق :abc_152:

abohmam
24-09-2013, 01:36 PM
بارك الله فيك أخانا الفاضل عزيز

دروس رائعة ماشاء الله

جزاك الله خيرا ونحن نتابع معك بشوق كل جدديد :abc_022:

azizsoft
24-09-2013, 06:42 PM
بسم الله الرحمن الرحيم

تشرفت بحضوركم الكريم اخوتي
أبو يوسف، أمير ، أبو همام

جزاكم الله خيرا

خادم المسلمين
24-09-2013, 10:24 PM
طبقت على ملفات صوتية
رابط تحميلها من هنا

http://www.gulfup.com/?BLzDmD
موضوع الاستدعاء الخارجى وقبلت

ولكن عند استدعاء الملفات نفسها الى المكتبة
تظهر هذه الرسالة
http://im40.gulfup.com/Ho8Kn.png (http://www.gulfup.com/?wgTon3)

تانى ملاحظة

عند تطبيق هذا الكود
الصوت لايعمل
http://im42.gulfup.com/vvOBS.png (http://www.gulfup.com/?3GmcBp)

azizsoft
24-09-2013, 10:53 PM
بسم الله الرحمن الرحيم
بالنسبة للصورة الثانية أين أمر تشغيل الملف
mySound.play();

azizsoft
24-09-2013, 11:08 PM
الاستفسار الأول : تمت اضافة الملفات الصوتية دون مشاكل في المرفقات ملف مفتوح

امل الماضي
25-09-2013, 06:37 AM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .
موفق بإذن الله ... لك مني أجمل تحية . موفق بإذن الله ... لك مني أجمل تحية .

خادم المسلمين
25-09-2013, 04:32 PM
الاستفسار الأول : تمت اضافة الملفات الصوتية دون مشاكل في المرفقات ملف مفتوح


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

عبدالله اوحموش
04-02-2014, 07:27 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

أبو فارس
07-02-2014, 01:43 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

كاو دهوكي
07-02-2015, 01:20 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

خادم المسلمين
25-09-2018, 01:10 PM
:abc_152::abc_152: