کاربردهای نرم افزاری فلش بسیار وسیع تر از تولید قطعات انیمیشن یا قطعات تعاملی برای استفاده از وب سایت ها می تواند باشد . نسخه های اخیر این نرم افزار قابلیت های بسیار پیشرفته ای را در اختیار کاربران حرفه ای فلش قرار داده است . این نوشته چگونگی ساخت یک شبیه ساز گفتار، در گوشه و کنار به وفور دیده می شوند . سیستم های سخن گوی بانک ها که موجودی مشتریان را به کمک صدای شبیه سازی شده انسان به اطلاع کابران می رسانند و یا کاربرد بسیار عمومی تر نظیر اپراتور تلفن همراه و ساعت گویا و غیره همگی نمونه هایی از سیستم های سینتی سایزر محسوب می شوند . شما می توانید با تعقیب روش های ارائه شده در این نوشته و گسترش این پروژه ، مهارت و خلاقیت خود را برای یافتن کاربردهای دیگر چنین سیستمی بیازمایید .
در نسل قبل از فلش 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 را فرا می خواند که این عمل باعث پخش مجدد صدا خواهد شد
منبع : پایگاه اطلاع رسانی فناوری اطلاعات و ارتباطات ایران