For this sort of thing, you will need to be sure that none of your animations “autostart” and that your puzzles will control the playback of the desired animations and music as desired.
You can create a variable called “Start” or anything else you want and assign it a value of false or 0 depending on logic preferences.
You will then assign the “Start button object” and onclick event that changes the variable “Start” to true or 1.
I would also create a procedure that contains your animation controls. Without knowing your project, you might need more than one. These would be also be triggered by the onclick event of the “Start Button” or other conditions you see fit. If triggered by something other than the start button…you can wrap their functions in an IF statement as described below.
Now you may have other buttons or interactive components that might be clickable prior to the start button. If so then you will use an If statement in the onclick of those buttons to test the variable “Start”. If False…do nothing, If true…allow the click.
I would also recommend putting all variables with pre-start values in one procedure and post-start variables in another. This will allow you to reset the application easily using the same soft of IF statements.
Hope this helps.