#!/bin/sh # MetaCard 2.4 stack # The following is not ASCII text, # so now would be a good time to q out of more exec mc $0 "$@" )Etnt2@on preOpenStack set loc of me to the screenLoc put "destroy this lousy text" into fld _charlist send mouseUp to btn _reset1 send mouseUp to btn _reset2 show grc _box end preOpenStack on editScript? if the optionKey is "down" then edit script of the target exit to metacard end if end editScript? `X uDotNumber1uLetterNumber1TNT U helvetica UArialUArial U helveticaU helvetica P # THIS SCRIPT APPLIES DECELERATING OR # ACCELERATING MOVEMENT TO ANY OBJECT ON A # CARD. AS THE OBJECT APPROACHES ITS DESTINATION, # ITS SPEED CONTINUOUSLY DECREASES (EASE IN) OR # INCREASES (EASE OUT) WHICH CREATES MORE ORGANIC # LOOKING MOVEMENT THAN THE "MOVE" COMMAND. # # THIS BEHAVIOR IS TYPICALLY APPLIED TO THE BEGINNING # OR END OF AN OBJECT'S ANIMATION PATH BUT CAN ALSO # USED TO SIMPLY ANIMATE AN OBJECT'S POSITION. # # THE HANDLER REQUIRES 3 PARAMETERS: # 1) AN OBJECT DESCRIPTION IN THE FORM " " (IE "IMG BALL1") # 2) A METHOD IN THE FORM "IN" OR "OUT" # 3) THE DESIRED DURATION OF THE EASE ACTION IN MILLISECONDS # # NOTE: BEORE RUNNING THIS SCRIPT, AN OBJECT MUST BE # INITIALIZED WITH POSITION AND TIMING PROPERTIES # (SEE EASE-IN AND EAST-OUT BUTTON SCRIPTS). on easeObject tObj,tMethod,tTiming # ESTABLISH PHI VARIABLE do "put (the milliseconds - the uTime of" && tObj & ")/tTiming into phi" # REQUIRED FOR SHORT MOVE TIMES if phi > 1 then put 1 into phi # DETERMINE METHOD if tMethod = "in" then # EASE IN put (2*phi - phi^2) into F else # EASE OUT put phi^2 into F end if # MOVE OBJECT do "put the uStartX of" && tObj && "+ round(F * the uXdist of" && tObj & ") into newX" do "put the uStartY of" && tObj && "+ round(F * the uYdist of" && tObj & ") into newY" do "set loc of" && tObj && "to" && newX & "," & newY # EXIT WHEN OBJECT REACHES ITS DESTINATION LOCATION do "if (newX = the uTargetX of" && tObj && "and newY = the uTargetY of" && tObj & ") or (phi >= 1) then endEase" && quote & tObj & quote # OPTIONAL FADE-OUT OF MOVING OBJECT do "if the hilite of btn _fade1 or the hilite of btn _fade2 then set the blendLevel of" && tObj && "to round(100*((the milliseconds - the uTime of" && tObj & ")/tTiming))" # OPTIONAL ROTATION OF MOVING OBJECT # do "if the hilite of btn _rotate then set the angle of" && tObj && "to the angle of" && tObj & "+1" # LOOP SCRIPT send "easeObject" && q(tObj) & "," & q(tMethod) & "," & q(tTiming) to me in 10 milliseconds end easeObject # THIS HANDLER IS SEPARATED OUT FROM THE EASEOBJECT # HANDLER SO OTHER SCRIPT EVENTS CAN BE EASILY # TRIGGERED WHEN EASE-IN/OUT ACTION TERMINATES # FOR EACH MOVING OBJECT. on endEase tObj # put tObj && "is done moving." exit to metacard end endEase # OBJECT INITIALIZATION on initObj tObj,tDestLoc do "set the uStartX of" && tObj && "to item 1 of loc of" && tObj do "set the uStartY of" && tObj && "to item 2 of loc of" && tObj do "set the uTargetX of" && tObj && "to item 1 of (" & tDestLoc & ")" do "set the uTargetY of" && tObj && "to item 2 of (" & tDestLoc & ")" do "set the uXdist of" && tObj && "to (the uTargetX of" && tObj && "- the uStartX of" && tObj & ")" do "set the uYdist of" && tObj && "to (the uTargetY of" && tObj && "- the uStartY of" && tObj & ")" do "set the uTime of" && tObj && "to the milliseconds" end initObj # QUOTE FUNCTION function q tString return quote & tString & quote end q ffffffX      ""$!  $ "")/)0)1)2)3)4)5)6)7)8)9):);)<)=)>)?)@)A)B)C)D)E_A @ |GIF89a ppp얖Ⲳyyyfff!, )I喼更I5 R=p IQP48xFE@D;_B @ uGIF89a ũyyyٌfff!, "pɅZI)anVr Ib ij 1-GD; _C @ uGIF89a ϩ٠pppfff!, "Ё$* 0r&"4CNr D; _D @ oGIF89a ٲϼpppfff!, 0) Zr-drF 陎 ID; _E @ >GIF89a fff!,  ãV;&); _F @ "%H0($C$BwCH\40;_X @ ~GIF89a ϲټpppfff!, +ЉŜclS,B(3  s4UA;_Y @ xGIF89a ż⌌yyypppٲfff!, %[™v*RI,N ֡ LaUoEuP_p An````g ~8ǀ m |@ Ą@RQ­IENDB`dot7  uXdist-455uYdist19uStartX450uTime 1057841866804 uTargetX-5uStartY225 uTargetY244։PNG  IHDR gAMAOX2tEXtSoftwareAdobe ImageReadyqe<hIDATxb?+q5P*@0Kc qbj4>p An````g ~8ǀ m |@ Ą@RQ­IENDB`dot8  uXdist-272uYdist-230uStartX450uTime 1057841866806 uTargetX178uStartY225 uTargetY-5։PNG  IHDR gAMAOX2tEXtSoftwareAdobe ImageReadyqe<hIDATxb?+q5P*@0Kc qbj4>p An````g ~8ǀ m |@ Ą@RQ­IENDB`dot9  uXdist-455uYdist-96uStartX450uTime 1057841866808 uTargetX-5uStartY225 uTargetY129։PNG  IHDR gAMAOX2tEXtSoftwareAdobe ImageReadyqe<hIDATxb?+q5P*@0Kc qbj4>p An````g ~8ǀ m |@ Ą@RQ­IENDB`dot10  uXdist-227uYdist-230uStartX450uTime 1057841866810 uTargetX223uStartY225 uTargetY-5։PNG  IHDR gAMAOX2tEXtSoftwareAdobe ImageReadyqe<hIDATxb?+q5P*@0Kc qbj4>p An````g ~8ǀ m |@ Ą@RQ­IENDB`dot11  uXdist-120uYdist230uStartX450uTime 1057841866812 uTargetX330uStartY225 uTargetY455։PNG  IHDR gAMAOX2tEXtSoftwareAdobe ImageReadyqe<hIDATxb?+q5P*@0Kc qbj4>p An````g ~8ǀ m |@ Ą@RQ­IENDB`dot12 uXdist-455uYdist-38uStartX450uTime 1057841866814 uTargetX-5uStartY225 uTargetY187PNG  IHDRo&gAMAOX2tEXtSoftwareAdobe ImageReadyqe<9IDATxb/P  d *bb`` 663 5KNIENDB`dot13 uXdist-43uYdist-230uStartX450uTime 1057841866816 uTargetX407uStartY225 uTargetY-5PNG  IHDRo&gAMAOX2tEXtSoftwareAdobe ImageReadyqe<9IDATxb/P  d *bb`` 663 5KNIENDB`dot14 uXdist-455uYdist23uStartX450uTime 1057841866818 uTargetX-5uStartY225 uTargetY248PNG  IHDRo&gAMAOX2tEXtSoftwareAdobe ImageReadyqe<9IDATxb/P  d *bb`` 663 5KNIENDB`dot15 uXdist155uYdist182uStartX450uTime 1057841866820 uTargetX605uStartY225 uTargetY407PNG  IHDRo&gAMAOX2tEXtSoftwareAdobe ImageReadyqe<9IDATxb/P  d *bb`` 663 5KNIENDB`dot16 uXdist-455uYdist98uStartX450uTime 1057841866822 uTargetX-5uStartY225 uTargetY323PNG  IHDRo&gAMAOX2tEXtSoftwareAdobe ImageReadyqe<9IDATxb/P  d *bb`` 663 5KNIENDB`dot17 uXdist155uYdist-161uStartX450uTime 1057841866824 uTargetX605uStartY225 uTargetY64PNG  IHDRo&gAMAOX2tEXtSoftwareAdobe ImageReadyqe<9IDATxb/P  d *bb`` 663 5KNIENDB`dot18 uXdist-297uYdist-230uStartX450uTime 1057841866826 uTargetX153uStartY225 uTargetY-5PNG  IHDRo&gAMAOX2tEXtSoftwareAdobe ImageReadyqe<9IDATxb/P  d *bb`` 663 5KNIENDB` "_inst1 White G  VOn the left, you can explode a line of text... On the right, you can destroy a box... " _charlist)xson enterInField send "mouseUp" to btn _reset1 end enterInField on returnInField enterInField end returnInField ,3  destroy this lousy text  _inst2  White"K  -Enter characters (no punctuation or numbers)  _importepon mouseUp answer folder "Locate folder:" put it into tPath # answer tPath # exit to metacard put "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z" into tList repeat for each item C in tList import paint from file (tPath & "/images/_" & C & ".gif") put short name of last img into tName delete char -4 to -1 of tName set name of last img to tName end repeat end mouseUp pImport  _explode1epNon mouseUp editScript? put 1 into N # INIT ALL LETTER OBJECTS repeat until there is not an img ("L"&N) # ESTABLISH OBJECT TO BE ANIMATED put ("img L" & N) into tObj # ESTABLISH "BLAST LIMITS" # (LOCATIONS BEYOND RECT OF STACK) put empty into tOptions put -5&","&random(height of this stack)&cr after tOptions put random(width of this stack)&","&-5&cr after tOptions put (width of this stack+5)&","&random(height of this stack)&cr after tOptions put random(width of this stack)&","&height of this stack+5 after tOptions put line random(4) of tOptions into tDestLoc # INITIALIZE POSITION & TIME PROPERTIES FOR EACH BALL (SEE CARD SCRIPT FOR HANDLER) initObj tObj,tDestLoc # RUN THIS SETUP AGAIN FOR THE NEXT LETTER OBJECT add 1 to N end repeat set the uLetterNumber of this stack to 1 blowIt end mouseUp on blowIt put the uLetterNumber of this stack into N if there is not an img ("L"&N) then exit blowIt # ESTABLISH OBJECT TO BE ANIMATED put ("img L" & N) into tObj # ESTABLISH EASE METHOD ("IN" OR "OUT") put "in" into tMethod # ESTABLISH TIMING FOR EASE ACTION (ADD OPTIONAL RANDOMIZATION) put 1 into R get random(5) if it = 1 then put 0.5 into R if it = 2 then put 0.75 into R if it = 3 then put 1 into R if it = 4 then put 1.5 into R if it = 5 then put 2 into R put (fld _duration1 * R) into tTiming # START OBJECT ANIMATION easeObject tObj,tMethod,tTiming set the uLetterNumber of this stack to the uLetterNumber of this stack + 1 send "blowIt" to me end blowIt mXExplode  _duration1)`gmH  1200   _explode2epUon mouseUp editScript? put 1 into N # INIT ALL DOT OBJECTS repeat until there is not an img ("dot"&N) # ESTABLISH OBJECT TO BE ANIMATED put ("img dot" & N) into tObj # ESTABLISH "BLAST LIMITS" # (LOCATIONS BEYOND RECT OF STACK) put empty into tOptions put -5&","&random(height of this stack)&cr after tOptions put random(width of this stack)&","&-5&cr after tOptions put (width of this stack+5)&","&random(height of this stack)&cr after tOptions put random(width of this stack)&","&height of this stack+5 after tOptions put line random(4) of tOptions into tDestLoc # INITIALIZE POSITION & TIME PROPERTIES FOR EACH BALL (SEE CARD SCRIPT FOR HANDLER) initObj tObj,tDestLoc # RUN THIS SETUP AGAIN FOR THE NEXT LETTER OBJECT add 1 to N end repeat set the uDotNumber of this stack to 1 hide grc _box blowIt end mouseUp on blowIt put the uDotNumber of this stack into N if there is not an img ("dot"&N) then exit blowIt # ESTABLISH OBJECT TO BE ANIMATED put ("img dot" & N) into tObj # ESTABLISH EASE METHOD ("IN" OR "OUT") put "in" into tMethod # ESTABLISH TIMING FOR EASE ACTION (ADD OPTIONAL RANDOMIZATION) put 1 into R get random(5) if it = 1 then put 0.5 into R if it = 2 then put 0.75 into R if it = 3 then put 1 into R if it = 4 then put 2 into R if it = 5 then put 3 into R put (fld _duration2 * R) into tTiming # START OBJECT ANIMATION easeObject tObj,tMethod,tTiming set the uDotNumber of this stack to the uDotNumber of this stack + 1 send "blowIt" to me end blowIt 8mXExplode _duration2)`mH  1000  _boxJ@_reset2epon mouseUp editScript? repeat for each line L in the pendingMessages cancel item 1 of L end repeat lock screen put loc of this cd into tLoc put (item 1 of tLoc/2) + item 1 of tLoc into item 1 of tLoc put 0 into S repeat with D = 1 to 18 set loc of img ("dot"&D) to tLoc set blendLevel of img ("dot"&D) to 0 end repeat set the uDotNumber of this stack to 1 show grc _box end mouseUp mXReset "_fade2@eWhiteCp Fade Out  _dividerK,6_-7- " copyright WhiteH  7TNT was built by Tactile Media -- www.tactilemedia.com $_inst4  WhiteZI  Duration  $_inst3  WhitefZI  Duration  )/L1 @8 oGIF89a ٲϼpppfff!, 0) Zr-drF 陎 ID; cREVGeneral revUniqueID 1057842229415)0L2 @A >GIF89a fff!,  ãV;&); cREVGeneral revUniqueID 1057842229417)1L3 @H {GIF89a Ų젠٩yyypppfff!, (v#O*O,]$Icvʺ̢hj8zJ; cREVGeneral revUniqueID 1057842229419)2L4 @Q ?GIF89a fff!, 0t2a+; cREVGeneral revUniqueID 1057842229421)3L5 @Z qGIF89a ppp⌌fff!, PyRh-s |aHSbE" Q+C; cREVGeneral revUniqueID 1057842229423)4L6 @b vGIF89a yyypppϩ٠fff!, #f@ohtS0 $Iv&{u=; cREVGeneral revUniqueID 1057842229426)5L7 @k xGIF89a ż⌌yyypppٲfff!, %[™v*RI,N ֡ LaUoEuP_L16 @ rGIF89a yyyppp켼⌌fff!, pFKZ<}uF0 P D; cREVGeneral revUniqueID 1057842229444)?L17 @ {GIF89a Ų젠٩yyypppfff!, (v#O*O,]$Icvʺ̢hj8zJ; cREVGeneral revUniqueID 1057842229446)@L18 @ xGIF89a ż⌌yyypppٲfff!, %[™v*RI,N ֡ LaUoEuP_GIF89a fff!,  ãV;&); cREVGeneral revUniqueID 1057842229452)DL22 @ ~GIF89a ϲټpppfff!, +ЉŜclS,B(3  s4UA; cREVGeneral revUniqueID 1057842229455)EL23 @ ?GIF89a fff!, 0t2a+; cREVGeneral revUniqueID 1057842229457