برچسب: ActionScript

اصول برنامه نویس شئ‌گرا در Flash – قسمت دوم

امکان تعریف و استفاده از اشیاء در یک زبان برنامه‌نویسی مزایای بسیاری دارد که از جمله می‌توان به موارد زیر اشاره نمود:

  •        جلوگیری از پیچیده‌ شدن کدها و سادگی درک منطق برنامه.
  •        مجتمع سازی دستورات و امکانات مختلف در قالب عملکردهای اشیاء.
  •        امکان پنهان سازی (Encapsulation) عملکردها و سطح بندی آنها.
  •        سادگی استفاده از اشیاء با تعریف یک نمونه (Instance) از کلاس آنها.
  •        سادگی استفاده مجدد از اشیاء در قسمت‌های مختلف برنامه.
  •        مدیریت حافظه بهینه تر و کنترل بر روند تعریف و حذف اشیاء.

مفهوم کلاس (Class)

همانطور که می‌دانید شئ یک مفهوم انتزاعی است. بنابراین به منظور پیاده سازی اشیاء در محیط برنامه‌نویسی از تعریف کلاس استفاده می‌گردد.

جهت تفهیم بیشتر این مبحث با استفاده از برنامه‌نویسی شئ‌گرا، کلاسی به نام Car تعریف کرده و تمام خصوصیات (Property)، عملکردها (Method) و رویدادهای (Event)  اتوموبیل را در آن تعریف می‌نماییم.

به عنوان مثال:

– کلاس Car دارای خصوصیاتی مانند نام، مدل، رنگ، وزن، حداکثر سرعت، ظرفیت سوخت و حداکثر سرنشین است.

– کلاس Car دارای عملکردهایی مانند بازکردن درها، روشن کردن، گازدادن و ترمز گرفتن است.

– کلاس Car دارای رویدادهایی مانند توقف، حرکت، مصرف سوخت و اتمام سوخت است.

Package}
   public class Car }
      private var name:String;
      private var color:String;
      private var model:String;

      private var weight:int;
      private var fuel:int;
      private var capacity:int;
      private var maxSpeed:int;

      public function stop();
      public function start();
      public function openDoor();
      public function initiate();
      public function speedUp();
   {
{

کلاسی که مشاهده می‌کنید به صورت نمادین، اغلب ویژگی‌های یک اتوموبیل را در برگرفته و می‌تواند به نوعی نماینده عملکرد آن باشد.

البته روشن است که در این کلاس هنوز کدی برای توابع و رویدادهای آن نوشته نشده و دقیقاً مشخص نیست که هر بخش از آن قرار است که چه کاری را انجام دهد. ولی استفاده از آن به عنوان یک مثال، خللی در فهم درست این مقوله وارد نمی‌کند.


اصول برنامه نویس شئ‌گرا در Flash – قسمت اول

شئ‌گرایی یکی از مفاهیم مهم و حیاتی در حیطه زبان‌های برنامه‌نویسی است، به گونه‌ای که می‌توان تمام زبان‌های برنامه‌نویسی را به دو نسل شئ‌گرا  و غیر شئ‌گرا (زبان‌های قدیمی و منسوخ شده‌‌ای مانند Ansic، Basic و StdPascal) تقسیم نمود.

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

برای تعریف مفهوم شئ‌گرایی می‌توان از مثال ساده و معروف اتوموبیل استفاده نمود.

تصور نمایید که قصد داشته باشیم تمام عملکرد یک اتوموبیل را از ویژگی‌های ظاهری مانند رنگ، نوع، شکل، اندازه، وزن، تا عملکردهایی مانند روشن شدن، چرخیدن چرخ‌ها، مصرف سوخت، حرکت کردن و غیره به صورت دستورات برنامه‌نویسی پیاده سازی کنیم.

روشن است که برای شبیه‌سازی چنین موجودیتی، نمی‌توان از روش‌های کدنویسی عادی استفاده نمود. تنوع ویژگی‌ها و عملکردهای موجود در یک اتوموبیل و همچنین وابستگی موجود میان اجزای آن، نیاز به یک ساختار منظم و هماهنگ را مطرح می‌کند.

هر چند که ممکن است این ساختار با تعریف متغیرها و توابع متعدد قابل دسترس باشد، اما هماهنگ نمودن تمامی این اجزاء برای رسیدن به یک هدف واحد که همان عملکرد اتوموبیل است، کار دشواری می‌باشد.

از طرف دیگر، یکی از ویژگی‌های بارز چنین سیستمی، تغییرات متعدد و نیاز به ارتقاء آن است که باز هم نیاز به یک ساختار مجتمع را برجسته‌تر می‌سازد. شئ‌گرایی یک پاسخ منطقی برای مرتفع نمودن تمامی مشکلات و دشواری‌های ذکر شده است.

به منظور کسب آمادگی برای شروع مبحث شئ‌گرایی بهتر است که ابتدا مرور مختصری بر اصطلاحات و مفاهیم مورد نیاز در این مبحث داشته باشیم:

حوزه عملکرد یا فضای نام (Namespace):

نوعی صفت عام است که به متغیرها یا توابع یک کلاس نسبت داده شده و بازه دسترسی‌پذیری آنها را در ارتباط با دیگر اجزای برنامه مشخص می‌نماید. به عنوان مثال، public و private دو حوزه عملکرد هستند که سطوح دسترسی عمومی و محلی را در شئ‌گرایی تعریف می‌کنند.

(ادامه مطلب…)


بررسی جایگاه root و stage در Flash و AS3

stage شئ واحدی است که در هر فایل swf، به عنوان دربرگیرنده اصلی محسوب شده و تمام اشیاء و تصاویر دیگر، درون لیست نمایش آن ترسیم خواهند شد.
اما شئ دیگری به نام root نیز وجود دارد که مستقیماً به Timeline اصلی انیمیشن اشاره دارد. به عبارت ساده‌تر، شئ root که در AS2.0 به صورت _root مورد ارجاع قرار می‌گرفت، یک DisplayObjectContainer است که به صورت پیش‌فرض در عمق صفر از شئ stage قرار دارد.
به صورت پیش‌فرض، تمام ترسیماتی که بر روی صفحه انیمیشن فلش صورت می‌گیرد، به جای اینکه مستقیماً در لیست نمایش stage باشد، در شئ root انجام می‌شود. به عبارتی تمامی اشیاء و محتوای انیمیشن فلش، زیر مجموعه شئ root هستند که یک DisplayObjectContainer پیش‌فرض و در عمق صفر از شئ دربرگیرنده stage قرار دارد.
مثال:

trace(stage,  root);    
// Output: [ object Stage] [ object MainTimeline]

نکته‌ای که باید در مورد شئ root به آن توجه شود این است که برای فراخوانی متدها یا استفاده از خصیصه‌های آن، نمی‌توان مستقیماً از کلمه root استفاده نمود، بلکه باید صراحتاً نوع آن در پرانتز ذکر گردد(انتصاب نوع پویا).

مثال 1: دستور اول منجر به بروز خطا می‌گردد، اما دستورات بعدی به درستی اجرا خواهند شد.

root.addChild(sh);     //error

Object(root).addChild(sh);
MovieClip(root).addChild(sh);
DisplayObjectContainer(root).addChild(sh);

مثال2 : تفاوت شئ root و stage:

trace(stage is Object, root is Object);		
// Output: true    true
trace(stage is MovieClip, root is MovieClip);		
// Output: false  true
trace(stage is Sprite, root is Sprite);			
// Output: false  true
trace(stage is DisplayObject, root is DisplayObject);	
// Output: true    true
trace(stage is DisplayObjectContainer, root is DisplayObjectContainer);	
// Output: true   true

دستور is در مثال بالا، نوعی عبارت منطقی به وجود آورده که تعلق یک شئ را به یک کلاس والد، بررسی می‌نماید.


معرفی بازیهای آنلاین فلش – Gibbets 2 LevelPack

یکی از بهترین منابع آموزشی برای طراحان حرفه‌ای فلش، بررسی و تحلیل پروژه‌ها و کارهای حرفه ای دیگران است. در این زمینه، بررسی بازیهای طراحی شده با فلش، جزء بهترین، آموزنده ترین و مفرح ترین تمرین‌ها قرار میگیرند.

 معمولا بازه وسیعی از تکنیکهای ترسیم و بهینه سازی در طراحی یک بازی با فلش مورد استفاده قرار میگیرند، چرا که اجرای بازی به صورت آنلاین، مستلزم بهینگی و سرعت کافی در اجرای آن میباشد.

 از این پس سعی می‌کنم که به معرفی برخی از بازیهای معروفی که با استفاده از تکنولوژی Flash طراحی شده‌اند بپردازم.

معیار بازیها به صورت زیر است:

–          طراحی و رنگ‌بندی حرفه‌ای (Design)

–          جلوه های صوتی مناسب (Sound Effects)

–          سرعت اجرا و کارایی مناسب (Performance)

–          رابط کاربری مناسب (User Interface)

–          داستان و روند اجرای ترغیب کننده (Plot)

 پس از معرفی هر بازی سعی میکنم با اتکا بر تجربه خود در طراحی و توسعه فلش، امتیازی بین 1 تا 10 به هر کدام از آیتمهای فوق اختصاص دهم.

 در این پست بازی بسیار زیبا و جذاب Gibbets را معرفی میکنم. این بازی تیر و کمان با استفاده از طراحی بسیار زیبا و جذاب خود، یک محیط فوق العاده گیرا و اعتیاد آور را فراهم کرده است.


ساخت ابعاد مختلف آیکون‌ها با Appiconizer

یکی از خسته‌ کننده‌ترین کارهایی که طراحان App ملزم به انجام آن هستند، طراحی ابعاد مختلف icon قبل از کامپایل برنامه است. با توجه به نوع برنامه مثلا Mobile، Desktop، Web، Extended و غیره، ابعاد مختلفی از icon های یک‌سان، مورد نیاز است که عموما با تبدیل ابعاد یکی از آنها به انجام می‌رسد.

برای حل این مشکل و راحت شدن از انجام این عمل تکراری، ابزار آنلاین Appiconizer را جهت انجام آن طراحی نموده‌ام که با دریافت یک فایل icon با ابعاد ترجیحی 512 یا 1024 و کیفیت مناسب، تمام ابعاد قابل پشتیبانی توسط حالات مختلف نرم‌افزار را برای شما تولید می‌نماید.

  appiconizer online



  • آرشیو:

  • .
    Copyright (c) 2010 www.mshams.ir