کلاس FitScreen راهی ساده برای چینش آبجکتها در رزولوشن های مختلف

DaDaDooDoo

کاربر VIP
سلام دوستان .

امروز می خوام کلاسی رو که نوشتم بهتون معرفی کنم . البته یک دمو قبلاً از این کلاس تو یک پست دیگه ارائه داده بودم که خیلی ناقص و ابتدایی بود و بیشتر برای معرفی یک تکنیک ازش استفاده کرده بودم .

اما حالا این کلاس رو که نامش FitScreen هست کامل و تا حدود زیادی قابل استفاده کردم که در این پست اونو کامل معرفی می کنم و روش استفاده ازش هم توضیح می دم .

اما به دو دلیل برای معرفی این کلاس یه تاپیک جدید زدم : اول اینکه اون تاپیک زیر خاکی شده بود و شاید اگر همون رو آپدیت می کردم کسی نمی رفت نگاه کنه و دلیل دوم و اصلیش این بود که اون تاپیک قبلی بیشتر در مورد تکنیک screenResolution بود تا این کلاس و می خواستم این کلاس رو در یک تاپیک جداگانه توضیح بدم .

خوب بریم سر اصل مطلب :

کلاس FitScreen کلاسی هست که شما با استفاده از اون می تونید آبجکتها رو طوری بچینید که تحت هر رزولوشنی چینش اونها به هم نخوره . (مثلاً اگه دقیقاً به سمت چپ استیج چسبیده همیشه همونجا باشه و با تغییر رزولوشن جای اون عوض نشه . البته همونطور که قبلاً هم گفتم این کلاس بیشتر برای لوکال به درد می خوره (مثلا کارهای مالتی مدیا) و برای وب بهتره از تکنیک چینش شناور استفاده کنید .

روش استفاده :

قبل از اینکه از این کلاس استفاده کنید باید تنظیمات زیر رو به وسیله کدهای Action Script در پروژه اعمال کنید .

حالت فول اسکرین ، حالت اسکیل غیر فعال و الاین استیج هم TOP_LEFT

PHP:
stage.displayState = StageDisplayState.FULL_SCREEN;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;

بعد نوبت می رسه به کلاس FitScreen . این کلاس دو تا متد داره ، یعنی دوتا روش برای چینش اجزاء

1 - متد SetPos :

این متد سه تا پارامتر ورودی می گیره :

1 - نام آبجکت ( از نوع مووی کلیپ) 2 - موقعیتی که باید در اون قرار بگیره 3- رجیستر پوینت مووی کلیپ (از نوع استرینگ) .

پارمتر اول که معلومه چیه و توضیح نمی خواد .

شما با استفاده از این متد می تونید از 9 موقعیت از پیش تعریف شده در این کلاس استفاده کنید ، که عبارتند از :

TOP_RIGHT , TOP , TOP_LEFT , RIGHT , LEFT , BOTTON_RIGHT , BOTTON_LEFT , BOTTON , CENTER

این مقادیر قبلاً در کلاس تعریف شدن و شما فقط اونا رو انتخاب می کنید و به عنوان پارامتر دوم وارد می کنید . (دیگه فکر کنم نیازی نباشه توضیح بدم هر کدوم به کدوم قسمت استیج اشاره دارند و از اسمشون کاملاً معلومه) .

در مورد پارامتر سوم هم باید بگم که شما رجیستر پوینت حال حاضر مووی کلیپ رو در پارامتر سوم معرفی می کنید . که فقط TL (اگر رجیستر پوینت گوشه بالا سمت چپ هست ) و CC ( اگر رجیستر پوینت وسط هست) قابل شناسایی هستند ( چون بیشتر از این نقاط استفاده میشه )

اما روش استفاده از این متد :

اول کلاس FitScreen رو به روش زیر در پروژتون لود می کنید :

PHP:
import codes.FitScreen;

بعد ازش یک نمونه می سازید :

PHP:
var MyScreen: FitScreen = New FitScreen();

سپس متد SetPos رو صدا می کنید و پارامترها رو بهش پاس میدید :

PHP:
MyScreen.SetPos(MovieClipName , FitScreen.CENTER , "CC");

توجه داشته باشید که برای مشخص کردن پارامتر دوم اسم کلاس رو بنویسید سپس نقطه رو که بزنید اون 9 حالت پیش فرض نمایان میشه و شما انتخاب می کنید .

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

خوب ببخشید اگه طولانی شد ...

متد دوم : متد SetMargin

که سه تا پارامتر ورودی می گیره :

1- نام مووی کلیپ 2 - فاصله از بالا 3 - فاصله از راست

در واقع این متد یه جورایی همون مارجین خودمونه که خودشو با رزولوشن تطبیق می ده .

روش استفاده :

مثل قبل کلاس رو لود می کنید .

از کلاس یک نمونه می گیرید .

متد SetMargin رو با پارامترهاش فراخوانی می کنید :

PHP:
MyScreen.SetMargin(MovieClipName , 400, 500);

دقت کنید که 500 فاصله پیکسلی از بالا و 400 فاصله پیکسلی از راست هست .

سوال ، انتقاد ، پیشنهاد خریداریم .

نمونه هم پیوست شده .

امیدوارم مفید واقع بشه .

موفق باشید .
 

پیوست ها

  • FitScreen.rar
    15.1 کیلوبایت · بازدیدها: 112

++Hadi++

Active Member
کوروش جان خیلی ممنونم ، این سایت به بچه های با سواد و دلسوز و خوبی مثل شما افتخار می کنه ...:rose:
بهترین ها رو برایت آرزو مندم ...
هادی
 

++Hadi++

Active Member
سلام کوروش
آقا چند تا نکته...
اولا دس مریزاد ...
واقعا خوب شده ...
ولی اگه می خوای کلاست واسه شناوری یک کلاس مرجع شه ، چند تا کارو انجام بده ...
1- شناوری یه سورس ، نیاز به این داره که هم با پارامتر scale و هم با پارامتر جابجایی ، بتونی اشیای صحنه رو به نسبت صحنه تنظیم کنی ، پس همونطوری که جابجایی رو امکانپذیر کردی ، scale رو هم درست کن تا کاربر بتونه هر چی رو خواست به نسبت stage ، به صورت طولی یا عرضی کش بده ...
2- برای Scale ها و یا جابجایی ها ، یه مقدار Offset رو برا x و y در نظر بگیر ، تا کاربر بتونه از مقدار تنظیم شده ، به اندازه ای که دوس داره بالا تر یا پایین تر ببره یا کش بده ...
3- سعی کن یه دفعه ، همه رو ست نکنی ، یعنی یه پارامتر رو در نظر بگیری که کاربر بتونه ، اونو true کنه تا با TweenMax ، همه چی در زمانی خاص مثل 1 ثانیه ، به جاهای شناوری حرکت کنه (با ease هایی مثل Elastic)... اینطوری می شه مثل سایتی که در سیمیا طراحی کردم و لینکش رو هم بهت پ . خ می دم ...البته به صورت لوکال
4- سعی کن یه حالت Online یا RunTime هم بزاری و در ابتدا از کانسترکتور یا تابعی خاص ، stage رو به عنوان ورودی بگیری و بعد یه رویداد Event.RESIZE بدی که دیگه همه چی اتوماتیک وار با تغییر سایز صحنه توسط کاربر ، کش بیاد یا جابجا شه (افقی و عمودی یا هر دو ) ...
اگه این کارو کنی مطمئن باش کلاست فوق العاده محشر و عمومی و مرجع شناوری می شه ...
موفق باشی ...
 

Avang2005

مدیر انجمن
سلام دوست من

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

موفق باشید
 

DaDaDooDoo

کاربر VIP
از پیشنهاد بسیار جالب و سازنده شما ممنونم ، 100% روش کار می کنم و اعمالشون می کنم .
 

++Hadi++

Active Member
کوروش جان سلام
دارم رو یه پروژه کار می کنم و شاید به کلاس تو هم واسه شناوری نیاز داشته باشم .... ولی حتما می خوام روش تغییراتی رو بدم تا کامل تر بشه . مسئله ای نیست اگه کامل تر شد ، به عنوان ورژن بعد در این تایپیک قرارش بدم ؟؟؟
 

DaDaDooDoo

کاربر VIP
مسئله ای نیست اگه کامل تر شد ، به عنوان ورژن بعد در این تایپیک قرارش بدم

چی بهتر از این ؟ واقعاً خوشحال می شم . البته قبلش یه 15 میلیون بریز به حسابم تا بهت مجوز کتبی بدم ... :cool:
 

DaDaDooDoo

کاربر VIP
روی این نمونه از کلاس FitScreen پترن singletone رو اضافه کردم . دانلود کنید . البته چون هادی خان قراره ورژن بعدی این کلاس رو ارائه کنند من دیگه این نمونه رو به عنوان ورژن جدید مطرح نمی کنم .

فرقش با قبلی اینه که دیگه لازم نیست از کلاس آبجکت بگیرید .(البته متد SetMargin هم حذف شده) .

موفق باشید .
 

پیوست ها

  • FitScreen Via Singletone.rar
    9.6 کیلوبایت · بازدیدها: 56
آخرین ویرایش:

++Hadi++

Active Member
کوروش تا اونجایی که می تونی ورژناشو بالا ببر ...
فعلا با کلاست کار نکردم ...
به عنوان ورژن بعدی بده بیرون ...
 

movement

New Member
واقعا جا داره از آقا هادی و کوروش عزیز تشکر کنم
این پست و نوشتم که فقط بگم دست و پنجتون درد نکنه:rose:
واقعا لازمه که گفته بشه
 

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

بالا