Ok.
The code that controls what is being painted is looking for a canvas with an id.
When you duplicate the scene the second scenes canvas will have the same id.
This is not a good idea normally, and hype will normally remove the duplicate id. But the canvas is hard coded inside a hype elements innerHTML. So Hype will not touch it.
This means the code will not know which canvas to paint...
So the best thing to do is in the code that loads when a canvas scene loads. We change the code to look for the canvas with a class name.
1, we give every canvas the same class name.
2, we change the code in paintSetup(),
from
mandala = document.getElementById("canvasSignature");
to something like;
var thisSceneID = hypeDocument.currentSceneId()
var thisScene = document.getElementById(thisSceneID)
mandala = thisScene.querySelector(".canvasSignature");
You probably want to change the lines in dataUrl()
var fredaImg = document.getElementById('fredaImg')
to
var thisSceneID = hypeDocument.currentSceneId()
var thisScene = document.getElementById(thisSceneID)
var fredaImg = thisScene.querySelector(".fredaImg");
context.drawImage(fredaImg, 27, 15, 598,600);
and
hypeDocument.showNextScene(hypeDocument.kSceneTransitionCrossfade, 1.1)
to
hypeDocument.showSceneNamed('gallery', hypeDocument.kSceneTransitionCrossfade, 1.1)
And give each save image template's innerHTML a class name and change it and it's path to reflect the image on the scene.
There is likely more to do but hopefully you get the idea.