If you are opening a web object in a new window, then the user would just close that window. You do not have any control over that. If it is on a slide, then there should not be an issue, since you never left Storyline.
The slide contains three web objects. Each web object contains a Rise course that was translated into a different language. For example, the three web objects can be the same course in English, French, and Spanish. So the learner needs to view only one of the web objects and then get credit for completion, but we want to ensure they have completed the course in the web object.
We thought about using Storyline blocks to track completion in Rise, but we don't know how all that would work in SCORM with the client's LMS. That led us to flip to Rise web objects in Storyline.
I am not sure I understand your setup. Are you loading scorms inside storyline as they won’t pass completion to storyline or the LMS.
Or are you loading rise as web output? Either way they won’t pass completion to the storyline module without some link. The storyline block should pass completion to the storyline block.
The idea was that we would publish the Storyline project with a feature to track completion like the Completion trigger. The gap we are trying to fill in is getting the learner to proceed from the web object to the Completion trigger (or layer or results slide).
Depends on how the web object is linked, but if they are on the same domain, Yes, it is in an iframe within an iframe but you can send a variable from the storyline block that can be picked up form the storyline course and use a change in that to unlock the next button.
How would you set up the triggers? I'm imagining the Storyline block would have a completion variable with a trigger that changes it from False to True, but how would that variable appear in the Storyline course?
Consider this idea: You could use an object or button within Rise to modify a Storyline variable. By altering this variable, you gain the ability to transition from Rise to the subsequent slide in Storyline simply by clicking the Rise button. I've attached a video to demonstrate this concept. To implement it, you'll need to import the published Rise course into Storyline as a WebObject.
Would you be able to show the triggers in the video? I wasn't able to get the two Storyline projects to share the same variable. Does that require JavaScript?
I don’t believe Nedim used a second storyline variable he added code to a Ride button to pass a variable to the storyline container.
Sent from my iPhone
In Rise: Create a button to signify the end of the course. I've entered 'next' as the button text, but feel free to use any text you prefer. We'll utilize its "aria-label" attribute later to distinguish this button in Storyline. For example, if you enter "NEXT", the "aria-label" will match this value. Publish to Web. Edit index.html located in your published folder and copy and paste the script bellow at the end of the body element:
<script>
let player = parent.GetPlayer();
function findRiseBtn() {
let riseBtn = document.querySelector('[aria-label="next"]');
if (riseBtn) {
// If Rise btn is found, attach the event listener
riseBtn.addEventListener('click', function() {
console.log('clicked');
player.SetVar('complete', true)
});
} else {
// If Rise btn is not found, wait for a short period and then try again
setTimeout(findRiseBtn, 100); // Retry after 100 milliseconds
}
}
// Start searching for Rise btn
findRiseBtn();
</script>
Note: This button won't be visible in Rise immediately upon launching the Rise course. Therefore, I've implemented functionality in JavaScript to continually search for it until it becomes visible. Once found and clicked, it will trigger a function to modify the variable value in Storyline.
In Storyline: Create a T/F variable "complete" (or what ever you prefer, just make sure it matches the variable in the script above), and set it to "false". Insert a WebObject and choose the folder where the index.html of the published Rise course is located. Triggers in SL:
You can customize triggers as necessary. For example, display a popup message when the learner closes the Rise course before reaching the last block with a button, while the "complete" variable is still set to "false", or something similar. Please find the attached .story file that I used for testing purposes.
18 Replies
If you are opening a web object in a new window, then the user would just close that window. You do not have any control over that. If it is on a slide, then there should not be an issue, since you never left Storyline.
Thank you! We haven't found a design that ensures completion yet.
How is the course marking complete? Are you expecting something back from the web object?
The slide contains three web objects. Each web object contains a Rise course that was translated into a different language. For example, the three web objects can be the same course in English, French, and Spanish. So the learner needs to view only one of the web objects and then get credit for completion, but we want to ensure they have completed the course in the web object.
How are you passing completion back to storyline?
Then how are you passing completion from the LMS back?
I suspect you could do it with a storyline block embedded in the rise, but would have to navigate the nightmare of nested iframe.
Sent from my iPhone
We thought about using Storyline blocks to track completion in Rise, but we don't know how all that would work in SCORM with the client's LMS. That led us to flip to Rise web objects in Storyline.
I am not sure I understand your setup. Are you loading scorms inside storyline as they won’t pass completion to storyline or the LMS.
Or are you loading rise as web output? Either way they won’t pass completion to the storyline module without some link. The storyline block should pass completion to the storyline block.
Sent from my iPhone
The idea was that we would publish the Storyline project with a feature to track completion like the Completion trigger. The gap we are trying to fill in is getting the learner to proceed from the web object to the Completion trigger (or layer or results slide).
You may be able to send completion of the web object to unlock the next button. Would have to be the storyline block that does that.
The question is the same as Ron says are you opening in a new window or using inslidw.
Sent from my iPhone
Phil, are you saying that a Storyline block in Rise can unlock a next button in Storyline? How would you set that up?
Depends on how the web object is linked, but if they are on the same domain, Yes, it is in an iframe within an iframe but you can send a variable from the storyline block that can be picked up form the storyline course and use a change in that to unlock the next button.
Sent from my iPhone
How would you set up the triggers? I'm imagining the Storyline block would have a completion variable with a trigger that changes it from False to True, but how would that variable appear in the Storyline course?
Consider this idea: You could use an object or button within Rise to modify a Storyline variable. By altering this variable, you gain the ability to transition from Rise to the subsequent slide in Storyline simply by clicking the Rise button. I've attached a video to demonstrate this concept. To implement it, you'll need to import the published Rise course into Storyline as a WebObject.
Would you be able to show the triggers in the video? I wasn't able to get the two Storyline projects to share the same variable. Does that require JavaScript?
I don’t believe Nedim used a second storyline variable he added code to a Ride button to pass a variable to the storyline container.
Sent from my iPhone
Thanks, Phil, I didn't see the code in the video. I'd love to see how that would work.
Phil is correct.
In Rise:
Create a button to signify the end of the course. I've entered 'next' as the button text, but feel free to use any text you prefer. We'll utilize its "aria-label" attribute later to distinguish this button in Storyline. For example, if you enter "NEXT", the "aria-label" will match this value. Publish to Web. Edit index.html located in your published folder and copy and paste the script bellow at the end of the body element:
<script>
Note: This button won't be visible in Rise immediately upon launching the Rise course. Therefore, I've implemented functionality in JavaScript to continually search for it until it becomes visible. Once found and clicked, it will trigger a function to modify the variable value in Storyline.
In Storyline:
Create a T/F variable "complete" (or what ever you prefer, just make sure it matches the variable in the script above), and set it to "false". Insert a WebObject and choose the folder where the index.html of the published Rise course is located. Triggers in SL:
You can customize triggers as necessary. For example, display a popup message when the learner closes the Rise course before reaching the last block with a button, while the "complete" variable is still set to "false", or something similar. Please find the attached .story file that I used for testing purposes.
Wow! Thank you for working that out and sending the example. It makes sense now.