آموزش ساخت یک شبیه ساز گفتار با Flash MX

کاربردهای نرم افزاری فلش بسیار وسیع تر از تولید قطعات انیمیشن یا قطعات تعاملی برای استفاده از وب سایت ها می تواند باشد . نسخه های اخیر این نرم افزار قابلیت های بسیار پیشرفته ای را در اختیار کاربران حرفه ای فلش قرار داده است . این نوشته چگونگی ساخت یک شبیه ساز گفتار، در گوشه و کنار به وفور دیده می شوند . سیستم های سخن گوی بانک ها که موجودی مشتریان را به کمک صدای شبیه سازی شده انسان به اطلاع کابران می رسانند و یا کاربرد بسیار عمومی تر نظیر اپراتور تلفن همراه و ساعت گویا و غیره همگی نمونه هایی از سیستم های سینتی سایزر محسوب می شوند . شما می توانید با تعقیب روش های ارائه شده در این نوشته و گسترش این پروژه ، مهارت و خلاقیت خود را برای یافتن کاربردهای دیگر چنین سیستمی بیازمایید .
در نسل قبل از فلش mx،(یعنی نسخه 5) برنامه نویسان Actionscript برای کنترل قطعات صوتی ناگزیر به استفاده از روش های مبتنی بر keyframe/onenterframe بودند . در نسل جدید این نرم افزار،اضافه شدن متد (sound . OnSoundComplete) امکان کنترل بسیار دقیقتر صداها را میسر ساخته است . دقت رویداد OnSoundComplete در حدود یک دهم سرعت فریم است . بدین ترتیب در صورتی که پروژه فلش شما برای سرعت متداول 12فریم در ثانیه تنظیم شده باشد ، آنگاه دقت رویداد فوق در حدود یک صدوبیستم ثانیه خواهد بود که کاربرد مورد نظر ما در این نوشته بسیار مناسب است .
در این جا بد نیست که از ابتدا نکته ای یاد آوری کنیم تا ذهنیت دقیق تری حاصل کار داشته باشید . رویداد OnSoundComplete هم ،مانند دیگر رویدادهای فلش ، در صورتی که عملیات پیچیده و سنگینی همزمان با آن در جریان باشد (مانند انیمیشن های سنگین ) ممکن است دچار تاخیرهای کوتاهی بشود . در نتیجه در زمان بخش صدا، ممکن است Flash Player نتواند تمام عملیات بار گذاری شده را با همان دقت مورد نظر شما انجام دهد و نهایتا احتمال ایجاد تاخیرهای ناخواسته به صورت « سکته» وجود دارد . این مساله کاملا به قدرت و سرعت پردازنده سیستم مقصد بستگی دارد و در سیستم های قدیمی تر تبدیل به مساله ای کاملا جدی خواهد شد . (حالا نظری به کد شماره یک بیندازید)
برای آنکه بتوانید کد فوق را آزمایش کنید، باید یک فایل صوتی در کتابخانه وارد کرده باشید و نام groovy را برای آن انتخاب کنید . برای این کار بعد از آن که یک فایل صوتی نمونه ساختید، از طریق منوی فایل و گزینه import to library ، این فایل را به درون محیط فلش وارد کنید . در مرحله بعدی بر روی فایل صوتی خود که در پنجره کتابخانه باید دیده شود، کلیک راست کنید و از منویی که ظاهر می شود ، گزینه linkage، پنجره دیگری ظاهر می شود که می توانید پارامترهای مورد نظر خود را در آن تنظیم کنید . در این پروژه ما باید نام groovy را در این پنجره تایپ کنیم . (برای آن که جعبه متنی مورد نظر فعال شود باید گزینه Export for Actionscript را تیک بزنید . با این کار گزینه دیگر Fram Export in the first هم فعال خواهد شد که در کاربرد ما باید چنین باشد . ) این وضعیت در شکل 2 نمایش داده شده است . توجه داشته باشید که با این عمل ، از این به بعد می توانید در کدهای خود با قرار دادن نام این قطعه صوتی در درون عملیات های " " به آن ارجاع کنید . در زمان کامپایل شدن پروژه و تولید فایل های SWF، نرم افزار فلش مراقب تمام سمبل های مورد استفاده خواهد بود و متصل بودن (attach) آنها به Timeline را زیر نظر دارد و برهمین اساس محتوای پروژه در فایل SWF در شبکه ای نظیر اینترنت جریان می یابد، محتوای پروژه و در واقع همان سمبل ها یکی یکی بر اساس همان ترتیب چیده شده توسط نرم افزار Flash player بار گذاری می شوند . سمبل هایی که فقط با اسکریپ به Timeline متصل شده باشند، به طور پیش فرض توسط فلش در زمان کامپایل شدن دیده نمی شود و در فایل SWF قرار نمی گیرند . در واقع فلش به صورت پیش فرض تصور می کند که چنین سمبل هایی بی استفاده بوده اند . گزینه های Frame Export in first و Export for Actionscript برای جبران این موضوع تنظیم می شوند . به این ترتیب به فلش یادآوری می شود که سمبل ها از طریق اسکریپ مورد استفاده قرار گرفته اند و باید در فایل کامپایل شده SWF گنجانده شوند .
در قطعه کد یک، قطعه صدایی با نام groovy توسط اسکریپ به instance صدایی به نام myloop متصل شده است . در زمان اجرا شدن پروژه ، وقتی که پخش صدای myloop پایان می پذیرد، رویداد OnSoundComplete تلبع ( ) nexsound را فرا می خواند که این عمل باعث پخش مجدد صدا خواهد شد
 

منبع : پایگاه اطلاع رسانی فناوری اطلاعات و ارتباطات ایران   

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد