XFIRl39VMpamiZg:*YEK  muhT muhTmuhT muhTmuhT$*SAC fniCFCRDXtcL SREV SREV SREV lccFCRDTT::Valongy+1 then al=1 apy=apy+1 end if end repeat cu=sprite(spn).quad --just set up a quad variable tyt=1 immys=[] repeat with ty=1 to upy repeat with tyy=1 to (alongy) ap1=((ty-1)*(alongy+1))+tyy ap2=((ty-1)*(alongy+1))+tyy+1 ap3=((ty)*(alongy+1))+tyy+1 ap4=((ty)*(alongy+1))+tyy --calculates each individual quad cu[1]=point(quh1[ap1],quv1[ap1])--top left corner cu[2]=point(quh1[ap2],quv1[ap2])--top right cu[3]=point(quh1[ap3],quv1[ap3])--bottom right cu[4]=point(quh1[ap4],quv1[ap4])--bottom left immys[tyt]=image(h1,v1,32)--images in buffer memory immys[tyt].fill(immys[tyt].rect,rgb(0,0,0)) immys[tyt].copypixels(memby,immys[tyt].rect,rect(quh1[ap1],quv1[ap1],quh1[ap3],quv1[ap3])) newy=new(#bitmap) member(newy).image=immys[tyt] tyt=tyt+1 end repeat end repeat halt end Sprite Sliceruq,>b;?. .tSAC @KKKK______ssssssw{--List the rects of all sprites on the stage in the message window --to use, make this a movie behavior and if your current frame has a looping behavior in it, you can go to the message window and type "listrects" then (firt sprite#, last sprite #) -- So it will look something like this if you want to see the rects for sprites 1-3 "listrects 1,3" --hit enter after typing to display on listrects firstSprite, lastSprite set spriteList = [:] repeat with i = firstSprite to lastSprite addProp spriteList, i, the rect of sprite i end repeat put spriteList end list rectsuq,>?;. .tSAC ....BBBBBBVVVVVVZ^b property pMyField global glist on beginSprite me set mySprite = the spriteNUm of me set pMyField = the name of member the member of sprite mySprite if voidP(glist) then set glist = [] end if end on exitFrame me put "Tries ="&& glist.tries into field pMyField endDisplay List Contentsn,?+R?%. .XtcL`  !t!L!`!3 lccpamFSREV Aknuj\\//CRKRLK LLLA"\BW0ALRTLBW12345  *SAC knujpamFSREV AmuhTVVVVV+VV+V$$$$$$$$$+VNNxNrNrNrTrNxNxNV+NPNsN}NNPrNV++ VNNusS }}VNsV+ VNO|}SRS)RNV+ ON}}S/S }ON*NNV+VON|}SSS)}*NNNV+V$ONHRS/S}}NNV+ VNRPNyRQv}ˡs*V+NwYNY}V+V}]QV+V}}WH*?tXV++V+V@ߥ+++VRRSRLeL++++SS}YwY:w+V}j}}j+++++++VV+%O&%O%I%IJ%+%VV+RSRwR+Y}S}YU+}+1+%II%++*YEK  muhT muhTmuhT muhT"*SAC fniCFCRDXtcL SREV SREV SREV lccFCRDTT::V<w`fniCcCEz'C:\Documents and Settings\tan\Desktop\etSAC  E S S S S g g g g g g { { { { { {  --this is a quad program it splits an image into squares. --Can also have it then move the squares about to create an effect --in this case it splits it up to 3 down and 3 along ( 9 total) --this example copys directly to your cast using the copypixels command --an alternate version to copy to an image is noted in the script --attach this behavior to a sprite on the timeline and hit play. Slices will go to the cast. -- ---------------- -- | | | -- | | | -- --------------- -- | | | -- | | | -- --------------- -- | | | -- | | | -- --------------- property spn,alongy,upy,immys,mema,workingimage,h1,v1 property quh1,quv1,cu,quh2,quv2,quh3,quv3 on beginsprite me spn=me.spritenum upy=3--the number of quad divisions going upwards alongy=3--the number of quad divisions going along --the variables upy and alongy must be above 1 --the total number of quads the picture is split into is --calculated by multiplying upy*alongy mema=sprite(spn).membernum member(mema).regpoint=point(0,0) memby=member(mema).image quh1=[] quv1=[] h1=member(mema).width/alongy --size of the individual panels horizontally v1=member(mema).height/upy --size of the individual panels vertically --you don't need to worry about this routine --it just sets up the buffer images in memory --it also calculates the correct position of each quad al=1 apy=1 repeat with ty=1 to (alongy+1)*(upy+1) quh1[ty]=(al-1)*h1 quv1[ty]=(apy-1)*v1 al=al+1 if al>alongy+1 then al=1 apy=apy+1 end if end repeat cu=sprite(spn).quad --just set up a quad variable tyt=1 immys=[] repeat with ty=1 to upy repeat with tyy=1 to (alongy) ap1=((ty-1)*(alongy+1))+tyy ap2=((ty-1)*(alongy+1))+tyy+1 ap3=((ty)*(alongy+1))+tyy+1 ap4=((ty)*(alongy+1))+tyy --calculates each individual quad cu[1]=point(quh1[ap1],quv1[ap1])--top left corner cu[2]=point(quh1[ap2],quv1[ap2])--top right cu[3]=point(quh1[ap3],quv1[ap3])--bottom right cu[4]=point(quh1[ap4],quv1[ap4])--bottom left immys[tyt]=image(h1,v1,32)--images in buffer memory immys[tyt].fill(immys[tyt].rect,rgb(0,0,0)) immys[tyt].copypixels(memby,immys[tyt].rect,rect(quh1[ap1],quv1[ap1],quh1[ap3],quv1[ap3])) newy=new(#bitmap) member(newy).image=immys[tyt] tyt=tyt+1 end repeat end repeat halt end Sprite Sliceruq,>b;?. .tSAC @KKKK______ssssssw{--List the rects of all sprites on the stage in the message window --to use, make this a movie behavior and if your current frame has a looping behavior in it, you can go to the message window and type "listrects" then (firt sprite#, last sprite #) -- So it will look something like this if you want to see the rects for sprites 1-3 "listrects 1,3" --hit enter after typing to display on listrects firstSprite, lastSprite set spriteList = [:] repeat with i = firstSprite to lastSprite addProp spriteList, i, the rect of sprite i end repeat put spriteList end list rectsuq,>?;. .tSAC ....BBBBBBVVVVVVZ^b property pMyField global glist on beginSprite me set mySprite = the spriteNUm of me set pMyField = the name of member the member of sprite mySprite if voidP(glist) then set glist = [] end if end on exitFrame me put "Tries ="&& glist.tries into field pMyField endDisplay List Contentsn,?+R?%. .tSAC     444444HHHHHHLPT--List the rects of all sprites on the stage in the message window. Very useful for the DragNDropQuiz where you need to know all of the target locs for the Parameter Dialogue Box. --To use, make sure this is set to be a movie behavior and if your current frame that you are working with has a looping behavior in it, you can go to the message window and simply type "listlocs" followed by firt sprite#, last sprite # -- So it will look something like this if you want to see the rects for only sprites 1-3 "listlocs 1,3" --hit enter after typing to display. They are now available to copy and paste. on listlocs firstSprite, lastSprite set spriteList = [:] repeat with i = firstSprite to lastSprite addProp spriteList, i, the loc of sprite i end repeat put spriteList end list locsn\\,>?. .SREV Aknuj>te lastSprite spriteListiknujpamFSREV AmuhTz\b\\b\\b\b\b\b\b\b\\b\ \^XX^^X 4^4X\b\X.4\b bX ^X\\\4Xb\b\b\^^\\\b\X\\b\\bX4. .\bb\\b\\\b\b\b\b\b\\b\\b\b\\b\b\\b\\b\\b\b\b\\b\b\T\bb\\b\b\1VVb\\bUV\\\\b\\b\b\V\b\\UTb\\b\b\\b V\\b[҆\b \b\\b\\b\\++V\b~ҫ\\b\\b\b\V+b2V\b\ \\b\\b\b\\+V\b\\\b\b\\bb\b\ \b\\b\\b\\+ .,.\b\b\\b\b\+-)\b\\\\b\\b\b\Y\\b\b\\b\b\ b\\bVV\b\\b\\b\\b\\b\\VVV+\b\b\b\\b\\b\\b\b\b\b\\b\\\b\\b\b\\b\\b\\b\b\\b\b\\b\\b\\b\b\\b\ b\\bb\\b\\b\b\b\\b\\b\b\b\\b\b\b\\b\b\XtcL`  !!!rcsL\\\\//CRKRLK LLLA"\BW0ALRTLBW12345  rcsL\\\\=/i CRKRLK LLLA!\BW0ALRTLBW12345  tSAC     444444HHHHHHLPT--List the rects of all sprites on the stage in the message window. Very useful for the DragNDropQuiz where you need to know all of the target locs for the Parameter Dialogue Box. --To use, make sure this is set to be a movie behavior and if your current frame that you are working with has a looping behavior in it, you can go to the message window and simply type "listlocs" followed by firt sprite#, last sprite # -- So it will look something like this if you want to see the rects for only sprites 1-3 "listlocs 1,3" --hit enter after typing to display. They are now available to copy and paste. on listlocs firstSprite, lastSprite set spriteList = [:] repeat with i = firstSprite to lastSprite addProp spriteList, i, the loc of sprite i end repeat put spriteList end list locsn\\,>?. .rcsL\\\\//CRKRLK LLLA"\BW0ALRTLBW12345  rcsL000\\^` 7:#06  KaRLA%\CWa8P7I:CW9CO:; DI:a< J7Y Tries =knujdaddPropput firstSprite lastSprite spriteListi exitFramepMyFieldnamevoidpgListmySpritetriesmuhT= +++++++++ VVV++++++++++++++++++++++++++999%+++V?d"@@"++++%I%+3@+++V+"%++8++++O3"%++++++G++++9++++++3"++++++9+++++++G+V++V+@V+++++$9+++V+++29F,9+++++++9@3"++++ "#@++++V++A#:+++++++3F#+V++++++++ ?%++++++++++ 3?N+++V+++V+++++2+++V++++++++++VV+++++++++rcsL666\6\zz66. -,+*5 B@ KaPAPAPJCWaPJCWCW b JCWa RCP CP JCWaJPJCWaJPARARARLJAJA IJ LLAJBgJ LLAJBgLARLJAARLARALRTUJCWaPARCPARLJ ]ARLJ GLAJALRLAJALARLJALARLJALR JAJ LCgJ LCgCW BgJAJ LCgJ LCgCW BgJAJ LCgJ LCgCW BgJAJ L CgJ L CgCW BgJLJJA CW BgJLCgJLCgaCWBgJLCgLJLCgaJ LCgJ LCgJ LCgJ LCgCWBgECWR L CWJLCgb LARALRIALR_BW' !(")#$%&       < knuj^rcsL666\6\zz66. -,+*5 B@ KaPAPAPJCWaPJCWCW b JCWa RCP CP JCWaJPJCWaJPARARARLJAJA IJ LLAJBgJ LLAJBgLARLJAARLARALRTUJCWaPARCPARLJ ]ARLJ GLAJALRLAJALARLJALARLJALR JAJ LCgJ LCgCW BgJAJ LCgJ LCgCW BgJAJ LCgJ LCgCW BgJAJ L CgJ L CgCW BgJLJJA CW BgJLCgJLCgaCWBgJLCgLJLCgaJ LCgJ LCgJ LCgJ LCgCWBgECWR L CWJLCgb LARALRIALR_BW' !(")#$%&       < rcsL000\\^` 7:#06  KaRLA%\CWa8P7I:CW9CO:; DI:a< J7Y Tries =manL~~> beginSpritespn spriteNumupyalongymemasprite memberNummemberpointregPointimagequh1quv1h1widthv1heightsetAtcuquadimmysgetAtrectrgbfill copyPixelsnewbitmaphaltmenewyalapytytap1ap2ap3ap4membytytyyquv3quh3quv2quh2 workingimage listrectsaddPropput firstSprite lastSprite spriteListi exitFramepMyFieldnamevoidpgListmySpritetrieslistLocsmuhT\b\\b\\b\b\b\b\b\b\\\b\\b\\b\b\b\\b\\b\b\\b\\b\\b \\bX.\b\\b\\X.X.\b\\\\bXX\b\\\b\bXXb\\b\\\\XXbb\b\bXX\b\\\XYXX X.\b\X.Xҫ\b\Tb\b\\b\b\\VVbUV\\ \\b\\b\\b\\V\b\\UT\b\b\b\\b V\\b[҆\b \b\\b\\b\\++V\b~ҫ\bb\\b\b\V+b2V\b\ \\b\\b\b\\+V\b\\\b\b\\bb\b\ \b\\b\\b\\+ .,.\b\b\\b\b\+-)\b\\\\b\\b\b\Y\\b\b\\b\b\ b\\bVV\b\\b\\b\\b\\b\\VVV+\b\b\b\\b\\b\\b\b\b\b\\b\\\b\\b\b\\b\\b\\b\b\\b\b\\b\\b\\b\b\\b\ b\\bb\\b\\b\b\b\\b\\b\b\b\\b\b\b\\b\b\pamm-(XFIRHLpami !pammH!*YEK<tSAC FCRDT@knuj z'rcsL0JBXtcL/muhT="8tSAC#fniCcSREV +manLCrcsL6 ?muhTknuj>+knujrrcsL:0muhTz ,knuj81knujknuj knujjtSAC'knujh;tSAC&knuj knuj !rcsL 1muhTEknuj,knujT0knujc *SACRknujknuj62#knuj$knuj0X5%knuj6&tSAC= / b r r r property delay1 property sprite1 property delay2 property sprite2 property delay3 property sprite3 on beginsprite global gTimer set gTimer = the ticks end --starts a global timer when any sprite is seen in the frame---- on exitFrame global gTimer if the ticks < gTimer + (100000) then go the frame -- loops in the frame if timer is under 10000 sec(2.7 hrs.) -- Basically makes sure it doesn't jump ---------------------------------------------------------- -- commands added below must be entered in order of -- last to happen on screen to the 2nd event that happens. So the first event is at the bottom in this case. if the ticks < gTimer + (delay3*100) then -- 2 sec passed after second event---- sendSprite(sprite3, #mFadeActivate) if the ticks < gTimer + (delay2*100) then -- 2 sec passed after first event---- sendSprite(sprite2, #mFadeActivate) if the ticks < gTimer + (delay1*100) then -- 2 sec passed after timer started---- sendSprite(sprite1, #mSlideActivate) end if end if end if end if ------------------------------------------- -- here is an extra trigger to highlite a "next button" by swapping its unhighlighted member at 7 sec. if the ticks > gTimer + (7*100) then -- 5 sec passed after timer started ---- sprite(4).member=member("nextHIbutton") end if on getPropertyDescriptionList PDL = [:] setaprop PDL, #delay1, [#comment:"Begin 1st delayed sprite how many seconds after timer/frame begins? (figure in the timer taking 1 sec. to start) ", #format:#integer, #range: [1, 1.5, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], #default: 1] setaprop PDL, #sprite1, [#comment:"what is the sprite number of the 1st delayed sprite?", #format:#integer, #range: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], #default: 1] setaprop PDL, #delay2, [#comment:"begin 2nd delayed sprite how many seconds after frame begins:", #format:#integer, #range: [1, 1.5, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], #default: 3] setaprop PDL, #sprite2, [#comment:"what is the sprite number of the 2nd delayed sprite?", #format:#integer, #range: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], #default: 2] setaprop PDL, #delay3, [#comment:"begin 3rd delayed sprite how many seconds after frame begins:", #format:#integer, #range: [1, 1.5, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], #default: 5] setaprop PDL, #sprite3, [#comment:"what is the sprite number of the 3rd delayed sprite?", #format:#integer, #range: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], #default: 3] return PDL end on getbehaviordescription return "Remember there will be a 1 sec. delay for the timer to start (see comments)... so for extreme accuracy, subtract 1 sec. from whatever number you choose for all of these delays" end timed behaviors[#Delay1: [#comment: "Begin 1st delayed sprite how many seconds after timer/frame begins? (figure in the timer taking 1 sec. to start) ", #format: #integer, #range: [1, 1.5000, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], #default: 1], #sprite1: [#comment: "what is the sprite number of the 1st delayed sprite?", #format: #integer, #range: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], #default: 1], #Delay2: [#comment: "begin 2nd delayed sprite how many seconds after frame begins:", #format: #integer, #range: [1, 1.5000, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], #default: 3], #sprite2: [#comment: "what is the sprite number of the 2nd delayed sprite?", #format: #integer, #range: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], #default: 2], #Delay3: [#comment: "begin 3rd delayed sprite how many seconds after frame begins:", #format: #integer, #range: [1, 1.5000, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], #default: 5], #sprite3: [#comment: "what is the sprite number of the 3rd delayed sprite?", #format: #integer, #range: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], #default: 3]]n,>gN?. .rcsL\\\\=/i CRKRLK LLLA!\BW0ALRTLBW12345  rcsL\\hhDnJKHIDF (((s *6,'>S**,9,?:BBB JBCfAO@@CfAI@ SCfBBWCCfAI@JDAd ;JFEGBWECfAI@JHAd #JIEGBWECfAI@JJAd JKELBWECfAI@AAdACWDCWb@CRLEJENDEOEPEQA?AAAAAAAA A A A C ERACBWMLEKENDEOEPEQAAAAAAAAA A A A C ERACBWMLEHENDEOEPEQA?AAAAAAAA A A A C ERACBWMLEIENDEOEPEQAAAAAAAAA A A A C ERACBWMLEDENDEOEPEQA?AAAAAAAA A A A C ERACBWMLEFENDEOEPEQAAAAAAAAA A A A C ERACBWMLBWST949494DBWS> nextHIbuttonrBegin 1st delayed sprite how many seconds after timer/frame begins? (figure in the timer taking 1 sec. to start) 5what is the sprite number of the 1st delayed sprite?>begin 2nd delayed sprite how many seconds after frame begins:5what is the sprite number of the 2nd delayed sprite?>begin 3rd delayed sprite how many seconds after frame begins:5what is the sprite number of the 3rd delayed sprite?Remember there will be a 1 sec. delay for the timer to start (see comments)... so for extreme accuracy, subtract 1 sec. from whatever number you choose for all of these delaysmanLhTTU beginSpritespn spriteNumupyalongymemasprite memberNummemberpointregPointimagequh1quv1h1widthv1heightsetAtcuquadimmysgetAtrectrgbfill copyPixelsnewbitmaphaltmenewyalapytytap1ap2ap3ap4membytytyyquv3quh3quv2quh2 workingimage listrectsaddPropput firstSprite lastSprite spriteListi exitFramepMyFieldnamevoidpgListmySpritetrieslistLocsgetPropertyDescriptionListgetBehaviorDescriptiongTimerticksframegoDelay3 sendSpritesprite3 mFadeActivateDelay2sprite2Delay1sprite1mSlideActivatesetaPropcommentformatintegerrangedefaultreturnPDLmuhTa"" "VVVV+""""VVVV+""VVV+V" VVVV+VVV" VVV+VV VVVV+"VV VVV+""V""""""""+V+V+V++VVV++V+VpammTC0 %XFIRlpami \!pammTZgػ!*YEK,tSAC FCRDT0knuj#&rcsL0~6XtcLmuhT="8tSAC fniCcSREV manLhcrcsL6h;muhTknuj>+knujjrcsL5muhTz ,knujd7knuj<muhTaeknuj&tSAC1knuj^>tSACrcsLf]knuj/rcsL\muhTEtSAC=PLknujH!knujknujR'knujT@*SACknujknuj "knujc#knuj'knuj/(knuj6 ?)knuj:0*knuj0JB+knuj 1,knujC-knuj +.