public ResponsiveImageSequenceWidget(ImageSequence initialSequence)
        {
            HAnchor = HAnchor.Stretch;

            ImageSequence = initialSequence;
            if (ImageSequence != null)
            {
                ImageSequence.Invalidated += ImageChanged;
            }

            animation.DrawTarget = this;
            animation.Update    += (s, updateEvent) =>
            {
                var currentImageIndex = ImageSequence.GetImageIndexByTime(currentTime);

                currentTime += updateEvent.SecondsPassed;
                while (ImageSequence.Time > 0 &&
                       currentTime > ImageSequence.Time)
                {
                    currentTime -= ImageSequence.Time;
                }

                var newImageIndex = ImageSequence.GetImageIndexByTime(currentTime);
                updateEvent.ShouldDraw = currentImageIndex != newImageIndex;
            };

            RunAnimation = true;
        }
Ejemplo n.º 2
0
        public ResponsiveImageSequenceWidget(ImageSequence initialSequence)
        {
            HAnchor = HAnchor.Stretch;

            ImageSequence = initialSequence;
            MaximumSize   = new Vector2(initialSequence.Width * GuiWidget.DeviceScale,
                                        initialSequence.Height * GuiWidget.DeviceScale);
            if (ImageSequence != null)
            {
                ImageSequence.Invalidated += ImageChanged;
            }

            animation.DrawTarget = this;
            animation.Update    += (s, updateEvent) =>
            {
                var currentImageIndex = ImageSequence.GetImageIndexByTime(currentTime);

                currentTime += updateEvent.SecondsPassed;
                while (ImageSequence.Time > 0 &&
                       currentTime > ImageSequence.Time)
                {
                    currentTime -= ImageSequence.Time;
                }

                var newImageIndex = ImageSequence.GetImageIndexByTime(currentTime);
                updateEvent.ShouldDraw = currentImageIndex != newImageIndex;
            };

            AnimationRunning = true;
        }
Ejemplo n.º 3
0
        public ImageSequenceWidget(int width, int height)
        {
            LocalBounds = new RectangleDouble(0, 0, width, height);

            animation.DrawTarget = this;
            animation.Update    += (s, updateEvent) =>
            {
                var currentImageIndex = ImageSequence.GetImageIndexByTime(currentTime);

                currentTime += updateEvent.SecondsPassed;
                while (ImageSequence.Time > 0 &&
                       currentTime > ImageSequence.Time)
                {
                    currentTime -= ImageSequence.Time;
                }

                var newImageIndex = ImageSequence.GetImageIndexByTime(currentTime);
                updateEvent.ShouldDraw = currentImageIndex != newImageIndex;
            };

            RunAnimation = true;
        }