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

Mr_lesani

Member
سلام به دوستان

من یه سوال برام پیش اومده و اون اینه که من سه آهنگ دارم با نامهای 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:

کد:
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;
}
 

mohammadbasri

کاربر فعال
فرصت نداشتم کد رو نگاه کنم
من توی یک پروژه اومدم و برای لود هر صدا یک فریم قرار دادم و کلید اجرای صدا در اصل دستور gotoAndStop داشت.
نام متغیر صدا در هر 3 فریم یکی بود
کار آسونتره
 

clove-pink

کاربر فعال
سلام
شما اول اون كدي كه گذاشتي اول بسم الله صدا لود و play شه رو بردار يعني اين رو
کد:
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);
}
 

Mr_lesani

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

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

Mr_lesani

Member
دوست گرامی

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

پیوست ها

  • Sound_as3.rar
    314 کیلوبایت · بازدیدها: 43

JavidFlasher

کاربر فعال
سلام
يادت رفته بود از كلاسات نمونه بگيري!
در ضمن آبجكت هاي هم نام تو استيجتن پاكشون كن!
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);
}
 

Mr_lesani

Member
ممنون جاوید جان

فقط یه سوال دیگه من باید چه کدی هم به این کدها اضافه کنم که دکمه های pause_btn برای پاوس کردن آهنگ در حال پخشم و play_btn برای خوندن آهنگ و stop_btn برای متوقف کردن آهنگ بنویسم .
 

clove-pink

کاربر فعال
پسر خوب تو خودت كه اون اول واسه play و pause و stop كه كد دادي:
کد:
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 قرار بده.
 

Mr_lesani

Member
( clove-pink و جاوید) جان ممنونم از لطفی که کردین .

امیدوارم همیشه رو لباتون خنده باشه :green:
 
آخرین ویرایش:

BehrouzPc

پــــادشــاه فــلــــش
برای کامل تر شدن مبحث می توانید همه این موارد و توضحات دلیل استفاده از توابع را در این مجموعه مقالات مشاهده کنید
پخش صدا در اکشن اسکریپت ۳ – بخش چهارم

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

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

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


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

Mr_lesani

Member
ممنون هادي جان

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

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

بازم دستت درد نكنه :rose:
 

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

بالا