рд╢реБрдн рджреЛрдкрд╣рд░ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо ObjectAnimator рдФрд░ Animatoretet рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Android рдореЗрдВ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдмреАрдЪ рд╕рдВрдХреНрд░рдордг рдХреЗ рдХрд╕реНрдЯрдо рдПрдирд┐рдореЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗред рд╣рд░ рдХреЛрдИ рдЬреЛ рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИ - рдмрд┐рд▓реНрд▓реА рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд░рддрд╛ рд╣реИред

рдкреБрдирд╢реНрдЪ: рдпрд╣ рд▓реЗрдЦ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╢реБрд░реБрдЖрддреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред
рдЬреАрдердм рдкрд░ рдЙрдкрд▓рдмреНрдз рд╕рднреА рд╕реНрд░реЛрдд рдХреЛрдб
рд╣рдо 2 рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдХреНрд░рдордгрдХрд╛рд▓реАрди рдПрдирд┐рдореЗрд╢рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ:
- рдирдП рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл рдкреБрд░рд╛рдиреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░рдирд╛
- рдкреБрд░рд╛рдиреЗ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл рдПрдХ рдирдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рдПрдирд┐рдореЗрд╢рди
рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП, 2 рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдиреАрдореЗрд╢рди рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рдПрдХ рд╕рд╛рде рдХрдИ рд╡рд╕реНрддреБрдУрдВ (рджрд░рд╡рд╛рдЬреЗ рдХреЗ рдкрддреНрддреЛрдВ) рдХрд╛ рдПрдиреАрдореЗрд╢рди рдФрд░ рдХрдИ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдПрдиреАрдореЗрд╢рди (рдХрд╛рдЧрдЬ рдХреА рдПрдХ рд╢реАрдЯ рддрд╣)
рдПрдХ рдкреБрд░рд╛рдиреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рдПрдирд┐рдореЗрд╢рди

рддреЛ, 3 рдЧрддрд┐рд╡рд┐рдзрд┐ рдмрдирд╛рдПрдБ: FirstActivity, SecondActivity рдФрд░ ThirdActivityред
FirstActivity рдХреЛрдб:
first.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/click_layout" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#00ff00" > <TextView android:layout_gravity="center" android:gravity="center" android:layout_width="wrap_content" android:layout_height="fill_parent" android:textColor="#FFFFFF" android:textSize="40sp" android:text="First" /> </LinearLayout>
FirstActivity.java:
public class FirstActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.first); LinearLayout click = (LinearLayout) findViewById(R.id.click_layout); click.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Bitmap bmp = getBitmap(); ByteArrayOutputStream stream = new ByteArrayOutputStream(); bmp.compress(Bitmap.CompressFormat.PNG, 100, stream); byte[] byteArray = stream.toByteArray(); Intent intent = new Intent(FirstActivity.this, SecondActivity.class); intent.putExtra("picture", byteArray); startActivity(intent); overridePendingTransition(0,0); } }); } private Bitmap getBitmap(){ View root = getWindow().getDecorView().findViewById(android.R.id.content); root.setDrawingCacheEnabled(true); return root.getDrawingCache(); } }
GetBitmap рдлрд╝рдВрдХреНрд╢рди рд╡рд░реНрддрдорд╛рди рд╡рд┐рдВрдбреЛ рдХреЗ рдмрд┐рдЯрдореИрдк рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдореБрдЦреНрдп рддрддреНрд╡ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╕рдордп, рдПрдХ рдирдпрд╛ рдЗрд░рд╛рджрд╛ рдмрдирд╛рдПрдВ, рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдо рдЕрдкрдирд╛ рдмрд┐рдЯрдореИрдк рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдмрд╛рдЗрдЯ рд╕рд░рдгреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдлрд┐рд░ рд╣рдо рд╕реЗрдХрдВрдбрдПрдХреНрдЯрд┐рд╡рд┐рдЯреА рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВред
рд╕реЗрдХрдВрдбрдПрдХреНрдЯрд┐рд╡рд┐рдЯреА рдХреЛрдб:
second.xml:
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/click_layout" android:background="#ff0000" > <TextView android:layout_gravity="center" android:gravity="center" android:layout_width="wrap_content" android:layout_height="fill_parent" android:textColor="#FFFFFF" android:textSize="40sp" android:text="Second" /> <LinearLayout android:orientation="horizontal" android:weightSum="100" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ImageView android:layout_weight="50" android:layout_width="0dip" android:layout_height="fill_parent" android:id="@+id/left_image"/> <ImageView android:layout_weight="50" android:layout_width="0dip" android:layout_height="fill_parent" android:id="@+id/right_image"/> </LinearLayout> </FrameLayout>
рд╣рдорд╛рд░реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдореБрдЦреНрдп рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдлреНрд░реЗрдорд▓реИрдЯрдЖрдЙрдЯ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ 2 рд▓реАрдирд┐рдпрд░рд▓рд╛рдИрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕рд╛рдордЧреНрд░реА рд╣реЛрддреА рд╣реИ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рд╡реНрдпреВ рд╣реИ)ред рджреВрд╕рд░реЗ рдореЗрдВ 2 рдЗрдореЗрдЬ рд╡реНрдпреВ рд╣реИрдВ, рдЬреЛ рд╕реНрдХреНрд░реАрди рдХреЛ рдЖрдзреЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдПрдиреАрдореЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдПрдиреАрдореЗрд╢рди рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрджрдо рдЙрдард╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- рдкрд╣рд▓реА рдЧрддрд┐рд╡рд┐рдзрд┐ рд╕реЗ рдкрд╛рд░рд┐рдд рдмрд╛рдЗрдЯ рд╕рд░рдгреА рд╕реЗ рдПрдХ рдмрд┐рдЯрдореИрдк рдмрдирд╛рдПрдВ
- рдмрд┐рдЯрдореИрдк рдХреЛ 2 рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдмрдВрдзрд┐рдд ImageView рдореЗрдВ рд▓реЛрдб рдХрд░реЗрдВ
- AnimatorSet рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдПрдХ рд╕рд╛рде рджреЛрдиреЛрдВ ImageView рдХреЗ рд░реЛрдЯреЗрд╢рди рдПрдиреАрдореЗрд╢рди рдЦреЗрд▓рддреЗ рд╣реИрдВ
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second); Bundle extras = getIntent().getExtras(); byte[] byteArray = extras.getByteArray("picture"); Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length); left = (ImageView) findViewById(R.id.left_image); right = (ImageView) findViewById(R.id.right_image); int centerWidth = bmp.getWidth()/2; Bitmap bmpLeft,bmpRight; bmpLeft = Bitmap.createBitmap(bmp,0,0,centerWidth,bmp.getHeight()); bmpRight = Bitmap.createBitmap(bmp,centerWidth,0,bmp.getWidth() - centerWidth,bmp.getHeight()); left.setImageBitmap(bmpLeft); right.setImageBitmap(bmpRight); ViewTreeObserver observer = left.getViewTreeObserver(); observer.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { left.getViewTreeObserver().removeOnPreDrawListener(this); startEnterAnimation(); return true;
OnCreate рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рд╣рдо рдПрдХреНрд╕реНрдЯреНрд░рд╛ рдХрд▓рд╛рдХрд╛рд░ рд╕реЗ рдмрд┐рдЯрдореИрдк рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ 2 рдмрд┐рдЯрдореИрдк рдореЗрдВ Bitmap.createBitmap () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЪрд┐рддреНрд░ ImageView рдореЗрдВ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рдПрдХ рдСрдмреНрдЬрд░реНрд╡рд░ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ рдЬреЛ рдСрдирдбреНрд░рд╛рд╡ рдЗрдореЗрдЬ рд╡реНрдпреВ рдЗрд╡реЗрдВрдЯ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░реЗрдЧрд╛ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкрд╣рд▓реЗ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕реЗ рдкрд╣рд▓реЗ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ, рд╣рдо рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рдПрдиреАрдореЗрд╢рди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
private void startEnterAnimation() { left.setPivotY(left.getHeight()/2); left.setPivotX(0); right.setPivotY(left.getHeight()/2); right.setPivotX(right.getWidth()); Animator leftAnim = ObjectAnimator.ofFloat(left, "rotationY", 0, 90); Animator rightAnim = ObjectAnimator.ofFloat(right, "rotationY", 0, -90); AnimatorSet set = new AnimatorSet(); set.setDuration(500); set.playTogether(leftAnim, rightAnim); set.start(); }
рдПрдиреАрдореЗрд╢рди рдХреЛ рд╣реА рд╕реНрдЯрд╛рд░реНрдЯрдПрдЯрд░рдПрдиреАрдореЗрд╢рди () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред SetPivotX () рдФрд░ setPivotY () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рдЙрди рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд╣рдорд╛рд░реА рдЫрд╡рд┐рдпрд╛рдВ рдШреВрдореЗрдВрдЧреАред рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдиреАрдореЗрдЯрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░реЛрдЯреЗрд╢рди рдПрдирд┐рдореЗрд╢рди рдХреЛ рд╕реНрд╡рдпрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
ObjectAnimator рдПрдВрдбреНрд░реЙрдЗрдб 3.0 рдХреЗ рд╕рд╛рде рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдШрдЯрдХ рд╣реИред рдпрд╣ рдХрд┐рд╕реА рднреА рд╡рд╕реНрддреБ рдХреА рдХреБрдЫ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЪреЗрддрди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдмрд╛рдИрдВ рд╡рд╕реНрддреБ рдХреЗ рдлреНрд▓реЛрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реЛрдЯреЗрд╢рдирдПрдХреНрд╕ рдЧреБрдг рдХреЛ рдЪреЗрддрди рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдПрдирд┐рдореЗрд╢рди рдХрд╛ рд╕реЗрдЯ рдПрдирд┐рдореЗрдЯрд░ рд╕реЗрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рдПрдиреАрдореЗрд╢рди рдХреА рдЕрд╡рдзрд┐ 500 тАЛтАЛрдПрдордПрд╕ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕реЗ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдПрдХ рд╕рд╛рде 2 рдПрдирд┐рдореЗрд╢рди рдЦреЗрд▓реЗрдВрдЧреЗред
рдХрд┐рд╕реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рд╕рдорд╛рдкрди рдПрдиреАрдореЗрд╢рди рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХреНрдЯрд┐рд╡рд┐рдЯреА рдСрдирдмреИрдХрдкреНрд░реЗрд╕реНрдб () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ, рд╣рдо рд╕рдорд╛рдкрди рдПрдиреАрдореЗрд╢рди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рд╢реНрд░реЛрддрд╛ рдХреЛ рдЦрддреНрдо () рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдирд╛ рдирд╣реАрдВ рднреВрд▓рддреЗ рд╣реИрдВред
рдПрдХ рдирдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рдПрдиреАрдореЗрд╢рди

рдкреБрд░рд╛рдиреА рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл рдПрдХ рдирдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдЪреЗрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдирдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рдХреБрдЫ рднреА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреЛ рдмрд╕ рдРрдХреНрдЯрд┐рд╡рд┐рдЯреА рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдХреЛ рдкрд╛рд░рджрд░реНрд╢реА рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдерд░реНрдбрдПрдХреНрдЯрд┐рд╡рд┐рдЯреА рдереАрдо рдХреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдлрд╛рдЗрд▓ рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдкреЗрд░реЗрдВрдЯ рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рдереАрдо рдХреЛ рд╕реНрдЯрд╛рдЗрд▓.рдХреЙрдо рдкрд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
<style name="Transparent"> <item name="android:windowNoTitle">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowBackground">@android:color/transparent</item> </style>
рдПрдиреАрдореЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рдпрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧреА:
- OnPreDrawListener рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдФрд░ getBitmap рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдореЗрдВ рдЕрдкрдиреЗ рд▓реЗрдЖрдЙрдЯ рдХрд╛ рдмрд┐рдЯрдореИрдк рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдо рдЗрд╕реЗ рдЕрджреГрд╢реНрдп рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрджреНрдШрд╛рдЯрди рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рдПрдиреАрдореЗрд╢рди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ
- рдкрд░рд┐рдгрд╛рдореА рдмрд┐рдЯрдореИрдк рдХреЛ 4 рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдмрд┐рдЯрдореИрдк рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдПрдХ рдЕрджреГрд╢реНрдп рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдЪрд┐рддреНрд░ рдмрдирд╛рдПрдВ
- рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдПрдиреАрдореЗрд╢рди рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рдорд╛рди рд╣реЛрдЧрд╛, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЫрд╡рд┐ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЯреБрдХрдбрд╝реЗ рдХреЗ рдПрдиреАрдореЗрд╢рди рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдЫрд╡рд┐ рдХреЗ рдЕрдЧрд▓реЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
- рдЦреИрд░, рдкреВрд░реЗ рдПрдиреАрдореЗрд╢рди рдХреЗ рдЕрдВрдд рдореЗрдВ, рд╣рдо рд▓реЗрдЖрдЙрдЯ рдХреЛ рдЗрд╕ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рд╕рд╛рдордЧреНрд░реА рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЫрд┐рдкрд╛рддреЗ рд╣реИрдВ
рд╕рднреА рдПрдиреАрдореЗрд╢рди рд╕рдорд╛рди рдПрдирд┐рдореЗрдЯрд░рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдХреЗрд╡рд▓ рд╡реЗ рдкреНрд▓реЗрд╕реЗрдХреНрд╢реБрдЕрд▓рд▓реА рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рднреА рдПрдирд┐рдореЗрд╢рди рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЪрд▓реЗрдВрдЧреЗред
рдХрд┐рд╕реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рд╕рдорд╛рдкрди рдПрдиреАрдореЗрд╢рди рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
рд╣рдордиреЗ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдмреАрдЪ рдХреНрд╖рдгрд┐рдХ рдПрдирд┐рдореЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ 2 рддрд░реАрдХреЛрдВ рдХреЛ рджреЗрдЦрд╛ред рд▓реЗрдЦ рдХреЗ рд╕рднреА рдХреЛрдб 3.0 рд╕реЗ рдЕрдзрд┐рдХ рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, 1.6 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, рдЬрд╛рдиреЗ-рдорд╛рдиреЗ рдЬреЗрдХ рд╡реНрд╣рд╛рд░реНрдЯрди рд╕реЗ
рдирд╛рдЗрдирдУрд▓реНрдбрдЕрдВрдбрд░реЙрдпрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдПред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬрд┐рд╕ рдкрд░ рдореИрдВ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рд╡рд╣ рд╣реИ рд░реЛрдЯреЗрд╢рди рдФрд░ рдЖрд╡рд░реНрдзрди рдХреЗ рд▓рд┐рдП рд╕рд╛рдкреЗрдХреНрд╖ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ред рдЗрд╕ рд▓рд╛рдпрдмреНрд░реЗрд░реА рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ AnimatorProxy рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпрд╣ рд╕рдм, рдпрджрд┐ рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ - рдореИрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдУрдПрд╕ рдореЗрдВ рдПрдирд┐рдореЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рдкреНрд░рдХрд╛рд╢рди рдЬрд╛рд░реА рд░рдЦреВрдВрдЧрд╛ред