Animated Timer problem

Hi, I have BIG problem :frowning:
The timer does not work properly on the second slide pass.

If I go back to the first frame of the slide. The timer is already complete. Even if I go to the previous slide and continue to the timer slide.

Isn’t there a function to reset the timer? I think it’s a mistake.
Sample Project:
TimerIssue.approj

Playing should pause when text: NOW IS PAUSE is on the screen.
But the playback will not stop at the second time and later.

Thanks All.
Lukas

@mpluky - I would suggest creating an onLoad action to start the timer when the slide loads.

Hope this is helpful.

I tried this solution but it doesn’t work properly. The timer must be activated at its beginning according to the timeline.

I have a much more complex project with many timers, I added another timer to the sample. If I put the start timer onload, my palyback stops very soon (in wrong - different time at timeline).

TimerIssue2.approj

Hmm… Maybe I misunderstand your needs.
Here is my attempt.
It seems to work as I thought you intended.

TimerIssue.approj (324 KB)

Edit: I see now in the second example how that changes the scope. Lemme see what I can do.

@mpluky - well, after struggling a bit myself with trying to use the GUI to solve the problem - I believe my solution would be to utilize JavaScript to develop an event based solution rather than a timeline driven one.

Perhaps with a little greater context of the desire - I might offer another way to tackle the task.

I was viewing the onLoad event as another way to phrase onEnter but it seems that the onLoad actions only wanted to function the first time the slide was loaded rather than on every entry to the slide. Not sure if that is accurate or not but I believe that is what I was experiencing as things would work fine the first time through but would fail on a subsequent attempt since I figured the slide had already been loaded.

I may work on this approach and see if it yields better results.

Hello. No problem, no need to use GUI, javascript would be a good solution.

The only thing I need to be able make a PAUSE Presentation on the timeline with any object on timeline (with attached javascript). Only thing I found and can catch an event from the timeline is a timer.

I have a complex course where is for example 16 timers on slide with various animations and interactions requiring a pause on exact frames in timeline. The course is long, complex and most importantly almost finished. On the end I found out that it is not possible to visit timers slides repeatedly.

Many thanks.
Lukas

What sort of animation are we talking about?
Are the objects on screen meant to display in sequence or can the order vary based on input from the learner?
Are the timers a requirement?
Is there a need to revisit a slide once it is completed?

This working only for first timer on slide. When You have second timer on slide (or more), you cannot put start all timers on begin of slide.

You can try to fix it.
TimerIssue-twice.approj

I can’t do it :frowning: yet

It is special e-learning for company in Czech Rep.
I can not send it, because is under NDA.

The problem is described in the sample:
TimerIssue2.approj

I need make a pause on specific frames on slide.

First play - working.
Second play - I don’t have a solution yet.

Your solution working, but only for first timer (in the second round):
TimerIssue-twice.approj

Of course - it is difficult to tell if this solution will work without additional context but perhaps this will help you. I am sure it will require some tweaking.

I don’t know if you need the little timers to show or if they were just a means to an end for you in the moment. I don’t know if it is required that the timings be different. I didn’t create a visible timer and the timings are now the same. (5s)

Nonetheless - I created a small timer as a function that can be reused when called.
I kept your timeline based layout in mind since you stated that you were mostly done. Hopefully that means minimal rework.

// This code is placed as an onLoad action
// A time-based function that will hide the button
// then play the project for five seconds
// after five seconds it will pause the presentation
// and show the button so that it can play forward
window.myTimer = function() {
    prez.object("goBtn").hide();
    prez.pause(false);
    setTimeout(function() {
        prez.pause(true);
        prez.object("goBtn").show();
    },5000)
}

You could perhaps adapt the timing of your project so that you can adjust the 5000 value (5 seconds) to align with your objects.

The end button simply takes you back to the beginning of the slide.

prez.slideTime(0);

The slide will be in a paused state.
The button to advance again will be visible to start over.
Please note that I named this button “goBtn”

The button simply calls the myTimer function.

myTimer();

Hopefully, this can be adapted to your needs.
I think I kept it as least complicated as I could.

I am also attaching the sample so you can study it.

timers.approj (292 KB)

Hello,

I see that your project runs a series of animations then pauses; click to continue with the next series of animations; and be able to navigate backward. It might be more suitable and simpler to use a click sequence timeline rather than the main timeline and a series of timers.
For more information about Click Sequence timeline, please refer to this tutorial: How to Work with Click Sequence Timeline in ActivePresenter 9

Regards,

1 Like

This is an interesting idea.
I admit that I have not used other timelines

In fact, I rarely use them at all - as I try to make all things event driven.
I used it in this case because it was part of the scenario.

2 Likes

I found better solution.
I use silent sound and event: on Ended.
It working like timers - using GUI :smiley: Without any issues.

TimerIssue3.approj (664 KB)

Thanks All

2 Likes

Glad to hear of your success.

One of the reasons I love ActivePresenter - total designer freedom!
So many ways to arrive at a solution and not being trapped in single workflow.

2 Likes