نوشته شده

پخش صدا در اکشن اسکریپت ۳ – بخش چهارم ۱۲

با توجه به این که شاید پروژه نهایی ارائه شده در بخش سوم این آموزش کامل نمی باشد ، سعی می کنیم در این بخش از آموزش نکات ریزی که ممکن هست در کار با صدا ها و مثال های ذکر شده در آموزش قبل به آنها بر بخورید را در این مطلب توضیح دهیم  :

موردی که در آموزش قبلی احتمالا به آن بر خورده اید ، پخش چند باره با کلیک مجدد بر روی دکمه Play می باشد که این امر به دلیل عدم چک کردن در حال پخش بودن می باشد ، ما در این بخش با ایجاد variable ی با نام isPlay از نوع Boolean و مقدار دهی اولیه true به آن می توانیم با مقدار دهی این متغییر در طول برنامه و با شرطی ساده در تابع مربوز به پخش صدا جلوی پخش مجدد را بگیریم.

function onClickPlay(e:MouseEvent)
{
        if (! isPlay)
        {
                myChannel = mySound.play(lastPosition);
                myChannel.soundTransform = myTransform;
                isPlay = true;
        }
}

مورد بعدی برای مواردی که شما نیاز دارید دکمه Stop را هم به همراه Pause و Play داشته باشید که برای این مورد هم در کد زیر بدون حذف این مورد می توانید مشاهده نمایید.

function onClickStop(e:MouseEvent):void
{
        myChannel.stop();
        lastPosition = 0;
        isPlay = false;
}

مورد بعدی برای افرادی که کد را به صورت External می نویسند و نیاز به وارد کردن کلاس ها قبل از استفاده از آنها را دارند نیز در کد زیر مجموعه کلاس ها وارد شده قابل مشاهده می باشد.

این کد برای تمامی ورژن های نرم افزار فلش که اکشن اسکریپت ۳ را پشتبانی می کنند قابل استفاده می باشد

کد نهایی پروژه پخش صدا در اکش اسکریپت ۳ »

import flash.media.Sound;
import flash.net.URLRequest;
import flash.media.SoundChannel;
import flash.events.MouseEvent;
import flash.media.SoundTransform;

var mySound:Sound = new Sound();
var myChannel:SoundChannel = new SoundChannel();
var myTransform:SoundTransform = new SoundTransform();
var lastPosition:Number = 0;
var isPlay:Boolean = true;
mySound.load(new URLRequest("myFavSong.mp3"));
myChannel = mySound.play(0);
myTransform.volume = 0.5;
myChannel.soundTransform = myTransform;

pause_btn.addEventListener(MouseEvent.CLICK , onClickPause);
function onClickPause(e:MouseEvent)
{
        lastPosition = myChannel.position;
        myChannel.stop();
        isPlay = false;
}

play_btn.addEventListener(MouseEvent.CLICK , onClickPlay);
function onClickPlay(e:MouseEvent)
{
        if (! isPlay)
        {
                myChannel = mySound.play(lastPosition);
                myChannel.soundTransform = myTransform;
                isPlay = true;
        }
}

stop_btn.addEventListener(MouseEvent.CLICK, onClickStop);

function onClickStop(e:MouseEvent):void
{
        myChannel.stop();
        lastPosition = 0;
        isPlay = false;
}

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

امید است که از این بخش از آموزش ها نهایت بهره را برده باشید.
موفق و پیروز باشید


مطالب مرتبط

محمد ، ندای رحمت …
حضرت محمد (ص) در عام الفیل به سال 570 میلادی در روز...
روزی تو خواهی آمد – از سوی مهربانی
سلام خدمت همه دوستان ، میلاد یگانه منجی عالم...
روشی ساده برای کدگذاری روی String
در این مطلب نحوه encrypt کردن مقادیر String آموزش داده...
navigateToURL در اکشن اسکریپت ۳
یکی از مواردی که به احتمال زیاد هر فردی نیاز...

آدرس ایمیل شما :


اشتراک فید نظرات

تا به حال ۱۲ نظر به این مطلب داده شده است

  1. محمد شمس می‌گه:

    سلام

    مطلب خوبی بود.
    دو سوال:
    ۱. شما کرک MDMZinc 3.0.20 سراغ نداری؟ برای FP10.1.5 اصلا MDM کرک شده هست؟
    ۲. جهت حفظ امنیت پروژه، به غیر از swf-encrypt از ابزار مناسبی دیگری استفاده کرده‌اید؟؟

    تشکر و موفق باشید

    • سلام ، ممنون برای نظرتون محمد شمس عزیز
      ۱ – خیر متاسفانه این نسخه هنوز کرک نشده است… ولی برای ورژن فلش پلیر ۹ ورژن MDM ZINC 3.0 نسخه Silent موجود می باشد(کرک شده)
      ۲ – در واقع روش اصلی همان Swf Encrypt می باشد که هم برای حفظ کد و هم الگوریتم های اتصال به سمت سرور مورد استفاده قرار می گیرد که برای بیچیده شدن خروجی حاصله از این نرم افزار می توان رشته های متنی را با چند پیوند از رشته متنی ایجاد نمود تا امنیت بالا تری داشته باشد
      البته می توان با تغییرات در پسوند و…. هم کارهایی کرد که خیلی موثر نمی باشد ، و به نظر بنده لازم هم نیست ،البته برای استفاده برای ملتی مدیا هم فکر می کنم روش دیگری برای تغییر Header فرمت فایل وجود دارد که بنده تا به حال از این روش استفاده نکرده ام و اطلاعات زیادی در مورد این روش ندارم (در کل این روش را اصولی نمی بینم و توصیه هم نمی کنم)

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

  2. محمد شمس می‌گه:

    سلام

    ممنون.
    راستی خیلی خوبه که شما اون بالا از لامپ کم مصرف استفاده کرده‌اید. صرفه جویی کار خوبیه. :) ضمنا آواتارتون هم به غیر از رنگ موهاش، با شما مو نمیزنه. چشمهاش هم که همیشه دنبال ماوسه خیلی باحاله. :)

    موفق باشید

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

  3. محمد حسین می‌گه:

    سلام بهروز جان…
    بلاگت خیلی قشنگ شده…

    مطالب واقعا مفیده!
    هر موضوع که تموم شد(مثلا پخش صدا)، یه کتاب PDF به همراه چند سورس نمونه قرار بده تا کاربردی تر و قابل دسترس تر بشه… ;)
    همیشه موفق و پیروز باشی…

  4. محمد حسین می‌گه:

    سلام دوباره…
    بهروز جان یه قالب خیلی قشنگ وردپرس پیدا کردم در باب سایت(نجوم و…)
    گفتم ببینم اگه وقت و حوصله داری با هم فارسیش کنیم! تقریبا کار اولم حساب میشه ولی به غیر از CSS هاش و نامنظم نشان دادن در IE هیچ مشکل حادی ندارم…
    اگه مشکلی نداشتی منتظرتم ;)
    EruDiTe.iR | MHM5000

  5. محمدحسین می‌گه:

    سلام استاد

    اگه وقت داری یه قالب برای من طراحی کنه داداش من هم یه کاربر تو مجید
    آنلاین است ولی هنوز یه قالب برا من درست نکرده !

  6. مهدی می‌گه:

    سلام آقا بهروز

    یه سوال داشتم و اونم اینکه من اگر بخوام بجای یک آهنگ از چند آهنگ استفاده کنم و به کارم دکمه های next و bak قرار دهم تا بتونم اهنگ ها رو عوض کنم باید در کد بالا چه تغییراتی بدم

    • سلام مهدی عزیز
      می توانید تابعی مانند نمونه زیر ایجاد کنید و برای هر مورد به صورت ساده فراخوانی کنید.

      function newSoundPlay(soundfile:String):void {
      mySound.load(new URLRequest(soundfile));
      myChannel = mySound.play(0);
      myTransform.volume = 0.5;
      myChannel.soundTransform = myTransform;
      }
      

      یک مثال ساده :

      newSoundPlay("newMp3file.mp3");
      

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

شما می توانید نظر خود را در اینجا وارد نمایید

* بخش های ستاره دار الزامی است

کاربر آنلاین