الگوریتم کلی که به نظرم میرسه رو می گم.تکمیلش با شما.
گام اول
اول از همه به تصویر 1 نگاه کنید.استیجی رو می بینید که نیمه بالایی اون به سه قسمت مساوی تقسیم شده که قراره داخل هر مربع یک مووی کلیپ قرار بگیره.
در این مرحله ابتدا باید مشخص کنیم که کدون مووی کلیپ باید در کدوم مربع قرار بگیره...
این فرض رو در نظر بگیرید که :
برای mc1 سه محل قرار گیری وجود داره.
برای mc2 دو محل قرار گیری وجود داره.
برای mc3 تنها یک محل قرار گیری وجود خواهد داشت.
بنابراین آرایه ای بدین صورت نیاز داریم که مقداری رو به صورت تصادفی از اون برداریم:
PHP:
var container:Array=[1,2,3];
var area:Number = Math.round(Math.random() * 3) + 1
این قطعه کد یک عدد تصادفی بین یک تا سه رو انتخاب می کنه.با فرض این که برای اولین بار عدد
2 انتخاب بشه به این نتیجه می رسیم که مکان قرار گیری mc1 باید در محل
2 باشه.
سپس مقدار 2 رو بایستی از داخل آرایه پاک کنیم.(عملیات حذف یک عنصر از آرایه به کمک متد های pop , indexOf قابل انجامه)
در نتیجه آرایه ای با 2 عضو خواهیم داشت.
این مرحله رو یک بار دیگه تکرار می کنیم تا عدد تصادفی بعدی بدست بیاد.با فرض این که عدد تصادفی بعدی
3 انتخاب بشه به این نتیجه می رسیم که مکان قرار گیری mc2 باید در محل
3 باشه.
در نهایت عنصر 3 هم بایستی از ارایه پاک بشه که در این صورت عنصر 1 در آرایه باقی می مونه و مشخص کننده مکان قرار گیری mc3 خواهد بود(یعنی محل1) که در تصویر شماره 2 نشان داده شده است.
گام دوم
چون قراره هر مووی کلیپ در محلی تصادفی واقع در هر یک از سه مربع قرار بگیره و هر بار موقعیتش عوض بشه می تونیم این کار رو با قطعه کدی مشابه زیر انجام بدیم.این کار تنها برای یک مووی کلیپ انجام شده که شما می تونید با استفاده از switch..case های مربوطه این کا رو برای سایر مووی کلیپ ها انجام بدید:
PHP:
import flash.events.MouseEvent;
btn.addEventListener(MouseEvent.CLICK,addPose1);
var p1:Number = 0;
var p2:Number = 0;
function addPose1(e:MouseEvent):void
{
p1=(Math.round(Math.random()*100)+1);
p2=(Math.round(Math.random()*160)+1);
mc1.x = p1;
mc1.y = p2;
ta.text = p1 + " , " + p2;
}
مطمئنا تغییرات مختلفی رو بسته به نیاز باید انجام بدید تا به نتیجه مطلوب برسید.سایر موارد بر عهده خودتونه و اگه لازم دونستید از سایر دوستان کمک بگیرید.
موفق باشید!