Scrap everything!
Not really, but I did essentially start over. By the end of Episode 07 I had replaced 15 True/False variables for evaluating drag item (Ring) positions to 5 Number variables. Much easier to manage.
One of the other challenges I was facing was left over from Episode 06 where Storyline has inherent behaviors as it relates to drag-and-drop interactions that are somewhat limiting for a complex design such as this Tower of Hanoi puzzle.
Regardless if the design is custom drag-and-drop using triggers to evaluate drop target positions or a Convert to Freeform drag-and-drop interaction, Storyline has three unavoidable inherent behaviors:
- Storyline will snap a drag item back to its starting position if not dropped on an intended target regardless of the drag item’s last known position.
- Storyline has a setting only when Converting to Freeform to prevent two drag items from occupying the same drop target. That’s useful when the starting position of the drag item is irrelevant. Again, this setting does not account for a drag item’s last known position.
- Storyline will always *see* a drop target regardless if it is in a Hidden state or a solid shape mask over the drop target.
How do we prevent these behaviors when there are no triggers in this current version of Storyline (v3 / v360) that allow me to position an object based on X, Y coordinates?
Scrap the current design
I had to think differently about the approach. Huge Kudos to David Anderson at Articulate for allowing me to pick his brain late at night after Episode 07. I shared the dilemma I was facing and we brainstormed a few ideas…
- Option 1 – Use motion paths or Fly In / Fly Out animation for drop targets.
- Rationale: if Storyline can’t *see* the object on the timeline, it doesn’t know it is there.
- Option 2 – Add additional object states to drop targets and change them based on when a drag item is dropped on it.
- Rationale: depending on the Ring game play move, only the next available drop targets will be accessible.
- Option 3 – Use Layers.
- For every Ring game play move, show a new layer. Each new layer would only have the next move’s available positions.
Studying these options I used process of elimination as it related to overall effort and management of triggers. I already had a pile of triggers with just a 2-Ring game play and could foresee the exponential increase in triggers when adding 3, 4, and 5 rings to the game play. Adding more triggers to manage motion paths or animations would get even more insane. Option 1 out!
Option 2 didn’t seem feasible. For one, I would have to build a separate prototype to test if that approach would even work. Plus, there was something about that approach that I couldn’t figure out in my head that made sense, but I couldn’t say. The only way to prove/disprove was to build and test. Option 2 goes on the shelf for now.
Option 3 using layers seemed like the next logical approach. I could see how I could avoid Storyline from snapping drag item objects back to their starting point, only have drop targets for potential Ring movement while preventing two drag items on the same drop target. Option 3 is a go!
Off we go deleting everything and starting over. I got into a good rhythm and everything is working and testing successful by preventing those Storyline inherent behaviors explained above from occurring. I’ll clean everything up in Episode 09 and if all goes well I’ll add a third ring to the game play!
AUGUST 18, 2017 FACEBOOK LIVE BROADCAST VIDEO:
Be sure to LIKE NuggetHead Studioz Facebook Page to keep up with notifications and future live events! While you’re at it, go ahead and subscribe to my YouTube Channel to keep up to date on any wacky future ideas!
Episode 8 – Aug 18, 2017 – YOU ARE HERE