protected void UpdateActorWithAlpha(ClutterFlowBaseActor actor, double alpha) { float ratio = Math.Min(0.75f * (float)coverManager.Timeline.Delta / (float)coverManager.VisibleCovers, 1.25f); OffsetRotationAngle = (float)((rotationAngle / 5) * ratio); OffsetCenterX = -(float)((CenterMargin / 2) * ratio); OffsetZNear = (int)(-(ZNear - ZFar) * 1.5 * ratio); if (coverManager.Timeline.Direction != TimelineDirection.Forward) { OffsetRotationAngle = -OffsetRotationAngle; OffsetCenterX = -OffsetCenterX; } actor.SetScale(coverWidth / actor.Width, coverWidth / actor.Width); if (alpha != 0 || alpha != 1) { //if (!visible_actors.Contains (actor)) visible_actors.Add (actor); actor.Show(); if (alpha < AlphaStep) { MoveAndFadeOutActor(actor, (float)(alpha / AlphaStep), true); } else if (alpha >= AlphaStep && alpha <= 0.5 - AlphaStep) { MoveActorSideways(actor, (float)((alpha - AlphaStep) / (0.5f - 2 * AlphaStep)), true); } else if (alpha > 0.5f - AlphaStep && alpha < 0.5f + AlphaStep) { MoveAndRotateActorCentrally(actor, (float)((alpha - 0.5f) / AlphaStep)); } else if (alpha >= 0.5f + AlphaStep && alpha <= 1 - AlphaStep) { MoveActorSideways(actor, (float)((1 - AlphaStep - alpha) / (0.5f - 2 * AlphaStep)), false); } else if (alpha > 1 - AlphaStep) { MoveAndFadeOutActor(actor, (float)((1 - alpha) / AlphaStep), false); } } else { //if (visible_actors.Contains (actor)) visible_actors.Remove (actor); actor.Hide(); } }
protected void HideActor(ClutterFlowBaseActor actor) { actor.Hide(); }