دانلود مجموعه ویدئویی آموزش اکشن اسکریپت 3

30min

Banned
با تشکر مجدد از triton یک سئوال .
من متوجه نمیشم این new کی باید استفاده یشه ؟!
مثلا :
[CPPS]var music:sound = new sound();[/CPPS]
این واسه تعریف یک شی صدا اما چیزی که در آموزش هست ابتدا میاد بدون new استفاده میکنه و میگه نیازی به تخصیص حافظه نیست و در ادامه میاد و در هر جا که لازم play بشه new رو هم میزنه .
من میخوام بدونم دقیقا چه موقع این new استفاده میشه ؟!
 

30min

Banned
یه سئوال دیگه ...
تو این کدی موزیک پلیر که مال تمرین 13 هست اگر چند بار play رو کاربر فشار بده به همون تعداد موزیک تکرار میشه و در صورتی که یک نفر اعصاب نداشته باشه مثل من !!!! و هی کلیک کنه رو play ....
چطور میشه این ایراد رو رفع کرد ؟! :-?
 

++Hadi++

Active Member
شی new تو برنامه نویسی OOP یه شی جدید از یه کلاس می سازه و اونو تو یه حافظه ای میریزه.شما می تونید اونو تو یه متغیر از نوع صدا بریزید یا به صورت محلی تو یه متغیر محلی بریزید و یا همینجوری به صورت فوق محلی بوجود بیاریدش و Play کنید.در مواقع استفاده از اون به صورت محلی ،در حافظه ای به اسم Heap توسیستم های برنامه نویسی مثل اکشن اسکریپت یا ++C قرار می گیره و تا وقتی که کارش تموم نشده تو حافظه Heap می مونه تا غیر فعال بشه.بعدش می تونید با دستور System.gc اونو از سیستم تخلیه کنید.
 

30min

Banned
متشکرم و پاسخ سئوالم در مورد تکرار شدن آهنگ با زدن پیاپی کلید play ؟
 

++Hadi++

Active Member
برای این کار باید به روش زیر عمل کنید...یه کم کامل تر توضیح می دم.شما به دو کلاس دیگه نیاز دارید :
1- کلاسی برای کنترل میزان صدا (صدا رو کم و زیاد کردن)-SoundTransform
2- کلاسی برای کنترل جریان و مکان صدا (مکان صدا - برو اول آهنگ - آخر آهنگ) - SoundChannel
پس :
PHP:
 var mySound:Sound = new Sound();//شی صدا برای ذخیره بایت صدا
var myChannel:SoundChannel = new SoundChannel();//شی کانال صدا برای مدیریت مکان و جریان صدا
var myTransform = new SoundTransform();//شی میزان صدا برای مدیریت میزان کمی و زیادی صدا
var lastPosition:Number = 0;//مکان آهنگ یعنی لحظه کنونی آهنگ
mySound.load(new URLRequest("myFavSong.mp3"));//لود کردن صدا از طریق آدرس
myChannel = mySound.play();//با پلی کردن صدا ،مقدار کانال صدا برگردانده می شود و آنرا به متغیر کانال صدای تعریف شده می ریزیم
myTransform.volume = 0.5;//میزان صدای تنسفورم صدا ،نصف می شود در واقع مقدار آن بین 0 تا 1 است
myChannel.soundTransform = myTransform;//ترنسفورم تعریف شده را روی ترنسفورم کانال مد نظر قرار دادیم
//در واقع کانال صدا مدیریت جریان صدا و میزان صدای موزیک را بر عهده دارد

pause_btn.addEventListener(MouseEvent.CLICK, onClickPause);//با زدن دکمه پاز صدا تابع پاز اجرا می شود
play_btn.addEventListener(MouseEvent.CLICK, onClickPlay);//با زدن دکمه پلی ،پلی صدا اجرا می شود

function onClickPause(e:MouseEvent):void//تابع پاز
{
    lastPosition = myChannel.position;//مکان و پوزیشن کانال صدا را ر متغیر عددی ریختیم
    myChannel.stop();//کانال صدا را استپ کردیم تا کنترل صدا را به صورت پاز مدیریت کند
}



function onClickPlay(e:MouseEvent):void//هر وقت دکمه پلی را زدیم ،پلی شدن جریان موزیک استارت می خورد
{
    myChannel = mySound.play(lastPosition);//حال دوباره صدا را از زمان ذخیره شده در متغیر صدا پلی کردیم و کانال بازگشتی آنرا در شی کانال ریختیم
    myChannel.soundTransform = myTransform;//دوباره باید ترنسفورم را به کانال پاس دهیم چون میزان کنونی صدای تنظیم شده باید آپدیت شود
}
فقط یادتون باشه که باید دو تا دکمه به اسای ساخته شده بوجود بیارید...
موفق باشید...
 
آخرین ویرایش:

triton

کاربر فعال
سلام
شرمنده که این تاپیک را از توی قبر بیرون کشیدم!
مدت ها قبل این تاپیک را شروع کردم ولی به دلایلی نتونستم که آن را ادامه بدهم، در هر صورت اومدم که از ادامه دار بودن آموزش ها خبر بدهم . شما می تونید ادامه این آموزش ها را از سایت www.Flearn.ir دانلود کنید.
 

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

بالا