Zipping up
May 4, 1998
by Pat McClellan
Dear Multimedia Handyman,
I have built a coat zipper - as in the things you wear, and I want to be able to script a way of doing up & undoing the coat. If you have any ideas they would be greatly appriciated.
Richard Schatzberger
Dear Richard,
Here's the way I would approach it. Create all of your images of the zipper in the various stages of zipped-ness. Let's say that you end up with 15 images. Put them into your cast as consecutive members. Now, create a separate image of the zipper pull-tab.
In your score, let's say you put the zipper image (background) into sprite 4 and the zipper pull-tab in sprite 5. Our goal will be to let the motion of sprite 5 determine which image is displayed in sprite 4.
I'll assume you're using Director 6, so we'll attach a behavior to sprite 5 (the pull-tab). The behavior will allow the pull-tab to move up and down with the mouse, within the limits of your zipper travel distance. For this example, it will travel from a locV of 68 to a locV of 268. As it travels vertically, the number of pixels it travels must be correlated to the number of images you have in the sequence. Our formula will be deltaV * number of images/total range of travel.
property pStartLocV, pStartBG on beginSprite me set pStartLocV = the locV of sprite 5 set pStartBG = the memberNum of sprite 4 end on mouseDown me repeat while the stillDown if the mouseV > 68 and the mouseV ¬ < 268 then set the locV of sprite 5 = the mouseV set deltaV = pStartLocV - the mouseV set the memberNum of sprite 4 = pStartBG ¬ + (deltaV * 15/200) updateStage end if end repeat end
When you understand what's going on here, there are some improvements you can make to the code. For example, instead of hard-coding the range and number of images, you could create properties for those values which are set in the getProperties description dialog box.
Good luck with your project.
Copyright 1997-2024, Director Online. Article content copyright by respective authors.