فیت شدن عکس با صفحه

leontry89

Member
دوستان من یک عکس رو در stage قرار دادم که میخواستم پس زمینه نرم افزارم بشه
اما تو رزولیشن های مختلف کوچیک یا بزرگ میشه و کل صفحه رو در بر نمی گیره
میخوام فیت صفحه بشه
 

BehrouzPc

پــــادشــاه فــلــــش
می بایست از خصوصیت های stage.stageWidth و stage.stageHeight برای مقدار دادن به طول و عرض استفاده کنید و با کد stage.align = StageAlign.TOP_LEFT; مرتب سازی و مقدار دهی را بر روی بالا و چپ قرار دهید و حال مختصات شی مربوطه را روری x و y با مقدار 0 و 0 قرار دهید اگر هم با کد stage.scaleMode = StageScaleMode.NO_SCALE; کشیده شدن استیج را غیر فعال کنید بهتر هست.

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

leontry89

Member
آقا بهروز ممنونم از پاسختون
من دارم یک اپ اندرویدی تحت ایر می نویسم که یک عکس پس زمینه داره وقتی تو گوشیم نمایشش میدم عکسه کوچیکتر میشه
میشه یکم ساده تر بگید دقیقا باید چیکار کنم که عکسه کشیده نشه (که خراب نمایش داده بشه) اما کلا صفحه رو پوشش بده
واقعا ممنون
 

BehrouzPc

پــــادشــاه فــلــــش
دوست عزیز
از این کد استفاده نمایید

PHP:
yourImage_mc.x=0;
yourImage_mc.y=0;

yourImage_mc.width=stage.stageWidth ;
yourImage_mc.height=stage.stageHeight ;

stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
 

leontry89

Member
ممنونم اما اکی نشد :(
تو گوشیمم تست کردم
mypic.x=0;
mypic.y=0;
mypic.width=stage.stageWidth;
mypic.height=stage.stageHeight;
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
اسم movieclip که عکسه هست جایگزین کردم اما کوچیک میشه میچسبه سمت چپ بالا
 

leontry89

Member
آقا بهروز این کد قشنگ عکس و فیت میکنه اما مشک اینجاست که سایز عنصرها رو تغییر میده
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.EXACT_FIT;

این کد و هم بهش اضافه کنم کلا فقط میچسبه به چپ
stage.scaleMode = StageScaleMode.NO_SCALE;


میخوام حد اقل عنصرها ری سایز نشن عکسه شد مهم نیست
راه حل دیگه ای هم داره ممنون میشم بگید
 

BehrouzPc

پــــادشــاه فــلــــش
در واقع سایز را تغییر نمی دهد و تنها جلوی تغییر سایز های ناخواسته را می گیرد
اگر این کار را نکنید می توانید StageAlign.TOP_LEFT را قرار ندهید و Scale را قرار ندهید
ولی برای x , y می بایست از این استفاده کنید

PHP:
yourImage_mc.x=stage.stageWidth /2;
yourImage_mc.y=stage.stageHeight/2;
موفق و پیروز باشید
 
سلام
دوست عزیز با توجه به اینکه من متوجه شدم که ظاهرا اندازه استیج را در حین کار برنامه نمیشه تغییر داد و بهشاندازه جدید داد لذا بهتره یک مووی درست کنه که به اندازه استیجت فیت بشه و از اون در تمام قسمتهای برنامه ات استفاده کنی
چون معمولا آلاین استیج روی بالا و چپ استیج هست لذا به صورت معمول اگر x و y شیئت را صفر قرار دهی در ادوب ایر در موقعیتی که انتظار داری قرار نمیگیره چون اندازه استیجت با اندازه جدید که از طریق کد stage.stageWidth به دست میاد فیت نمیشه و در همان اندازه ای که از اول تعریف کردی باقی می مونه. لذا از طریق کدی که من برای x و y شی ام که به نام main_obj می باشد این مشکل را برطرف کردم. بدین ترتیب خواهید دید که این شی به خوبی استیجت را پر می کند.
و اما برای فیت شدن عکست در این صفحه خلاصه بگم اینکه برای اینکه عکست دفرمه نشه باید یا عرض و یا ارتفاع عکست را مساوی عرض و یا طول شی اصلی ات یعنی main_obj قرار بدی و ضلع دیگر را بر اساس اسکیل کردن بدست بیاری یعنی کدی بنویسی که نسبت عرض و ارتفاع عکست را بگیره و در عرض و یا ارتفاع جدید عکست ضرب کنه و ضلع دیگه را بدست بیاره. اگه کار کردی و نتیجه نگرفتی بگو توضیح بیشتر بدم.

PHP Code:
stage.scaleMode = StageScaleMode.NO_SCALE;
SET_STAGE_WIDTH = stage.stageWidth;
SET_STAGE_HEIGHT = stage.stageHeight;
var FIRST_STAGE_WIDTH:uint = 420;
var FIRST_STAGE_HEIGHT:uint = 700;

main_obj.visible = false;
main_obj.width = SET_STAGE_WIDTH;
main_obj.height = SET_STAGE_HEIGHT;
main_obj.x = (SET_STAGE_WIDTH/2)-((SET_STAGE_WIDTH - FIRST_STAGE_WIDTH)/2);
main_obj.y = (SET_STAGE_HEIGHT/2)-((SET_STAGE_HEIGHT - FIRST_STAGE_HEIGHT)/2);
addChild(main_obj);
 

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

بالا