مشکل در بارگزاری صدا در as3

شروع موضوع توسط Mr_lesani ‏16 مارس 2011 در انجمن Action Script 3

  1. Mr_lesani

    Mr_lesani Member

    ارسال‌ها:
    221
    تشکر شده:
    176
    امتیاز دستاورد:
    16
    سلام به دوستان

    من یه سوال برام پیش اومده و اون اینه که من سه آهنگ دارم با نامهای 1 و 2 و 3 که از بیرون لود میشه و همچنین در کارم سه دکمه ی (pause_btn) (play_btn) (stop_btn ) و سه دکمه ی دیگر با نامهای (one_btn) برای لود آهنگ شماره 1 و (twoo_btn) برای لود آهنگ شماره 2 و (three_btn) برای لود آهنگ شماره 3 .

    تا اینجا توضیح بود و مشکل من اینجاست که من کد زیر را که وارد میکنم فقط برای آهنگ شماره 1 قابل اجرا است و من باید چه تغییراتی در این کد بدم تا با کلیک بر روی یکی از دکمه های (three_btn) ،(twoo_btn)، اون آهنگها اجرا شده و دکمه های (pause_btn)(play_btn)(stop_btn ) برای اونها هم اجرا بشه

    پیشاپیش از همکاریتون ممنونم :rose:

    کد (Text):
    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("Data/Sound/1.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;
    }
     
    نوشته شده توسط Mr_lesani در ‏16 مارس 2011
  2. mohammadbasri

    mohammadbasri کاربر فعال

    ارسال‌ها:
    821
    تشکر شده:
    1,122
    امتیاز دستاورد:
    93
    فرصت نداشتم کد رو نگاه کنم
    من توی یک پروژه اومدم و برای لود هر صدا یک فریم قرار دادم و کلید اجرای صدا در اصل دستور gotoAndStop داشت.
    نام متغیر صدا در هر 3 فریم یکی بود
    کار آسونتره
     
    نوشته شده توسط mohammadbasri در ‏16 مارس 2011
    Mr_lesani از این پست تشکر کرده است.
  3. clove-pink

    clove-pink کاربر فعال

    ارسال‌ها:
    80
    تشکر شده:
    83
    امتیاز دستاورد:
    6
    سلام
    شما اول اون كدي كه گذاشتي اول بسم الله صدا لود و play شه رو بردار يعني اين رو
    کد (Text):
    mySound.load(new URLRequest("Data/Sound/1.mp3"));
    myChannel = mySound.play(0);
     
    بعد شما بيا 3 تا دكمه يا مووي بساز مثلا اسم اونها رو بزار mc1 و mc2 و mc3

    حالا يه كدي ميديم بهشون كه معلوم شه هر كدوم بايد از كدوم آدرس فايل رو بخونن واسه همين اين كد رو مي نويسيم:
    PHP:
    //set the sound address
    mc1.sound_dir="Data/Sound/1.mp3";
    mc2.sound_dir="Data/Sound/2.mp3";
    mc3.sound_dir="Data/Sound/3.mp3";
    بعد يه listener واسه دكمه ها مي نويسيم:
    PHP:
    mc1.addEventListener(MouseEvent.CLICK,StartPlaying);
    mc2.addEventListener(MouseEvent.CLICK,StartPlaying);
    mc3.addEventListener(MouseEvent.CLICK,StartPlaying);
    و اينم كد function مربوط به StartPlaying

    PHP:
    function StartPlaying(e:Event){
        myChannel.stop();
        mySound=new Sound();
        trace(e.currentTarget.sound_dir);
        mySound.load(new URLRequest(e.currentTarget.sound_dir));
        myChannel = mySound.play(0);
    }
     
    نوشته شده توسط clove-pink در ‏16 مارس 2011
    Mr_lesani و JavidFlasher از این پست تشکر کرده اند.
  4. Mr_lesani

    Mr_lesani Member

    ارسال‌ها:
    221
    تشکر شده:
    176
    امتیاز دستاورد:
    16
    جناب clove-pink من طبق گفته های شما یک لایه اکشن ایجاد کرده و کدهای شما رو در آن قرار دادم و در لایه ای دیگر سه دکمه با نامهایی که شما گفتین درست کردم و فایل اون رو در کنار پوشه ی Data/Sound قرار دادم و وقتی اون رو اجرا کردم فایل من حالت پرشی داشت و درست کار نمیکرد و منم در اول کدهام یه اکشن استاپ گذاشتم تا حالت پرشی کارم برطرف بشه تا من کار رو تست کنم ولی حالت پرشی اون بربطرف نشد
    ، باید چیکار کنم ، دوستان دیگر هم اگه میدونند ، ممنون میشم

    در ضمن یعنی کل کدهای خودم رو بردارم و کد شما رو جایگزین کنم که منم همین کار را کردم یا در کنار کدهای خودم کد شما رو استفاده کنم .
     
    آخرین ویرایش: ‏17 مارس 2011
    نوشته شده توسط Mr_lesani در ‏17 مارس 2011
  5. Mr_lesani

    Mr_lesani Member

    ارسال‌ها:
    221
    تشکر شده:
    176
    امتیاز دستاورد:
    16
    دوست گرامی

    من تو فایل زیر که براتون پیوست کردم در فایلم سه تا button با همون نامها و سه تا movie clip با همون نامها که شما گفتین گذاشتم و با اجرا کردن کارم error میده ؟ :-?
     

    پیوست ها:

    • Sound_as3.rar
      اندازه فایل:
      کیلوبایت 314
      نمایش ها:
      43
    نوشته شده توسط Mr_lesani در ‏17 مارس 2011
  6. JavidFlasher

    JavidFlasher کاربر فعال

    ارسال‌ها:
    901
    تشکر شده:
    792
    امتیاز دستاورد:
    93
    سلام
    يادت رفته بود از كلاسات نمونه بگيري!
    در ضمن آبجكت هاي هم نام تو استيجتن پاكشون كن!
    PHP:
    var mySound:Sound = new Sound();
    var myChannel:SoundChannel = new SoundChannel();


    mc1.sound_dir = "Data/Sound/1.mp3"
    mc2.sound_dir = "Data/Sound/2.mp3"
    mc3.sound_dir = "Data/Sound/3.mp3"

    mc1.addEventListener(MouseEvent.CLICK,StartPlaying);
    mc2.addEventListener(MouseEvent.CLICK,StartPlaying);
    mc3.addEventListener(MouseEvent.CLICK,StartPlaying);


    function StartPlaying(e:Event)
    {
        myChannel.stop();
        mySound=new Sound();
        trace(e.currentTarget.sound_dir);
        mySound.load(new URLRequest(e.currentTarget.sound_dir));
        myChannel = mySound.play(0);
    }
     
    نوشته شده توسط JavidFlasher در ‏17 مارس 2011
    Mr_lesani از این پست تشکر کرده است.
  7. Mr_lesani

    Mr_lesani Member

    ارسال‌ها:
    221
    تشکر شده:
    176
    امتیاز دستاورد:
    16
    ممنون جاوید جان

    فقط یه سوال دیگه من باید چه کدی هم به این کدها اضافه کنم که دکمه های pause_btn برای پاوس کردن آهنگ در حال پخشم و play_btn برای خوندن آهنگ و stop_btn برای متوقف کردن آهنگ بنویسم .
     
    نوشته شده توسط Mr_lesani در ‏17 مارس 2011
  8. clove-pink

    clove-pink کاربر فعال

    ارسال‌ها:
    80
    تشکر شده:
    83
    امتیاز دستاورد:
    6
    پسر خوب تو خودت كه اون اول واسه play و pause و stop كه كد دادي:
    کد (Text):
    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;
    }
    اينها رو هم بهش اضافه كن و اينكه دكمه هايي هم واسه play و pause و stop هم با نام هايي كه تو كد استفاده كردي هم تو stage قرار بده.
     
    نوشته شده توسط clove-pink در ‏17 مارس 2011
    Mr_lesani و JavidFlasher از این پست تشکر کرده اند.
  9. Mr_lesani

    Mr_lesani Member

    ارسال‌ها:
    221
    تشکر شده:
    176
    امتیاز دستاورد:
    16
    ( clove-pink و جاوید) جان ممنونم از لطفی که کردین .

    امیدوارم همیشه رو لباتون خنده باشه :green:
     
    آخرین ویرایش: ‏17 مارس 2011
    نوشته شده توسط Mr_lesani در ‏17 مارس 2011
  10. clove-pink

    clove-pink کاربر فعال

    ارسال‌ها:
    80
    تشکر شده:
    83
    امتیاز دستاورد:
    6
    قربانت..اين حرفا چيه!!!:rose::cool:
     
    نوشته شده توسط clove-pink در ‏17 مارس 2011
  11. BehrouzPc

    BehrouzPc پــــادشــاه فــلــــش

    ارسال‌ها:
    1,909
    تشکر شده:
    3,510
    امتیاز دستاورد:
    113
    برای کامل تر شدن مبحث می توانید همه این موارد و توضحات دلیل استفاده از توابع را در این مجموعه مقالات مشاهده کنید
    پخش صدا در اکشن اسکریپت ۳ – بخش چهارم

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

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

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


    موفق و پیروز باشید.
     
    نوشته شده توسط BehrouzPc در ‏17 مارس 2011
    teshneh، hamidhp، mohammad.sub7 و 4 نفر دیگر از این ارسال تشکر کرده اند.
  12. ++Hadi++

    ++Hadi++ Active Member

    ارسال‌ها:
    3,529
    تشکر شده:
    5,799
    امتیاز دستاورد:
    36
    کلاس mp3 player من هم خیلی واسه این موارد خوبه ...
     
    نوشته شده توسط ++Hadi++ در ‏19 مارس 2011
    teshneh، mohammad.sub7، Mr_lesani و 2 نفر دیگر از این ارسال تشکر کرده اند.
  13. Mr_lesani

    Mr_lesani Member

    ارسال‌ها:
    221
    تشکر شده:
    176
    امتیاز دستاورد:
    16
    ممنون هادي جان

    راستش رو بخواي كار شما خيلي عاليه ولي من در اون حدي نيستم كه اون رو هضمش كنم

    اميدوارم منظورم رو متوجه شده باشين

    بازم دستت درد نكنه :rose:
     
    نوشته شده توسط Mr_lesani در ‏22 مارس 2011
    ++Hadi++ از این پست تشکر کرده است.

به اشتراک بگذارید