خانه » مالتی مدیا » ادوبی فلش » پخش صدا در اکشن اسکریپت ۳ – بخش اول

پخش صدا در اکشن اسکریپت ۳ – بخش اول

در این آموزش به پخش صدا در ActionScript 3.0 می پردازیم و به موارد مثل پخش صدا از فایل های داخلی و خارجی و تغییر ولوم صدا ها می پردازیم ، با این که این به بحث بسیار گسترده میباشد که به دلیل پیشرفته بودن و نیاز داشتن به پیش نیاز به این بحث در حال و ادامه آن به صورت پیشرفته انشاء الله در آینده خواهیم پرداخت.

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

  1. مقدمه ای بر کار با کلاس های صدا در اکشن اسکریپت ۳.
  2. پخش یک صدای داخلی.
  3. پخش یک صدای خارجی.
  4. Stop کردن یک صدا.
  5. Pause کردن یک صدا.
  6. تغییر ولوم صدا.

مقدمه ای بر کار با کلاس های صدا در اکشن اسکریپت ۳
برای کار کردن با صدا ها در ActionScript 3.0 نیاز به همیاری گرفتن از چندین کلاس با هم می باشد. البته بیشتر موارد شبیه به ورژن های قبلی میباشد و کنترل در ورژن جدید بیشتر و با دقت بالاتری انجام می شود، در زیر لیستی از کلاس های مرتبط را با توضیح می آوریم.

  1. Sound Class – این کلاس اصلی مربوط به صدا ها می باشد ، این صدا برای محل شروع کد مربوطه به صدا می باشد و برای شروع پخش صدا استفاده می شود.
  2. SoundChannel Class – یک شی صدا می تواند در کانال های مختلف پخش شود ، این کلاس امکانات را جهت کانال های صوتی برای کنترل بر روی یک شی صدا در اختیار ما قرار می دهد که این کنترل ها به صورت ساده شامل امکان stop کردن پخش یک صدا می شود و….
  3. SoundTransform Class -این کلاس برای کنترل بر ولوم صدا و بالانس صدا به سمت چپ و راست استفاده می شود.
  4. SoundMixer Class -این کلاس به صورت عمومی برای فلش پلیر می باشد که توابع کنترلی بر روی تمامی صدا ها را در اختیار شما قرار می دهد به صورت مثال ساده ایست کردن تمامی صداهای فلش پلیر و…

سعی شده در مورد موارد بالا در ادامه مطلب نکاتی ذکر شود ولی برای اطلاع کامل از متدهای این کلاس ها بهتر می باشد از راهنمای موجود در نرم افزار فلش استفاده نمایید.

پخش یک صدای داخلی
به صورت عادی فلش فقط فرمت mp3 (البته در فلش پلیر ۱۰ امکانات پشتیبانی جدیدی هم افزوده شده که در مطالب بعدی بحث خواهد شد) را پشتیبانی می کند و به راحتی می توانید این نوع فایل را با استفاده از کلاس صدا Sound class مورد استفاده قرار بدهید ، کلاس Sound توانایی پخش فایل های صوتی داخلی فلش (mp3) را داراست و یا فایل های خارجی (فایل های ی که خارج از برنامه فلش هستند) در ادامه ما به پخش یک فایل که به صورت داخلی (داخل پروژه فلش fla) می باشد می پردازیم و با اکشن اسکریپت آن را فراخوانی و پخش خواهیم نمود.

در مثال زیر نیاز به یک فایل mp3 برای پخش می باشد.

در مرحله اول شما نرم افزار فلش را باز کرده و یک پروژه جدید فلش AS3 باز نمایید و به File>Import>Import to Library رفته و بعد از کلیک فایل مورد نظر خود را از نوع Mp3 را انتخاب کرده و روی open کلیک نمایید ، در زیر تصویر از محل مربوطه برای وارد کردن فایل را مشاهده می کنید.

خوب تا اینجا فایل شما وارد فلش شد حال کتابخانه فلش را با دکمه های (Ctrl+L) باز نمایید و صدایی که وارد نمودید را در آن بیابید ، ما می خواهیم فایل را با تعیین کردن مشخصه Linkage برای استفاده در اکشن اسکریپت و فراخوانی آن آماده کنیم ، بر روی فایل صدا در کتابخانه فلش کلیک راست نمایید و گزینه Linkage را اتخاب نمایید تا پنجره مربوطه باز شود ، تیک درون Export for ActionScript را بزنید و نام صدای خود را در بخش Class وارد نمایید به طور مثال MyFavSong را وارد می کنیم و روی OK کلیک کنید ، حال شما پیغام هشدار مبنی بر این که کلاس خورجی ایجاد می شود دریافت خواهید نمود که برای ادامه بر روی OK کلیک می کنیم.
با این کار شما می توانید این فایل صورتی را با کلاس MyfavSong در اکشن اسکریپت فراخوانی نمایید.

هم اکنون ما یک فایل Mp3 داریم که برای استفاده در اکشن اسکریپت آماده می باشد هم اکنون زمان نوشتن کد می باشد بر روی یکی از فریم های تایم لاین کلیک کرده و از منوی راست کلیک Actions را انتخاب نمایید برای نمایش پانل اکشن. کلید میان بر F9 می باشد.

برای این که ار صدا استفاده کنیم می بایست از new استفاده کرده و کلاس مربوطه را به یک var از نوع Sound بدهیم و حال می توانیم متدهای کلاس رو فراخوانی کرده و مثلا با .play() اقدام به پخش آن نماییم.

var mySound:Sound = new MyFavSong();
mySound.play();

در کلاس Sound با متد .play() می توانید یک صدا را پخش نمایید ، به صورت پیش فرض این متد صدا را از ابتدا پخش می نماید شما با وارد کردن عددی بر حسب میلی ثانیه میتوانید محل شروع را تغییر دهید این مقدار عددی می بایست به عنوان آرگمان متد Play وارد شود.

برای مثال :

mySound.play(150)

برای تست دکمه های (Ctrl+Enter) را بفشارید……
و نتیجه را مشاهده نمایید.

توصبه می شود بخش دوم مبحث پخش صدا در اکشن اسکریپت ۳ را نیز مطالعه نمایید

Print Friendly, PDF & Email
تگ ها :
پیوند مطلب قبلی
پیوند مطلب بعدی

درباره بهروز پولادرگ

متولد : ۵ مرداد سال ۱۳۶۷ ، حرفه : ادوبی فلش ، برنامه نویسی و طراحی وب ، طراحی گرافیک ، مالتی مدیا ، نرم افزار های تحت وب

23 نظر

  1. سلام روزتون بخیر
    مثل همیشه یک سوال داشتم. من می خواهم در اکشن اسکریپت۳ از کامپوننت درخت استفاده کنم به طوری که علامت (+) در سمت راست آن و نوشته هاهم از راست به چپ قرار بگیرند یعنی یک درخت برای نوشته های فارسی.
    ۲- آیا در فلش امکانی برای شبیه سازی حرکت دوربین وجود دارد لطفا توضیح دهید.
    ۳- لطفا نحوه ساخت مووی کلیپ داینامیک را توضیح دهید
    ۴- اگر بخواهیم متنی را که درون یک فیلد متنی قرار دارد همزمان با صدایی که از بیرون لود می شود اسکرول کنیم و یا حرکت یک کاراکتر یا یک جلوه ویژه را با صدایی از بیرون همزمان سازی کنیم بهترین راه کار کدام است؟
    پیشاپیش سپاسگذارم

    • سلام
      جواب ها به ترتیب :
      ۱ – می بایست در ساختار و کد کامپوننت تغییراتی اعمال نمایید و یا از نمونه های دیگر استفاده کنید که تغییر دادن آنها ساده تر باشد
      ۲ – بله ، ولی این امر به تبحر شما در نمایش این مورد بر می گردد در واقع وجود دوربین مثل برنامه های ۳ بعدی در فلش دیده نمی شود ولی شما می بایست بخش استیج را نمای نهایی خروجی تصور کنید
      در نسخه ۱۰ فلش پلیر با فعال شدن محور z در فلش حرکت دادن اشیاء و متحرک سازی آنها به صورت طبیعی تر و شبیه تر به حالت دوربین ایجاد شده
      مثلا برای این که راه رفتن شخصی را در فلش ایجاد کنید شما می بایست پس زمینه را متحرک و کاراکتر را با حرکت محدود ایجاد کنید که در نتیجه چیزی بر عکس این موضوع به نظر بیننده می آید در مورد دور بین هم شما می بایست تمامی عناصر صفحه را به نسب مورد نظر کوچک ، بزرگ و…. نمایید تا نمایی شبیه به حرکت دوربین ایجاد شود
      راه بعدی استفاده از نرم افزار های ۳ بعدی می باشد که خروجی vector و فلش را ساپورت می کنند مثل Swish3D

      3 – فکر می کنم در آموزش ها به این مورد پرداخته ام

      var mc:MovieClip = new MovieClip();
      addChild(mc);
      

      5 – بارگزاری کامل صدا و بعد پخش آن در هر بخش مورد نیاز…

      موفق و پیروز باشید

  2. سلام .من با اکشن اسکریپت ۲ کار می کنم و می خواهم صدای کاربر رو ضبط و در مواقع خاص برای خودش پخش کنم ولی اصلا در این مورد اطلاعاتی ندارم.اینکه چگونه تشخیص بدم میکروفن وصل هست؟صوت رو چگونه ضبط و کجا ذخیره کنم

  3. نرم افزاری می شناسید که مثل قسمت تلفظ بابیلون از روی نوشته بتونه تلفظ کنه نه اینکه تلفظ ها رو ذخیره کنیم.و بشه تو فلش استفتده کرد؟

    • این جور فرایند ها می بایست روی وب با کمک برنامه نویسی های سمت سرور تحلیل شود و خروجی فایل صوتی داده شود تا بتوان آنها را در فلش استفاده کرد
      به دلیل سنگین بودن محاسبه و نیاز داشتن به منابعی از حروف و بعضی کلمات و … امکان محاسبه مستقیم توسط فلش نیست و اگر هم باشد برای وب خیلی مشکل دار می می شود
      این روش های به صورتی انجام می شود که با دادن رشته متنی متن به برنامه خروجی فایل صوتی همان متن داده میشود که آن زمان می توان این مورد را در فلش استفاده نمود
      موفق و پیروز باشید

  4. ممنون از جوابتون ولی اگه بشه با یک برنامه جانبی در ارتباط بود و متن رو به اون داد تا خودش فایل صوتی رو ایجاد کنه به نظر می آد که عملی باشه

  5. همچین نرم افزاری نمی شناسین؟

    • فکر نمی کنم به صورت آماده باشه ، من ندیدم! برای وب می بایست خودتون بنویسید
      البته احتمال داره بشه با کمک سرویس های آنلاینی که خدمات رو میده مثل گوگل و … که این امکان رو دارند و با استفاده از سرویس اون و استفاده از خروجی آنلاینی که میده هم این کار رو کرد می بایست روی این موضوع تحقیق بشه و ممکن بودن اجرا فایل های صوتی خروجی این سایت ها برای فلش تست بشه.

  6. سلام
    میخواستم بدونم میشه یه افکتی چلوه پیدا کرد که به کارم جذابیت بده مثل رد شدن نور یا ستاره درخشان ممنون میشم راهنمایی کنید هرچه سریع

    • سلام
      خوب این موارد بستگی به خلاقیت شما دارد ، شما ابتدا می بایست بخشی را که می خواهید افکت داشته باشد را Mask نمایید و در بخش Masked یک MovieClip ایجاد کنید و درون آن مثلا انیمیت نور خود که می تواند یک گرادیتنت از سفید به سفید با شفافیت (alpha) صفر باشد ، را ایجاد نمایید حال می توانید خلاقیت به خرج داده و از تعداد زیادی MovieClip که مثلا حرکت تکرای چشمک را دارد نیز در این انیمیت استفاده کنید تا جلوه بهتری ایجاد نمایید
      البته این موارد توسط استفاده از فرامین اکشن اسکریپت می توانید جلوه های پویاتری نیز ایجاد نمایید و جای مثلا ستاره ها را در هر اجرا به صورت رندوم عوض نمایید و…
      موفق و پیروز باشید

  7. با سلام می خواستم بدونم چطور می شود یک فایل صوتی را که در یک برنامه فلش لود می کنیم بتونیم برای چندمین بار با دستور خاصی تکرار کینم.فرضا ً در کد زیر آیا امکان دارد ؟اگر وجوددارد لطفاً کدش را می دانید ایمیل بفرستید .با تشکر,true
    loadsound(“d:\test.mp3”)

  8. با سلام
    نمی دانم در رابطه با کامپوننت فلاش در زبان های برنامه نویسی فعالیتی داشته اید یا نه اما
    سوال بنده
    من یک فایل فلاش دارم که در صورت اجرا شدن در کامپوننت همراه با صدا اجرا خواهد شد.
    می خواستم ببینم می شود با خاصیت یا متدی از خواص کامپوننت در برنامه نویسی یا به شکلی دیگر میزان صدای پخش شده را کنترل و یا بصورت بی صدا در آورم یا نه؟

  9. سلام.میخوام وفتی دکمه play رو زدم وشروع به اجرا کرد و بعد از stop دوباره play رو زدم دقیقا از همونجایی که stop کرده بودم شروع به اجرا کنه لطفا کمکم کنید.
    مرسی

  10. عـلیـــــرضــ ــا

    سلام آقای پولادرگ
    آیا راهی هست که فایل صوتیی که به صورت داخلی بار گذاری شده هنگام لود شدن پخش بشه ؟!! یعنی کاربر منتظر نمونه تا فایل به صورت کامل لود بشه بعد شرو به پخش کنه…

    • سلام
      اگر از رویداد compelete بارگزاری استفاده نکنید و دستور Play را بدهید به صورت پیش فرض این مورد انجام می شود

      var request:URLRequest = new URLRequest('ravan(etemadebenafs).mp3');
      var mySound = new Sound();
      mySound.load(request);
      var song = mySound.play();
      

      موفق و پیروز باشید

  11. تازه ی تازه ی تازه

    درود بر شما. باز یه مشکل جدید دارم دوست عزیز.
    یه فایل mp3 دارم که هر کاری میکنم add to library نمیشه.
    دلیل چی میتونه باشه…

    • سلام
      اگر در وارد کردن دیگر فایل های صوتی مشکلی ندارید
      مشکل از آن فایل هست ، می توانید توسط برنامه تبدیل آن را به همان فرمت خودش دوباره تبدیل کنید تا از مشکلی دارد رفع شود ، یا توسط برنامه های ویرایش صوت باز کرده و دوباره خروجی بگیرید که اگر مشکلی در آن هست رفع شود ، مشکل می تواند مثلا از ناقص دانلود شدن و … باشد
      موفق و پیروز باشید

  12. سلام من از روش فایل خارجی استفاده کردم و دکمه های play و pause و حتی تایم لاین هم براش گذاشتم بعد که خروجی گرفتم متوجه شدم ک اگر خود فایل صوتی در کنار فایل خروجیم نباشه صوت کار نمیکنه بعد خواستم از فایل داخلی استفاده کنم اما دیگه دکمه های play و pause کار نکرد میشه راهنماییم کنید؟

    • سلام و عرض ادب

      چند راه دارید اگر فایل شما ثابت هست و نمی خواهید درگیر موارد کنترل صدا شوید یک مووی کلیپ ایجاد کنید و سپس صدا را در تایم لاین قرار داده و حالت آن را روی استریم تنظیم کنید و سپس فریم ها را به اندازه صوت افزایش دهید حال به صورتی که یک مووی کلیپ را کنترل می کردید می توانید صدا را کنترل کنید.

      راه بعد قرار دادن صدا در کتابخانه فلش هست و تعیین نام برای آن در بخش تنظیمات مربوطه به کتابخانه مربوطه به فایل و در نهایت می بایست در اکشن اسکریپت وارد کنید و آن را new کنید تا بتوانید مانند صدای بارگزاری شده با آن رفتار کنید.

      مطالب مربوطه به پخش صدا در همین مجموعه را نیز بررسی نمایید.

      موفق و پیروز باشید

ارسال جواب

آدرس رایانامه شما منتشر نخواهد شد.فیلد های اجباری علامت گزاری شده اند *

*

رفتن به بالای صفحه