آموزش انیمیشن در برنامه نویسی فلاتر

4 سال پیش
امتیاز دهید post

آموزش انیمیشن در برنامه نویسی فلاتر

در این درس از آموزش های برنامه نویسی سایت سورس باران، به آموزش انیمیشن در برنامه نویسی فلاتر خواهیم پرداخت.

انیمیشن یک رویه پیچیده در هر برنامه موبایلی است. علیرغم پیچیدگی، انیمیشن تجربه کاربر را به سطح جدیدی ارتقا می دهد و تعامل غنی کاربر را فراهم می کند. به دلیل غنی بودن، انیمیشن به بخشی جدایی ناپذیر از برنامه های موبایل مدرن تبدیل می شود. فریم ورک فلاتر اهمیت انیمیشن را تشخیص می دهد و یک چارچوب ساده و بصری را برای توسعه انواع انیمیشن ها فراهم می کند.

مقدمه

انیمیشن فرایندی است برای نشان دادن یک سری تصاویر / عکس به ترتیب خاص در مدت زمان خاص برای ایجاد توهم حرکت. مهمترین جنبه های انیمیشن به شرح زیر است –

  • انیمیشن دو مقدار مشخص دارد: مقدار شروع و مقدار پایان. انیمیشن از مقدار Start شروع می شود و از یک سری مقادیر میانی عبور می کند و در نهایت در مقادیر End خاتمه می یابد. به عنوان مثال، برای متحرک کردن ویجت برای محو شدن، مقدار اولیه تار بودن کامل و مقدار نهایی تار بودن صفر خواهد بود.
  • مقادیر میانی ممکن است ماهیت خطی یا غیر خطی (منحنی) داشته و بتوانند پیکربندی شوند. بدانید که انیمیشن همانطور که پیکربندی شده است کار می کند. هر پیکربندی احساس متفاوتی را برای انیمیشن ایجاد می کند. به عنوان مثال، محو کردن یک عنصر ماهیت خطی دارد در حالی که تقابل با توپ ماهیتی غیر خطی دارد.
  • مدت زمان روند انیمیشن بر سرعت (کندی یا سرعت) انیمیشن تأثیر می گذارد.
  • توانایی کنترل روند انیمیشن مانند شروع انیمیشن ، متوقف کردن انیمیشن تکرار انیمیشن برای تنظیم تعداد بار، معکوس کردن روند انیمیشن و غیره ،
  • در برنامه نویسی فلاتر، سیستم انیمیشن هیچ انیمیشن واقعی را انجام نمی دهد. در عوض، فقط مقادیر مورد نیاز در هر فریم برای ارائه تصاویر را فراهم می کند.

 

کلاسهای مبتنی بر انیمیشن

سیستم انیمیشندر برنامه نویسی فلاتر براساس  objects Animation ساخته شده است. کلاسهای اصلی انیمیشن و کاربرد آن به شرح زیر است –

انیمیشن

مقادیر درون یابی شده را برای مدت زمان معینی تولید می کند. رایج ترین کلاس های انیمیشن عبارتند از –

  • <Animation<double مقادیر بین دو عدد اعشاری را درون یابی کنید
  • <Animation<Color – بین دو رنگ از یکدیگر استفاده کنید
  • <Animation <Size – اندازه های بین دو اندازه را درون یابی کنید
  • AnimationController – شی ویژه انیمیشن برای کنترل خود انیمیشن. هر زمان که برنامه برای یک قاب جدید آماده باشد، مقادیر جدیدی ایجاد می کند. از انیمیشن مبتنی بر خط پشتیبانی می کند و مقدار آن از 0.0 تا 1.0 شروع می شود

 

در اینجا، کنترل کننده انیمیشن را کنترل می کند و گزینه مدت زمان فرایند انیمیشن را کنترل می کند. vsync گزینه ویژه ای است که برای بهینه سازی منابع مورد استفاده در انیمیشن استفاده می شود.

 

CurvedAnimation

مشابه AnimationController اما از انیمیشن غیر خطی پشتیبانی می کند. انیمیشن را می توان به صورت زیر به همراه شی متحرک استفاده کرد –

 

Tween<T>

از Animatable <T> گرفته شده و برای تولید اعداد بین هر دو عدد غیر از 0 و 1 مورد استفاده قرار می گیرد. می توان آن را همراه با شی Animation با استفاده از متد animate و عبور شی واقعی Animation استفاده کرد.

 

Tween همچنین می تواند همراه با CurvedAnimation به صورت زیر استفاده شود –

 

در اینجا، کنترل کننده، کنترل کننده واقعی انیمیشن است. منحنی نوع غیرخطی و customTween دامنه سفارشی از 0 تا 255 را فراهم می کند.

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

جریان کار انیمیشن به شرح زیر است –

کنترل کننده انیمیشن را در initState از StatefulWidget تعریف و شروع کنید.

 

برای تغییر حالت ویجت، انیمیشن مبتنی بر addListener ،listener اضافه کنید.

 

برای رد کردن این فرآیند می توان از ویجت های توکار، AnimatedWidget و AnimatedBuilder استفاده کرد. هر دو ویجت شی متحرک را می پذیرد و مقادیر فعلی مورد نیاز انیمیشن را دریافت می کند.

مقادیر انیمیشن را در طی مراحل ساخت ویجت دریافت کنید و سپس آن را برای عرض، ارتفاع یا هر خاصیت مربوطه به جای مقدار اصلی اعمال کنید.

 

برنامه کاربردی

اجازه دهید برای درک مفهوم انیمیشن در فریم ورک فلاتر، یک برنامه ساده مبتنی بر انیمیشن بنویسیم.

  • یک برنامه فلاتر جدید در Android studio ، product_animation_app ایجاد کنید.
  • پوشه assets را از Product_nav_app به Product_animation_app کپی کرده و assets را در داخل فایل pubspec.yaml اضافه کنید.

 

  • کد راه اندازی پیش فرض را حذف کنید (main.dart).
  • import و تابع اصلی را اضافه کنید.

 

  • ویجت MyApp مشتق شده از StatefulWidgtet را ایجاد کنید.

 

  • ویجت _MyAppState را ایجاد کنید و علاوه بر متد ساخت پیش فرض، initState را پیاده سازی و دفع کنید.

 

  • در متد initState، ما یک شی کنترلر انیمیشن (کنترل کننده)، یک شی انیمیشن ایجاد کرده ایم و انیمیشن را با استفاده از کنترلر آغاز کرده ایم.
  • در متد dispose، ما شی کنترلر انیمیشن (کنترل کننده) را از بین برده ایم.
  • در متد ساخت، انیمیشن را از طریق سازنده به ویجت MyHomePage ارسال کنید. اکنون، ویجت MyHomePage می تواند از شی متحرک برای متحرک سازی محتوای آن استفاده کند.
  • اکنون، ویجت ProductBox را اضافه کنید

 

یک ویجت جدید ایجاد کنید، MyAnimatedWidget برای انجام محو شدن انیمیشن با استفاده از تار شدن.

 

در اینجا، ما از AniatedBuilder برای انجام انیمیشن خود استفاده کرده ایم. AnimatedBuilder یک ویجت است که محتوای خود را هنگام ساخت انیمیشن به طور همزمان می سازد. این یک شی انیمیشن را می پذیرد تا مقدار انیمیشن فعلی را دریافت کند. ما برای تنظیم تار بودن ویجت کودک از مقدار انیمیشن، animation.value استفاده کرده ایم. در واقع، ویجت کودک را با استفاده از مفهوم تار شدن متحرک می کند.

در آخر، ویجت MyHomePage را ایجاد کنید و از شی متحرک برای متحرک سازی هر یک از محتوای آن استفاده کنید.

 

در اینجا، از FadeAnimation و MyAnimationWidget برای متحرک سازی دو مورد اول در لیست استفاده کرده ایم. FadeAnimation یک کلاس ساخت انیمیشن است که ما با استفاده از مفهوم opacity کودک خود را متحرک سازی کردیم.

کد کامل به شرح زیر است –

برای دیدن نتایج، برنامه را کامپایل و اجرا کنید. نسخه اولیه و نهایی برنامه به شرح زیر است

Initial Version

Final Version

منبع.

لیست جلسات قبل آموزش برنامه نویسی فلاتر

  1. معرفی برنامه نویسی فلاتر
  2. آموزش نصب فلاتر
  3. اصول ایجاد یک برنامه فلاتر در Android Studio
  4. معماری فریم ورک برنامه نویسی فلاتر
  5. مقدمه ای بر برنامه نویسی دارت
  6. مقدمه ای بر ویجت ها در برنامه نویسی فلاتر
  7. آموزش طرح بندی در برنامه نویسی فلاتر 
  8. ژست های حرکتی در برنامه نویسی فلاتر 
  9. مدیریت State در برنامه نویسی فلاتر
امتیاز دهید post
0
برچسب ها :
نویسنده مطلب saber

دیدگاه شما

بدون دیدگاه