اجرای Random فرم ها در فلش

p30graphic

Active Member
سلام
یه پروژه دارم که تو یه قسمتش می خوام وقتی فلش اجرا بشه هر چند ثانیه یه فرم رو اجرا کنه یه جور Timer.

و می خوام که اجرای این فرم ها مرتب نباشه یعنی برای مثال اول فرم 1 بعدش فرم 3 و بعد فرم 2. تو هر بار اجرا این ترتیب عوض بشه یا به اصطلاح Random اجرا بشه
ممنون اگه راهنمایی کنید.
 

Avang2005

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

شما با
PHP:
switch ()
می تونید این کار رو انجام بدید

اول اینکه یه متغیر می سازید برای راندوم !
PHP:
var R= randum(3)

بعد در قسمت switch متغیر رو قرار میدید

PHP:
switch (R)

حالا در هر

PHP:
case

break;

بین case و break یک اکشن میزارید تا به فریم مورد نظر بره

سرچ کنید در انجمن نمونه هست

موفق باشید
 

++Hadi++

Active Member
در استفاده از تابع رندوم من از این روش استفاده می کنم :
PHP:
var Random:int=Math.floor(Math.random()*10);
البته برای اعداد تصادفی بین صفر و نه .
اگه بخوام بین 1 تا 10 استفاده بشه کافیه بنویسی :
PHP:
var Random:int=Math.floor(Math.random()*10)+1;
و کافیه در یه فریم از این استفاده کنی و بعد از انتخاب فریم تصادفی بنویسی :
PHP:
gotoAndPlay(Random);
یا بنویسی :
PHP:
gotoAndPlay(Math.floor(Math.random()*10)+1);
 

++Hadi++

Active Member
در مورد Timer هم چیزایی رو نوشته بودم که اگه سرچ کنین می تونین نمونه هاشو بدست بیارین .
بالای انجمن ها - جستجو در تالار
بای...
 

mohammadbasri

کاربر فعال
یک سوال
در این رندومی که دوستان زحمت کشیدن و نوشتن
آیا بعد از فرم مثلا 2 که به صورت تصادفی باز شده ، فرم 1 و یا 3 باز میشه و یا ممکنه 2 هم دوباره باز بشه؟
چون ما در واقع این دستور رو میدیم که از بین 3 تا فرم یکیشو انتخاب کن ، و ممکنه یک فرم 2 بار انتخاب بشه!!
درسته؟
 

++Hadi++

Active Member
کافیه شما در مثلا فریم 2 که بصورت رندوم باز شده ، همون دستور پرش رندوم رو دو باره بنویسین یا مثلا
PHP:
gotoAndPlay(1)
رو در اون بنویسین که برگرده به فریم اولیه و دوباره پرتاب رندوم داشته باشه .
 

p30graphic

Active Member
نه نمی خوام یه فریم دو بار توی یک دوره اجرا بشه. این رو مثال زدم ممکنه من 40 تا فریم داشته باشم که بخوام توی یک دوره اجرا همشون اجرا بشن. اما اگه دوبهره کسی اجراش کرد به اون ترتیبه قبلی اجرا نشه.
منظورم از تایمر هم این بود که می خوام وقتی یه فریم اجرا شد در حالی که Random قراره بره به فریم بعدی روی همون فریم مثلا 5 ثانیه صبر کنه و بعد فریم بعدی رو که قراره اتفاقی بره اجرا کنه.
 

Avang2005

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

فکر می کنم بشه ولی باید تحلیل بشه تا به نتیجه برسیم !

البته یه راهی که به نظرم رسید توسط شرید آبجکت بود که عدد رو ذخیره کنه و اگه اون عدد = = شد دوباره رندوم شروع به کار کنه

البته این یک فرضیه است .

موفق باشید
 

p30graphic

Active Member
مرسی از راهنمایتون ولی من نتونستم کارم رو پیش ببرم. کدهای بالا رو که میزارم روی فریم ها خیلی سری شروع به عوض شدن می کنن که اصلا نمیتونم بفهمم رندوم شده یا نه؟ اما فکر نکنم چون error میداد.

واسه تایمر هم سرچ کردم به نتیجه ای نرسیدم میشه کمک کنید؟:rose:
 

Avang2005

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

خوب این عمل در صدم ثانیه انجام میشه !

شما فریم ها رو مشخص کنید که مشخص بشه با اجرا شدن رندوم کدوم فریم رو انتخاب می کنه

موفق باشید
 

arman_p

Member
درود
قبلا منم با یه چنین چیزی برخورد کرده بودم بعد آونگ این راه رو گفت:
گفتند که:« اگر مثلا 10 صفحه داشته باشیم می تونیم با یه روش خلاقانه عمل کنیم.یعنی بیاییم چند تا مووی کلیپ درست کنیم و این 10 صفحه رو به ترتیب های گوناگونی تو این مووی کلیپ ها مرتب کنیم. بعدش هر مووی کلیپ رو تو یه فریم بگزاریم. بعدش با یه رندوم بگیم که برو به فلان فریم.
........
 

++Hadi++

Active Member
دوست عزیز
من می خوام یه مثال تمام کمال واسه ات درست کنم که مثلا 40 فریم داشته باشه و 40 تا به صورت رندوم یکی یکی انتخاب شن و به صورتیکه هیچ کدوم از فریم ها دو بار اجرا نشن .
ولی می خوام بدونم که آیا تمام 40 تا فریم باید به صورت رندوم و بدون تکرار پیمایش شن یا چند تا فریم از بینشون هم کفایت می کنه ؟
 

smmousazadeh

Well-Known Member
یه راه آسون برای اینکه فریمی 2 بار انتخاب نشه اینه که بیایی و 2تا متغیر تعریف کنی:
اولی یه آرایه برای تیک زدن فریمهایی که انتخاب شدن
دومی برای تعداد انتخابهایی که برای بار اول هست که انتخاب میشن

هر وقت یه فریم برایبار اول انتخاب شده بود ، خونه اون رو توی آرایه فعال کن و در صورتی که اون خونه فعال بود انتخاب رندوم رو دوباره اجرا کن
چون ممکنه بیشتر خونه ها فعال بشن و برای پیدا کردن خونه خالی چندین بار رندوم رو اجرا کنی میتونی از متغیر دوم استفاده کنی .که برای این منظور وقتی مثلا 30 خونه از 40 خونه پر شد بیای و از ابتدای بردار به خونه های خالی بری
 

++Hadi++

Active Member
بهترین راهش اینه که یه آرایه تعریف کنی و در تمام درایه های اون شماره درایه به اضافه 1 رو قرار بدی (چون خونه های آرایه از 0 شروع می شه و شماره فریم از 1 ) و بعد هر عددی که از بین صفر تا array.length -1 بصورت رندوم در می یاد و به مقدار ذخیره شده در اون خونه می ری و تایم لاینرو gotoAnd Play به اون شماره می کنی و بعد اون خونه رو از آرایه حذف کنی و خونه های بعد از اونو یه level به چپ (به اول ) شیفت بدی . اینطوری دیگه مقدار عددی که بصورت رندوم بدست اومده دیگه تکراری نیست و هر بار یه عدد جدید از شماره های فریم بدست می یاد .
شاد و شنگول باشی ...
باییییییییی...
 

Member
شما برای فریم هاتون دستور stop بذارید بعد داخلشون مووی کلیپی بذارید با طول دلخواه و در فریم آخر مووی کلیپ بازگشت به فریمی که کد رندوم توش اجرا میشه
در مورد اجرا شدن دوباره هم به تعداد موی کلیپ ها متغیر با مقدار 1 بذارید که با انتخاب اون فریم اگه مقدارش 1 بود بره بو اون فریم اگه نه برگرده به رندوم انتهای هر مووی کلیپ موتغیر مربوط به اون مووی کلیپ 0 شه
بعد از 0 شدن همه متغیر ها هم دوباره همه 1 شن
اگه سورس کاری که میخوایی انجام بدی بذاری ممکنه بنویم کمکت کنیم
---------------------------
مشکل من توی خط سوم این کد چیه؟ (دارم رو همین تاپیک کار میکنم)
کد:
stop();
a = random(5)+1;
b = "_root.f"+a;
if (b == 1) {
    gotoAndStop(a);
}
 
آخرین ویرایش:

smmousazadeh

Well-Known Member
تو خط سوم b = "_root.f" + a شما دارید :
در متغیری به نام b یک نام و یک شماره رو به هم اضافه میکنید(a+1 = a1) تا حاصلش شماره یه خونه یا اسم یک Scene بشه و بعدا به اون مکان میرید.


پ . ن : البته چرا کد رو سختش کردید میشه این کد رو راحت تر نوشت.چون احتمالا قسمت اول کد "root.f_" ، چون بین "" قرار داره باید یه مقدار ثابت باشه
 
  • Like
Reactions:

p30graphic

Active Member
با تشکر از همه دوستان که لطف کردن و راهنمایی کردن اما من می خوام این 40 تا فریم اولا همشون اجرا بشن. اما توی هر بار اجرا ترتیبش با دفعه قبلی فرق کنه مثل موقعی که Shuffle رو توی مدیا پلیر فعال می کنیم که تراک هایی که انتخاب کردیم به ترتیب اجرا نشن. در ضمن اگه امکانش هست نمونه کد رو هم بزارین چون من از کد نویسی فلش و اصول اون چیزی نمی دونم.
 

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

بالا