تعویض موقعیت دو شیی با یکدیگر درas3

splinter cell

Well-Known Member
با سلامی دوباره
خدمت دوستان و اساتید خودم عرض کنم توی as3
در حالت رانتایم از یک مووی کلیپ چند تا نمونه تولید می کنیم و اونها رو به صحنه اضافه میکنیم. حالا میخوایم چنانچه کاربر یکی از اینها رو(مثلا شماره4) دراگ کرد و روی یکی دیگه (مثلا شماره 2) رها کرد این دو موویی کلیپ جاشون با هم عوض بشه.
خودم خیلی کلنجار رفتم اما نتونستم استادش کنم:green: یعنی نتونستم موقعیت شیی رو که روی اون دراپ انجام میشه رو بدست بیارم. اگر زحمتی نیست این نمونه رو نگاه کنید و ببینید مشکل کجاست و چطور میشه رفعش کرد.
ارادتمند همه دوستانیم:rose:
مخصوصاً هادی عزیز که همیشه بدون دریغ پاسخگوی کاربران انجمن هست
 

پیوست ها

  • changePosition.rar
    7.1 کیلوبایت · بازدیدها: 8

++Hadi++

Active Member
با :
PHP:
A1.hitTestObject(A2);
می تونین بدونین که شی A1 به A2 خورده یا نه. یعنی این متد به شما یه بولین می ده که اگه برخورد کنند true میده و در غیر اینصورت false.
پس می تونین به روش خطی بررسی کنین که آیا A1 به A2 و A3 و A4 خورده و در switch می تونین دستور متناسب با اون برخورد رو بنویسین. البته این روش خیلی عالی نیست. چون اگه n تا شی غیر از A داشته باشین ، این بررسی با استفاده از روش switch می تونه n بار یا به طور متوسط n/2 بار چک بشه و این برا پردازش و پرفرمنس مناسب نیست. شاید با hitTestPoint بشه کار بهتر کرد.در کل تو event ول شدن موس یا Mouse_Up رو صحنه چک کنین که شی درگ شده با چی برخورد کرده یا hitTestObject اون با چی برابر true شده و بعد x و y رو با اون عوض کنین.
 

++Hadi++

Active Member
البته راه بهترش اینه که وقتی رو یکی از این اشیا موس فشرده شد ، یه دستور به اون بدین که mouseEnabled و mouseChildren اون false شه و بعد رو اشیای دیگه رویداد mouse_Up رو بدین که هر موقع فعال شد، فلان کار شه و این تو یه سری شرایط می تونه کمک کنه و پرفرمنس رو بهتر کنه.
 

splinter cell

Well-Known Member
ممنونم هادی جان!
برسم خونه روی این الگویی که فرمودین کار میکنم و انشالله اگه به نتیجه رسید نمونه رو کامل میکنم و میذارم اینجا. شاید بعدها به درد یه نفر دیگه خورد.
 

splinter cell

Well-Known Member
هادی جان من با راهنمایی شما تونستم نمونه رو درست کنم .فقط مشکلی که نتونستم حلش کنم اینه که اگر باکسی رو که دراگ کردیم جایی غیر از بقیه باکسها رها کنیم دیگه باکس از ماوس رها نمیشه(بقول ما مث کنه میچسبه ول کن نیست:green:) با اینکه دستور دادیم که اگر در جای اشتباه رها شد برگرده به سرجای اولش.
بی زحمت نمونه اصلاح شده رو نگاه کن و ببین کجا رو اشتباه نوشتم. سپاس:rose:
 

پیوست ها

  • changeposition.rar
    7.8 کیلوبایت · بازدیدها: 17

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

بالا