ورود

نسخه کامل مشاهده نسخه کامل : سوال:چندین onEnterFrame چگونه؟؟؟؟



ho0rezam
16-07-2009, 21:38
سلام به همه ی بروبچ flash کار.دوباره برگشتم (اون موقع هم چیزی بارمون نبود الان هم همون طوری هستیم :31::13:) البته زود میخوا برم :31:

یه سوال فنی واسم پیش اومد و گفتم شاید کسی باشه بهم کمک کنه.

مشکله بنده:
من چندین تاmc ساختم و با action script ها اونها رو تبدیل به btn کردم.اکشن ها به صورت زیر هست:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا داستان اکشن ها از این قرار هست که وقتی موس روو دکمه ای که ساختم میره، شئی موجود در mc شروع به حرکت میکنه.و وقتی موس از روویه دکمه برداشته بشه دستور onEnterFrame شروع به کار میکنه و کارش اینه که فریم به فریم mc رو به عقب برگردونه تا زمانی که mc به فریم 1 برسه...در اون زمان دستور onEnterFrame حذف میشه...اما این اکشن تا زمانی خوب هست که یه دکمه ساخته شده باشه...اگه دکمه هایه دیگه هم با همین روش ساخته بشه مشکلی بس بزرگ به وجود میاد.و اون اینه که:

اگه به طور مثال وقتی موس رویه دکمه ی اول باشه و حالا بخواد بره روو دکمه ی بعدی.دکمه ی اول شروع میکنه به عقب برگشتن(در این زمان شما به رویه دکمه ی دوم بروید و به سرعت rollout کنید)
میبینید که دکمه اول دیگه دستور onEnterFrame رو انجام نمیده و در جایه خودش مونده(اما باید طبق اکشن به فریم 1 میرفت!!!!!)

خودم اینطور فک میکنم (مطمعنم) که دلیلش onEnterFrame هست...چون این اکشن برای mc خاصی نوشته نشده...و اگه هر mcیی در حال اجرا باشه و onEnterFrame حذف بشه رویه اون هم تاثیر داره....من میخوام بدونم میتونم کاری کنم که onenterFrame ها به mc خاصی نسبت داده بشن؟؟؟؟

ho0rezam
18-07-2009, 14:52
بابا یکی بکمکه دیگه :(( :(( :((

arjmand200
18-07-2009, 16:13
دوست عزیز کد شما چندتا مشکل داره که 2 تاش اینه که اول چک نمیکنی ایا enterFrame اولی تموم شده یا نه سریع میری سراغ این که اونو حذف کنی و دومی هم به اولی وابسته هستش که باید برای اینکه تا enterFrame تموم نشده نباید اونو پاکش کرد کلا من از رویداد EnterFrame برای انیمیشن استفاده نمکنم و از کلاس مخفی که در فلش برای اینکار گذاشت استفاده میکنم از EnterFrame برای کنترل runTime یه variable استفاده میکنن
من برای مثال سریع یه نمونه نوشتم و از کلاس Tween استفاده کردم اگه نتونستی باهاش کار کنی واست توضیح میدم و خیلی راحتی تو میتونی این فانکشن رو گسترش بدی و چندتا movieClip کنترل کنی به این ترتیب که میتونی مقدار otherMC:MovieClip بنا به دلخوا اضافه کنی و فانکشن رو بسطش بدی کلا دوتا فانکشن هستن که یکی برای رویداد onRollOver و دیگری onRollOut هستن که انیمیشن رو انجام میدن :



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اینم نمونه کار



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

موفق باشی :5:

ho0rezam
18-07-2009, 22:58
دوست عزیز کد شما چندتا مشکل داره که 2 تاش اینه که اول چک نمیکنی ایا enterFrame اولی تموم شده یا نه سریع میری سراغ این که اونو حذف کنی و دومی هم به اولی وابسته هستش که باید برای اینکه تا enterFrame تموم نشده نباید اونو پاکش کرددستت طلا....هنوز امتحان نکردم....اما مثه اینکه متوجه نشدی :دی
اون currentframe واسه اونه که بفهمونه کاره onenterframe تموم شده...فرض کن با اکشنی mc از فریم1 شروع کرده و رفته رسیده به 12....حالا با onenterframe برگشته به 1 (منم همینو میخواستم) پس وقتی به 1 رسید حالا باید حذف شه دیگه...درسته؟؟؟:دی

arjmand200
18-07-2009, 23:31
دوست من فکر کنم شما درست منظور من رو نفهمیدی ساختار فایل ایمیشن فریمی اینطوری هستش بدون کنترل موقعیت هدر تایملاین همیشه هدر تایملاین به صفر رجو داده خواهد شد پس در اینجا شما قبل از اینکه کنترل کنین که تابع onRollOver تموم نشده یا به اصطلاح ما فلش کارها (trigger) نشده اون رو حذف میکنین

ho0rezam
19-07-2009, 22:18
با سلام.
توو کاره شما مشکلی وجود داره که من دقیقا نمیخوام همون به وجود بیاد

قصد من اینه که اگه از رویه مووی کلیپ rollOut کردم،دقیقا mc از همون جایی که هست برگرده به عقب...نه اینکه از یه جایه تعیین شده اینکارو بکنه.وقتی من روو mc شما rollover میکنم و قبل اینکه circle شروع به حرکت کنه rollOut میکنم...باز میبینم که circle اومده و از یه جایه از قبل تعیین شده در حاله برگشتنه.

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

arjmand200
21-07-2009, 18:01
دوست عزیز من عرض کردم که کد کامل نیست و شما میتونین اونو واسه خودتون تغییر بدین این مشکلی هم که میگین خیلی سخت نیست میتونین با این متغییر اونو حل کنین که در هر بار اجرا مقدار جاری موی کلیپ رو میگیره



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

ho0rezam
21-07-2009, 22:50
ممنون.....