+using System;\r
+using Tizen.NUI;\r
+\r
+namespace Tizen.TV.NUI.Examples\r
+{\r
+ public class AnimationSample\r
+ {\r
+ private Application application;\r
+ private View view;\r
+ private Animation toAnimation1;\r
+ private Animation toAnimation2;\r
+ private Animation byAnimation;\r
+ private Animation pathAnimation;\r
+ private Animation betweenAnimation;\r
+\r
+ private AnimationSample(Application application)\r
+ {\r
+ this.application = application;\r
+ this.application.Initialized += OnInitialize;\r
+ }\r
+\r
+ static void Main(string[] args) //changed
+ {\r
+ AnimationSample animationSample = new AnimationSample(Application.NewApplication());\r
+ animationSample.MainLoop();\r
+ }\r
+\r
+ private void MainLoop()\r
+ {\r
+ application.MainLoop();\r
+ }\r
+\r
+ private void OnInitialize(object source, EventArgs e)\r
+ {\r
+ view = new View();\r
+ view.Size = new Size(200, 200, 0);\r
+ view.Position = new Position(0, 0, 0);\r
+ view.AnchorPoint = AnchorPoint.TopLeft;\r
+ view.BackgroundColor = Color.Red;\r
+\r
+ Stage.Instance.GetDefaultLayer().Add(view);\r
+\r
+ toAnimation1 = new Animation(1000);\r
+ toAnimation1.Looping = true;\r
+ toAnimation1.DefaultAlphaFunction = new AlphaFunction(new Vector2(0.21f, 2), new Vector2(0.14f, 1));\r
+\r
+ toAnimation2 = new Animation(1000);\r
+ toAnimation2.Looping = true;\r
+\r
+ byAnimation = new Animation(1000);\r
+ byAnimation.AnimateBy(view, "PositionX", 100.0f);\r
+ byAnimation.AnimateBy(view, "PositionY", 100.0f);\r
+\r
+ Path path = new Path();\r
+ path.AddPoint(new Position(100, 100, 0));\r
+ path.AddPoint(new Position(600, 600, 0)); //added\r
+ path.AddPoint(new Position(1100, 100, 0)); //changed\r
+ path.GenerateControlPoints(0.5f); //added\r
+ pathAnimation = new Animation(1000);\r
+ pathAnimation.AnimatePath(view, path, new Vector3(0, 0, 0));\r
+\r
+ KeyFrames keyFrames = new KeyFrames();\r
+ keyFrames.Add(0.0f, new Vector3(10.0f, 10.0f, 10.0f));\r
+ keyFrames.Add(0.7f, new Vector3(200.0f, 200.0f, 200.0f));\r
+ keyFrames.Add(1.0f, new Vector3(100.0f, 100.0f, 100.0f));\r
+ betweenAnimation = new Animation(1000);\r
+ betweenAnimation.AnimateBetween(view, "Position", keyFrames); //activated\r
+\r
+ view.KeyEvent += OnKeyPressed;\r
+ view.Focusable = true;\r
+ view.SetKeyInputFocus();\r
+ }\r
+\r
+ private void AllStop()\r
+ {\r
+ toAnimation1.Stop();\r
+ toAnimation2.Stop();\r
+ byAnimation.Stop();\r
+ pathAnimation.Stop();\r
+ betweenAnimation.Stop();\r
+ }\r
+\r
+ private bool OnKeyPressed(object source, View.KeyEventArgs e)\r
+ {\r
+ if (e.Key.State == Key.StateType.Down)\r
+ {\r
+ if (e.Key.KeyPressedName == "Right")\r
+ {\r
+ AllStop();\r
+\r
+ toAnimation1.Clear();\r
+\r
+ toAnimation1.AnimateTo(view, "PositionX", view.PositionX + 100.0f);\r
+ toAnimation1.AnimateTo(view, "PositionY", view.PositionY + 100.0f);\r
+ toAnimation1.AnimateTo(view, "ColorAlpha", 0.5f);\r
+ toAnimation1.AnimateTo(view, "PositionX", view.PositionX + 200.0f, 1000, 2000);\r
+ toAnimation1.AnimateTo(view, "ColorAlpha", 1.0f, 1500, 2000);\r
+\r
+ toAnimation2.AnimateTo(view, "Scale", new Size(1.2f, 1.2f, 1.0f));\r
+ toAnimation2.AnimateTo(view, "Scale", new Size(0.7f, 0.7f, 1.0f), 1200, 2200);\r
+\r
+ toAnimation1.Play();\r
+ toAnimation2.Play();\r
+ }\r
+ else if (e.Key.KeyPressedName == "Left")\r
+ {\r
+ AllStop();\r
+ byAnimation.Play();\r
+ }\r
+ else if (e.Key.KeyPressedName == "Up")\r
+ {\r
+ AllStop();\r
+ pathAnimation.Play();\r
+ }\r
+ else if (e.Key.KeyPressedName == "Down")\r
+ {\r
+ AllStop();\r
+ betweenAnimation.Play();\r
+ }\r
+ }\r
+\r
+ return true;\r
+ }\r
+ }\r
+}\r