public void CreateClickedCloneAnimation(ClutterFlowBaseActor actor, uint delay) { if (actor.Parent != null) { Clone clone = new Clone(actor); MoveAndRotateActorCentrally(clone, 0); double scaleX, scaleY; actor.GetScale(out scaleX, out scaleY); clone.SetScale(scaleX, scaleY); ((Container)actor.Parent).Add(clone); clone.Hide(); clone.Opacity = 255; clone.Depth = ZNear + 1; Timeline timeline = new Timeline(CoverManager.MaxAnimationSpan * 4); timeline.Delay = delay; timeline.AddMarkerAtTime("start", 1); timeline.MarkerReached += delegate { clone.ShowAll(); }; Animation anmn = clone.AnimateWithTimelinev((ulong)AnimationMode.EaseInExpo.value__, timeline, new string[] { "opacity" }, new GLib.Value((byte)50)); clone.AnimateWithTimelinev((ulong)AnimationMode.EaseInExpo.value__, timeline, new string[] { "scale-x" }, new GLib.Value(scaleX * 2)); clone.AnimateWithTimelinev((ulong)AnimationMode.EaseInExpo.value__, timeline, new string[] { "scale-y" }, new GLib.Value(scaleY * 2)); clone.AnimateWithTimelinev((ulong)AnimationMode.EaseInExpo.value__, timeline, new string[] { "fixed::anchor-x" }, new GLib.Value(clone.Width / 2)); clone.AnimateWithTimelinev((ulong)AnimationMode.EaseInExpo.value__, timeline, new string[] { "fixed::anchor-y" }, new GLib.Value(clone.Height / 4)); anmn.Completed += HandleClickedCloneCompleted; } }
public void CreateClickedCloneAnimation(ClutterFlowBaseActor actor, uint delay) { if (actor.Parent!=null) { Clone clone = new Clone(actor); MoveAndRotateActorCentrally (clone, 0); double scaleX, scaleY; actor.GetScale (out scaleX, out scaleY); clone.SetScale (scaleX, scaleY); ((Container) actor.Parent).Add (clone); clone.Hide (); clone.Opacity = 255; clone.Depth = ZNear+1; Timeline timeline = new Timeline (CoverManager.MaxAnimationSpan*4); timeline.Delay = delay; timeline.AddMarkerAtTime ("start", 1); timeline.MarkerReached += delegate { clone.ShowAll (); }; Animation anmn = clone.AnimateWithTimelinev ((ulong) AnimationMode.EaseInExpo.value__, timeline, new string[] { "opacity" }, new GLib.Value ((byte) 50)); clone.AnimateWithTimelinev ((ulong) AnimationMode.EaseInExpo.value__, timeline, new string[] { "scale-x" }, new GLib.Value (scaleX*2)); clone.AnimateWithTimelinev ((ulong) AnimationMode.EaseInExpo.value__, timeline, new string[] { "scale-y" }, new GLib.Value (scaleY*2)); clone.AnimateWithTimelinev ((ulong) AnimationMode.EaseInExpo.value__, timeline, new string[] { "fixed::anchor-x" }, new GLib.Value (clone.Width/2)); clone.AnimateWithTimelinev ((ulong) AnimationMode.EaseInExpo.value__, timeline, new string[] { "fixed::anchor-y" }, new GLib.Value (clone.Height/4)); anmn.Completed += HandleClickedCloneCompleted; } }