خانه » ادوبی فلش » بهینه سازی فلش – فعال سازی و غیر فعال سازی رویدادها

بهینه سازی فلش – فعال سازی و غیر فعال سازی رویدادها

بهینه سازی در فلش یک اصل مهم به حساب می آید و افزایش و کار بر روی آن برای توسعه دهندگان فلش امری الزامی است. به عنوان یک توسعه دهنده فلش و به عنوان کسی که برای آینده این نرم افزار بزرگ احساس مسئولیت می کند ، ما وظیفه داریم در ساخت عناصر فلش که کارایی بهتری دارند پیش گام باشیم و همواره بهترین و بهینه ترین روش را استفاده کنیم. در این مجموعه آموزشی بهینه سازی فلش به نکات مهم برای مدیریت بر عناصر و حافظه ها … می پردازیم و تلاش می کنیم که بتوانیم با استفاده از نکات ارائه شده خروجی بهینه تر و سبک تری از پروژه فلش خود داشته باشیم.

بخش چهارم – فعال سازی(Activate) و غیر فعال سازی(Deactivate) رویدادها

از زمان انتشار فلش پلیر ۹ (Flash Player 9) دو رویداد (Event) به فلش افزوده شد (رویداد Event.ACTIVATE و رویداد Event.DEACTIVATE) این رویداد ها می توانند برای شما امکان تنظیم برنامه خود برای استفاده از کمترین میزان سیکل پردازنده (CPU) را امکان پذیر سازند.

این رویداد ها این امکان را به شما می دهند که زمانی که روی فلش شما تمرکز (فوکوس) می شود و یا زمانی که تمرکز (فوکوس) از روی آن خارج می شود را تشخیص دهید. در نتیجه ، می توان کد را برای نشان دادن واکنش به تغییرات فعال و غیر فعال شدن بهینه سازی نمود.

نکته : استفاده از رویدادهای Event.ACTIVATE و Event.DEACTIVATE برای تشخص عدم فعالیت برنامه ای که در پس زمینه کاری قرار دارد و بهینه سازی برنامه شما مناسب می باشد.

در کد زیر از هر دو رویداد استفاده می کنیم و به صورت پویا نرخ فریم (Frame rate) را در زمانی که فوکوس (Focus) از برنامه خارج شود روی صفر تنظیم می کنیم. به عنوان مثال زمانی که شما به تب دیگر از مرورگر می روید و یا خارج از محیط قرار گیری فلش در صفحه کلیک می کنید و یا برنامه را در پس زمینه کاری قرار می دهید برنامه شما از فوکوس خارج می شود.

//تعریف متغییر نرخ فریم جاری و نرخ فریم حالت غیر فعال
var originalFrameRate:uint = stage.frameRate;
var standbyFrameRate:uint = 0;

stage.addEventListener( Event.ACTIVATE, onActivate );
stage.addEventListener( Event.DEACTIVATE, onDeactivate );

function onActivate( e:Event ):void
{
	// بازگرداندن نرخ فریم اصلی
	stage.frameRate = originalFrameRate;
}

function onDeactivate( e:Event ):void
{
	// تنظیم نرخ فریم بر روی صفر
	stage.frameRate = standbyFrameRate;
}

زمانی که روی برنامه شما دوباره فوکوس می شود ، نرخ فریم به حالت اصلی بازگردانده می شود و برنامه شما به کارش ادامه می دهد. در ضمن شما به جای استفاده از تغییر نرخ فریم به صورت پویا می توانید بهینه سازی های دیگر مانند فریز کردن اشاء ، دادن افکت بلور و… را درون برنامه خود در نظر بگیرید.

این رویداد ها به شما این امکان را می دهد که مکانیزمی شبیه به Pause و Resume که در واقع امکان ایجاد مکث و وقفه در برنامه و امکان ادامه دادن آن در زمان دلخواه می باشد را ایجاد کنید. نمونه ی این ویژگی را شاید گاهی اوقات در برنامه های تلفن های همراه و یا نت بوک های دیده باشید ، شما هم می توانید به برنامه خود اینچنین امکانی را اضافه کنید.

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

Print Friendly
تگ ها :
پیوند مطلب قبلی
پیوند مطلب بعدی

درباره بهروز پولادرگ

متولد : ۵ مرداد سال ۱۳۶۷ ، حرفه : ادوبی فلش ، برنامه نویسی و طراحی وب ، طراحی گرافیک ، مالتی مدیا ، نرم افزار های تحت وب

8 نظر

  1. سلام
    عالی بود خیلی ممنون
    فقط تو کدتون یه جا اشتباه کردین هر دو لیسنر رو اکتیو گذاشتین!

  2. سلام ممنون از مطلبتون
    یه سوال داشتم راهنمایی کنید ممنون می شم یه مدت در گیرم
    تو سایت هایی که بازی آنلاین باا فرمت فلش می زارن چطور کد ثبت رکورد قرار می دن؟
    با کدوم نرم افزار با کامپیلر هم امتحان کردم بازی رو میریزه به هم کـــمـــک کنید!!!!

    • سلام
      برای این کار نیاز به داشتن منبعی به عنوان پایگاه داده در سمت سرور می باشد
      و البته اطلاعات رکورد نیز با واسطه یک زبان سمت سرور به سرور ارسال می شود
      و نتیجه نهایی بعد از تحلیل به فلش بازگشته و نمایش داده می شود

      شما این امکان را نخواهید داشته که به رکورد های یک بازی محتوا ارسال کنید و این ارسال ها تنها برای دامنه های مجاز تعیین شده برای هر بازی ممکن هست
      و شما می بایست روال بالا را برای ساخت رکورد استفاده کنید

      یا از وب سایت های بازی های فلش که این امکان را به صورت آماده به شما می دهند استفاده کنید (برای این موارد در وب جستجو کنید)

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

  3. سلام، ممنون از آموزش خوبتون. مولا یارتون

  4. سلامی دوباره
    ممنون از اینکه جوابم رو بی پاسخ نذاشین .
    این روش که شما گفتین رو یکی از سایت های بازی ازش استفاده کرده بود ولی امکان تقلب بود بعنی میشد عدد که قراره بازی بفرسته رو تغییر داد و به سیستم اطلاعاتی که خودمون می خواستیم بفرستیم .
    راهی برای جلوگیری از تقلب سراغ ندارید؟
    ممنون :)

    • سلام دوست گرامی ، بنده سعی می کنم به تمامی سوالات در اولین زمان ممکن پاسخ بدهم ، انجام وظیفه است.
      برای این کار راه های زیادی مثل ایجاد کردن SESSION با اطلاعات کاربر می باشد و ایجاد یک کد یکتا برای هر بار نمایش و تغییر آن در هر بار نمایش و ارسال آن توسط فلش به سمت سرور و چک کردن آن و…
      شما می بایست برای امنیت بالاتر یک روش کد گزاری محتوا و یا چک کردن کد یکتا را استفاده کنید تا به راحتی قابل حدث زدن نباشد.
      و این مورد هم می تواند n راه داشته باشد که شما می توانید به انتخاب خود از یک یا تعداد زیادی با هم استفاده کنید

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

ارسال جواب

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

*

رفتن به بالای صفحه