آموزش کار با صدا در as3.0 (فارسی)

Mr. LonelY

کاربر فعال
سلام
این آموزش فارسی کار با صدا در as3.0 هست که به درخواست آقای amird واستون میزارم.
این هم لینک انگیسیشه که خیلی کامل تره
http://forum.majidonline.com/showthread.php?t=129096

این آموزش شامل 4 بخشه

بخش اول
ساخت دکمه های Play & Stop
بخش دوم
ساخت دکمه Pause
بخش سوم
ساخت دکمه Mute
بخش چهارم
ساخت دکمه کم و زیاد کردن صدا

بخش به بخش واستون میزارم.
 
آخرین ویرایش:

Mr. LonelY

کاربر فعال
بخش اول

بخش اول
ساخت دکمه های Play & Stop
خوب ما تو این بخش میخوایم دو تا دکمه درست کنیم. یکی واسه ی Play و یکی دیگه هم واسه ی Stop که با زدن هر کدوم از دکمه ها کار مربوط به خودشون انجام بشه.
برای شروع دوتا لایه درست میکنیم یکی واسه طراحی و دیگری واسه کد نویسی.
تو لایه طراحی دوتا دکمه درست میکنیم، یکی واسه ی Play و یکی دیگه هم واسه ی Stop.

قسمت کد نویسی:
Instance Name ها
دکمه ی Stop = stop_btn
دکمه ی Play = play_btn

این کد ها رو تو لایه ی کد نویسی و در فریم اول (فریم خالی) وارد کنید.
PHP:
 var music:Sound = new Sound(new URLRequest("Music 1.mp3"));
var sc:SoundChannel;

خوب ما اینجا از کلاس Sound استفاده میکنیم
یه متغیر به نام music از کلاس Sound درست میکنیم و در قسمت URLRequest آدرس آهنگ مورد نظرمون رومیدیم.
برای دسترسی به کنترل های صدا یه متغیر به نام sc از نوع SoundChannel تعریف میکنیم.

خوب ما دوتا تابع تعریف میکنیم، یکی واسه Play و دیگری هم واسه Stop.

تابع برای Stop
کد های زیر رو در ادامه ی کد های قبلی وارد کنید.
PHP:
 stop_btn.addEventListener(MouseEvent.CLICK, stopMusic);
function stopMusic(e:Event):void
{
 sc.stop();
}

خوب ما برای رویداد کلیک دکمه ی Stop تابعی با نام stopMusic رو نوشتیم.
در تابع stopMusic آهنگ رو با دستور sc.stop قطع میکنیم.

تابع برای Play
کد های زیر رو در ادامه ی کد های قبلی وارد کنید.
PHP:
play_btn.addEventListener(MouseEvent.CLICK, playMusic);
function playMusic(e:Event):void
{
 sc = music.play();
}
خوب ما برای رویداد کلیک دکمه ی Play تابعی با نام playMusicرو نوشتیم.
در تابع stopMusic آهنگ رو با دستور sc = music.play قطع میکنیم.

اگه جایی سوال داشتید بپرسید.

فایل برنامه:
 

پیوست ها

  • sound.rar
    445.9 کیلوبایت · بازدیدها: 121

Mr. LonelY

کاربر فعال
کامل تر کردن بخش اول

برای کامل تر کردن یا زیبا سازی یا بهینه سازیه این برنامه تصمیم گرفتم یه تغییرات کوچیکی توش بدم.

قسمت کد نویسی برنامه رو باز کنید

در خط اول این کد رو اضافه کنید
PHP:
stop_btn.visible=false;
در داخل تابع Stop این کد هارو اضافه کنید
PHP:
 play_btn.visible=true;
 stop_btn.visible=false;
در داخل تابع Play این کد هارو اضافه کنید
PHP:
 play_btn.visible=false;
 stop_btn.visible=true;
بعد برید رو صفحه ی اصلی تون (قسمت طراحی) دکمه های Play و Stop رو روی هم قرار بدید به طوری که مختصات هر دوتا یکی باشه.

حالا اجرا کنید.
شما میتونید اینو در گوشه ی صفحه ی اصلی برنامتون یا سایتتون یا ... استفاده کنید


فایل برنامه:
 

پیوست ها

  • sound.rar
    445.3 کیلوبایت · بازدیدها: 113
آخرین ویرایش:

Mr. LonelY

کاربر فعال
بخش دوم

بخش دوم
ساخت دکمه Pause
خوب ما تو این بخش میخوایم دکمه ی Pause رو به برناممون اضافه کنیم.
پس تو محیط طراحیمون یه دکمه ی دیگه درست میکنیم و Instance Nameش رو pause_btn قرار میدیم.

قسمت کد نویسی برنامه رو باز کنید.
این کد رو در ادامه ی محل تعریف متغیر ها وارد کنید.
PHP:
var isPlaying:Boolean = false;
var pos:Number = 0;
خوب ما اینجا دوتا متغیر جدید تعریف کردیم.
اولی متغیری به نام isPlaying از نوع Boolean و مقدار false، این متغیر برای اینه که ما متوجه بشیم که چه موقع آهنگ ما در حال پخش است و چه موقع در حال stop.
اهنگ در حالت پخش isPlaying = true
آهنگ در حالت قطع isPlaying = false

دومین متغیر به نام pos و از نوع Number و مقدار 0 است، این متغیر قراره مکان یا موقعیت یا زمانی که آهنگ Pause میشه رو واسمون نگه داره. (در واقع یک عدد رو نگه میداره)

خوب ما الان میخوایم برای رویداد کلیک دکمه ی دکمه Pauseیه تابع با نام pauseMusic بنویسیم.
تابع برای Pause
این کد هارو در ادامه ی کد های قبلیتون اضافه کنید.
PHP:
pause_btn.addEventListener(MouseEvent.CLICK, pauseMusic);
function pauseMusic(e:Event):void
{
 if (isPlaying)
 {
  pos = sc.position;
  sc.stop();
  isPlaying = false;
 }
}
ما برای این دکمه شرط میزاریم، میگیم که اگه آهنگ در حالت پخش بود (یعنی اگه isPlaying = trueبود) :
مکان یا موقعیت یا زمانی که آهنگ در حالت پخش بود رو در متغیر pos ذخیره کنه و
آهنگ رو قطع یا stop کنه و
isPlaying را false کنه.

خوب حالا ما باید تابع های play و stop رو تغییر بدیم.

تابع برای Play
کد های زیر رو جایگزین کد های تابع Play میکنیم.
PHP:
play_btn.addEventListener(MouseEvent.CLICK, playMusic);
function playMusic(e:Event):void
{
 if (!isPlaying)
 {
  sc = music.play(pos);
  isPlaying = true;
 }
}
تو این دکمه هم شرط وجود داره، ما تو این شرطمون میگیم که اگه آهنگ در حالت قطع بود (یعنی اگه isPlaying = false بود) :
آهنگ رو از نقطه ی pos شروع کنه (محتویات pos رو توی sc قرار میده ) و
isPlaying را true کنه.
تابع برای Stop
کد های زیر رو جایگزین کد های تابع Stop میکنیم.
PHP:
stop_btn.addEventListener(MouseEvent.CLICK, stopMusic);
function stopMusic(e:Event):void
{
 if(sc != null)
 {
  sc.stop();
  pos = 0;
  isPlaying = false;
 }
}
تو این دکمه هم شرط وجود داره، ما تو این شرطمون میگیم که اگه محتویات متغییر sc مخالف 0 بود (اگه یادتون باشه ما تو تابع Play محتویات pos رو توی sc قرار دادیم) :
آهنگ رو Stop کنه و
محتویات pos رو 0 کنه و
isPlaying را false کنه.

اینم از این بخش، اگه جایی رو نفهمیدید یا متوجه نشدید حتما بپرسید.


فایل برنامه:

 

پیوست ها

  • pause.rar
    446.6 کیلوبایت · بازدیدها: 113

++Hadi++

Active Member
مرسی عزیزم از لطفی که کردید ...
امیدوارم تو همه کارها موفق و مؤید باشین...
بای...
 

Mr. LonelY

کاربر فعال
بخش سوم

بخش سوم
ساخت دکمه Mute

خوب ما تو این بخش میخوایم به شما آموزش بدیم که چه طوری یه دکمه ی Mute رو درست کنید.
ما تو این قسمت یه مووی کلیپ درست میکنیم، راجعبه ساختش توضیح نمیدم چون خیلی طولانی میشه، تو فایل برنامه هست خودتون ببینید، سادست.

و Instance Name این مووی کلیپ رو mute_mc میزاریم.

قسمت کد نویسی برنامه رو باز کنید.
این کد رو در ادامه ی محل تعریف متغیر ها وارد کنید.
PHP:
var soundVolume:Number = 1;
var muted:Boolean = false;
mute_mc.buttonMode = true;
خوب ما اینجا یه متغییر به نام soundVolume و نوع Number تعریف کردیم و مقدار اولیه ش رو هم 1 گزاشتیم (یعنی صدا فعاله).
هروقت که soundVolume ، 1 باشه صدا فعاله و هروقت که 0 باشه صدا غیر فعاله.

تو خط دوم یه متغییر دیگه به نام muted از نوع Boolean و مقدار false ، این متغیر برای اینه که ما متوجه بشیم که چه موقع آهنگ صدا داره و چه موقع صدا نداره.

خط آخر هم که مشخصه، buttonMode مووی کلیپ mute_mc رو فعال میکنیم

خوب حالا ما یه تابع برای صدا مینویسیم.

تابع برای Mute
کد های زیر رو به برنامتون اضافه کنید.
PHP:
mute_mc.addEventListener(MouseEvent.CLICK, mute);
function mute(e:MouseEvent):void
{
 if (sc != null)
 {
  var st:SoundTransform;
  if (muted)
  {
   st = new SoundTransform(soundVolume);
   sc.soundTransform = st;
   mute_mc.gotoAndStop("On");
   muted = false;
  }
  else
  {
   st = new SoundTransform(0);
   sc.soundTransform = st;
   mute_mc.gotoAndStop("Mute");
   muted = true;
  }
 }
}
خوب ما تو این تابعمون از if تو در تو استفاده کردیم.
ما تو شرط اولمون میگیم که اگه محتویات متغییر sc مخالف 0 بود (به تابع Stop رجوع کنید) کار های زیر رو انجام بده.
یه متغییر دیگه به نام st از کلاس SoundTransform تعریف کردیم.
حالا شرط دمو رو چک میکنیم.
تو شرط دوم گفتیم که اگه muted برابر false شد:
محتویات soundVolume (که اول تعریف کردیم و مفدار 1 بهش دادیم) رو بریز تو متغییر st و
محتویات st رو توی sc.soundTransform قرار بده و
بره توی مووی کلیپ و فریم On رو اجرا کنه (برای تغییر شکل) و
مقدار muted رو false کنه.
وگرنه یا else
مقدار st رو 0 کنه و
st رو توی sc.soundTransform قرار بده و
توی مووی کلیپ و فریم Mute رو اجرا کنه (برای تغییر شکل) و
مقدار muted رو trueکنه.

اینم از این بخش، اگه جایی رو نفهمیدید یا متوجه نشدید حتما بپرسید.

فایل برنامه:
 

پیوست ها

  • mute.rar
    447.8 کیلوبایت · بازدیدها: 105

Mr. LonelY

کاربر فعال
بخش چهارم

بخش چهارم
ساخت دکمه کم و زیاد کردن صدا

خوب ما تو این بخش میخوایم دو تا دکمه درست کنیم. یکی واسه ی زیاد کردن صدا و یکی دیگه هم واسه ی کم کردن صدا که با زدن هر کدوم از دکمه ها کار مربوط به خودشون انجام بشه.

Instance Name ها
دکمه ی زیاد کردن صدا = up_btn
دکمه ی کم کردن صدا = down_btn

کد های زیر رو در ادامه ی کد هاتون اضافه کنید.

توضیحات مربوط به هر دستور رو جلوش دادم، اگه جایی رو متوجه نشدین یا سوال داشتید بپرسید.

PHP:
var soundControl:SoundChannel = new SoundChannel();//برای دست رسی به کنترک صدا از کلاس رو به رو استفاده میکنیم
var volumeControl:SoundTransform = new SoundTransform();//برای تغییر در کنترل ها از کلاس رو به رو استفاده میکنیم
up_btn.addEventListener(MouseEvent.CLICK, increaseVolume);//وقتی دکمه ی زیاد کردن صدا زده شد تابع مربوطه رو اجرا میکنه
down_btn.addEventListener(MouseEvent.CLICK, decreaseVolume);//وقتی دکمه ی کم کردن صدا زده شد تابع مربوطه رو اجرا میکنه
function increaseVolume(event:MouseEvent):void
{
 //برای زیاد کردن صدا
 volumeControl.volume += .1;
 soundControl.soundTransform = volumeControl;
}
function decreaseVolume(event:MouseEvent):void
{
 //برای کم کردن صدا
 volumeControl.volume -= .1;
 soundControl.soundTransform = volumeControl;
}

اینم بخش آخر آموزش کار با صدا
امیدوارم لذت ببرید و ازش استفاده کنید!
 

پیوست ها

  • Volume_Control.rar
    448.6 کیلوبایت · بازدیدها: 127

maryaafra

New Member
سلام . واقعا مرسی که این آموزش های خوبه می ذارین من که کلی استفاده کردم :oops:
 

جدیدترین ارسال ها

بالا