View Full Version : سوال: ساخت انیمیت باتون با استفاده از State ها و Event ها در Blend
glory.mahdi
جمعه 02 تیر 1391, 22:01 عصر
سلام بر دوستان
من یه باتون گرافیکی ساختم و سه نوع انیمیشن در State اون براش درست کردم.
به ترتیب : MouseOver_MouseLeave و StandBy
State StandBy برای زمانیه که موس روی باتون نرفته ، در واقع میخوام انیمیت SatandBy باتونم دائمی باشه به جز زمانی که موس روش نیست .
میخوام بعد از کنار رفتن موس و انیمیت Mouse Leave به حالت انیمیت stand By بره ولی برای event باتونم در قسمت Mouse Leave نتونستم دو تا state تعریف کنم که نوبتی پخش بشن.
چطوری یه State دائم درست کنم که بعد از MouseOver_MouseLeave متوقف نشه؟
کدی هم که برای پخش state هام در Eventsاستفاده کردم اینه:
VisualStateManager.GoToState (this , "StandBy" , true);
خدایی کمک کنید خیلی عجله دارم.
glory.mahdi
جمعه 02 تیر 1391, 23:07 عصر
دوستان پس کجایید ؟ خدایی منتظرما ؟ واقعا کسی اینجا نیست به داد ما برسه؟
m.bibjan
شنبه 03 تیر 1391, 00:17 صبح
سلام داداش خوش اومدی به تالار
این رو ببین اول اجرا کن
کاری که کردم اینه
اومدم توی Event ، Load فرم باتن رو چرخوندمش فقط میچرخه.
وقتی موس روش میره حرکت میکنه و عقب و جلو میره . وقتی انیمیتش تموم شد برمیگرده سرجای اولش و فقط میچرخه.انگار تازه فرم لود شده.ظاهرا چیزی هست که میخوای اگه نبود بگو ، در خدمتتیم.
glory.mahdi
شنبه 03 تیر 1391, 00:24 صبح
عزیزم
Load رو خودم هم امتحان کرده بودم، مشکلش اینه که بعد از Mouse Leave انیمیت Loade غیر فعال میشه!
میخواستم Load رو قید نکنم. باید حد اقل یک Event دائمی باشه که گشتم تمامش رو ولی گیر نیاوردم ، باید کد نویسی کنم.
کسی کد بلد نیست.
glory.mahdi
شنبه 03 تیر 1391, 01:42 صبح
سلام داداش خوش اومدی به تالار
این رو ببین اول اجرا کن
کاری که کردم اینه
اومدم توی Event ، Load فرم باتن رو چرخوندمش فقط میچرخه.
وقتی موس روش میره حرکت میکنه و عقب و جلو میره . وقتی انیمیتش تموم شد برمیگرده سرجای اولش و فقط میچرخه.انگار تازه فرم لود شده.ظاهرا چیزی هست که میخوای اگه نبود بگو ، در خدمتتیم.
Bibjan جان ممنون
راهشو پیدا کردم در حد لالیگا
اصلا من راه رو دور کرده بودم، کسی اگر مثل من گیر افتاد بگید تا راهنماییش کنم.
m.bibjan
شنبه 03 تیر 1391, 01:57 صبح
سلام
ممنون
اگه امکانش هست روشش رو بذارین بقیه هم استفاده کنن.(تا بقیه دوستان هم کمی به فکر نوع تاثیر گذاری روز بیفتن، منظورم تو امضام هستش).زهی خیال باطل
مهدی فرزاد
شنبه 03 تیر 1391, 12:43 عصر
سلام
این کار و روش اشتباه است
شما توی Blend در حالت ویرایش استایل کنترل برید بعد در تب States چند حالت مختلف رو می بینید
برای حالت Normal انیمیشنی رو که میخواید در حالت استند بای باشه رو بنویسید
در تب Triggers بار حالت IsMouseOver برابر true روی دکمه مثبت کنار گزینه Actions when Activating کلیک کن و یک انیمیشن بساز برای MouseOver و روی گزینه مثبت کنار Actions when deactivating ;کلیک کن و یک انیمیش بساز برای MouseLeave
حالا یک نکته وجود داره بین اینیمشن های Normal و IsMouseOver تداخل به وجود میاد
برای رفع این مشکل شما نباید انیمیشن نرمال و موس آور رو روی یک المنت بنویسی
مثلا
من یک دکمه دارم که در حالت نرمال رنگش از مشکی به سفید میره و از سفید به مشکی و مدام چشمک میزنه و میخوام وقتی موس روش رفت رنگش آروم قرمز بشه و وقتی موس از روش رفت رنگش آروم آبی بشه و بعد مجدد حالت نرمال ادامه پیدا کنه
برای این کار دوتا Border میگذارم
Botder اول لایه بالاتر هست و border دوم لایه پایین تر
در حالت عادی Border اول دیده نمیشه چون زیر بردر دومه
پس انیمیشن چشمک زدن رو برای Border اول مینویسم
و انیمیشن Mouse ها رو برای Border دوم با ذکر این نکته اگه opacity اون رو صفر میکنم تا Border اول دیده بشه
در ثانیه اول انیمیشن که برای MouseOver نوشتم opacity 100 میشه و در ثانیه آخر MouseLeave مقدار Opacity برابر صفر میشه
اینجوری دوباره Border اول که داره چشمک میزنه نمایان میشه
نیازی به کد نویسی در C# نیست
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.