Ldoc+ Lingo Group:
MOVIE CONTROLinfo D5/601: on stopMovie 6 10 elements new in Director 6.0, ! 10 contain Dictionary fixes 601 & 501, + MANY miss from the 'Appendix' 6.0 for MOVIE CONTROL. Movie Control (45): abort 6 + alertHook + colorDepth (test only, set on Macintosh) x6 + dontPassEvent (outdated -> stopEvent) + exit exitLock 6+ fullColorPermit (memory) halt ! lastFrame + machineType movie = movieName movieName = movie + moviePath = pathName nothing 6 + on alertHook me 6 + on prepareMovie on startMovie on stopMovie paletteMapping pass + pathName = moviePath platform play play done printFrom + productVersion !+ quickTimePresent + quit 6 + runMode + save castLib saveMovie score scriptsEnanbled of member ! searchPath = searchPaths (no URLs!) !+ searchPaths = searchPath (no URLs!) 6 + stopEvent (without exiting) 6 switchColorDepth (Macintosh only) + timeoutPlay trace !+ traceLoad !+ traceLogFile + updateLock ! updateMovieEnabled + version (settable) !+ videoForWindowsPresent Stage Properties (10): !+ centerStage deskTopRectList fixStageSize !+ rect of the stage ! stage (info) !+ stageColor stageBottom stageLeft stageRight stageTop -- MovieScript Event Handlers (15): 6 + on cuePassed + on idle !+ on enterFrame + on exitFrame + on keyDown + on keyUp + on mouseDown !+ on mouseUp 6 + on prepareFrame 6 + on prepareMovie + on rightMouseDown + on rightMouseUp on startMovie on stopMovie + on timeOut 6 ...in 6.0, NO 'mouseEnter', 'mouseWithIn', 'mouseLeave', or 'mouseUpOutside' events are sent to movie scripts, and also NO 'me' parameter is sent to movie scripts. Movie Communication (8): 6 + alertHook 6 externalEvent() 6 + on alertHook me 6 on EvalScript... + tell...to trace !+ traceLoad !+ traceLogFile -- Outdated MOVIE Lingo (5): 5 closeDA -> none 5 colorQD -> colorDepth, switchColorDepth (Mac) 5 on stepMovie -> on enterFrame [me] 5 openDA -> open "programPathAndName" 5 when ... then -> primary event scripts
[index] _ D5/601 _ 971201:
machineType
system platform property
TIP: The Dictionary should clearly emphasize that 'the machineType = 256' indicates Windows computers, because this is the most important use for the 'machineType' property. If you want to use different Lingo commands or code for different platforms, then test 'the machineType'.
[index] _ 601 in 1/97:
on startMovie
movie starting event handler
- 5.0 Dictionary Error:
- " This event handler contains statements that are activated after the movie preloads cast members... "
...should read:
" This event handler contains statements that are activated after the movie preloads castLibs that are set to 'Preload: Before Frame One', and after the first frame is displayed, or the targeted frame if you are coming from another movie... "
1. TIP: Remember: The 'on startMovie' handler in your movieScript is executed everytime the movie starts playing, no matter at which frame that is. In 6.0, your 'on prepareMovie' and 'on prepareFrame' handlers are executed before it.
2. TIP: It's best to avoid having an 'on enterFrame' handler (and possibly an 'on exitFrame') in the first frame of your movie, because the first frame is problematic (see 'updateStage'), and also the movie's 'on startMovie' handler is already executed there automatically. This also applies to all frames, which you know you're going to jump into coming from other movies. It has been mentioned that having an 'on enterFrame' handler there is especially problematic for Shockwave files. See also 'the lastFrame'.
[index] _ D5/601 _ 971201:
on stopMovie
movie stopping event handler
1. TIP: Remember: The 'on stopMovie' handler from your movie also executes anytime you stop your movie during author-time. You might want to have some resettings in your 'on stopMovie' handler: Turn the 'visible' of all sprites back on, put default text and colors into certain fields, place the text cursor properly in editable and scrolling fields, reset some of your global varaibles...
2. TIP: Remember: When jumping to another movie, the first movie's handler(s) is/are still in the middle of execution, but the second movie is already open and its targeted frame is on stage; then next happens: the executing handler finishes, the first movie's 'on stopMovie' handler is executed, the first movie unLoads, and the second movie's 'on startMovie' handler is executed. In 6.0, your 'on prepareMovie' and 'on prepareFrame' handlers from the new movie are executed before its 'on startMovie'.
3. TIP: 5.0: When jumping to another movie, it's best to turn the 'puppet' and 'cursor' of all sprites off (and display a watch 'cursor 4' to communicate a waiting time), as there have been problem reports when puppets and cursors are still active.
4. TIP: Remember to turn off your main event handler scripts like 'keyDownScript', 'mouseDownScript' and 'timeoutScript' by setting them to EMPTY, unless you want them to persist during the next movie.
5. TIP: You can check the movie's file name extension to activate different commands in your 'on stopMovie' handler in different environments: 'if (the movieName contains ".DIR") then ... else if (the movieName contains ".DXR") OR (the movieName contains ".DCR") then nothing'. By using this you can have some things happen only if your still authoring the movie and its name still has '.DIR' in it (see 'runMode').
6. TIP: Remember the '5.0 ReadMe': The 'on stopMovie' event handler in a MIAW is NOT called by a 'close window' or 'forget window' command for that MIAW. A 'stopMovie' event is only passed to a MIAW when its movie finishes or jumps to another movie.
7. TIP: To only reset some of your global values to void in your 'on stopMovie' handler, set them to a globally defined but unset variable like 'gVoid' that is still '<Void>' itself: 'global x,gVoid..set x = gVoid'.
EXAMPLEs:
The following handler will set some globals to '<Void>' (for more info, see 'clearGlobals') and then turn off the 'puppet' and the 'cursor' properties for all sprites before going to another movie:
on JumpMovie newMovieName -- global g1,g2,g3,gVoid -- cursor 4 -- put gVoid -- <Void> -- set g1 = gVoid set g2 = gVoid set g3 = gVoid -- repeat with i = 1 to 48 set the puppet of sprite i = FALSE set the visible of sprite i = TRUE set the cursor of sprite i = 0 end repeat -- if (the movieName contains ".DIR") then set the text of field "MyField" = the text of field "oriField" set the foreColor of field "MyField" = the foreColor of field "oriField" end if -- go to movie (the pathName & aMovieNameWithoutExtension) exit -- end JumpMovie
[index] _ D5/601 _ 970819:
platform
projector creation System property
- 6.0 Dictionary Error, in the Example, same in 5.0:
- " ...checks whether the movie was created in Windows 95... "
...should read:
" ...checks whether the PROJECTOR (playing the current movie) was created FOR Windows 95... "
- 5.0 Dictionary Error, halfway corrected in the '501 ReadMe', cleared in 6.0:
- " This system property indicates which platform the movie is playing on. "
...should read:
" This system property indicates which platform the PROJECTOR WAS CREATED FOR. "
With 'Create Projector for: Windows 3.1' and the projector playing on Win95, the 'platform' property will still indicate 'Windows, 16'. With 'Create Projector for: Standard Macintosh' and the projector playing on a Power Macintosh, the 'platform' property will still indicate 'Macintosh, 68K'. Only 'Create Projector for: All Macintosh Models' will correctly indicate the Macintosh platform it is currently playing on (see Gretchen's 501 BugList for a nice little table).
John Dowdell from Macromedia Tech Support 8/97:
" That function tells the engine, and does not query the current machine. If you wish to be able to pull various pieces of information about the machine itself, then there are Xtras which would enable this desire. "
[index] _ D5/601 _ 971201:
productVersion
secret Director software property
TIP: 5.0/601: According to Andreas Viviani's unLingo Dictionary, the undocumented 'productVersion' property can be tested, but NOT set. Using 'the productVersion' is preferable to the documented global system variable 'version', which he says to show some dubious behaviour when used in scripts. But as 'the productVersion' is undocumented, use it at your own risk, and possibly it won't be valid in the next update of Director.
[index] _ D5/601 _ 971201:
runMode
secret Director status property
TIP: This function is new in 601. According to Andreas Viviani's unLingo Dictionary, in Director 5 the undocumented property 'the runMode' can be tested, but NOT set, and it returns a string with either 'Author' or 'Projector' as the mode the movie is playing in. Depending on 'the runMode' of your movie, you can have different scripts or messages executed or special debugging fields showing text on stage. But as the 'runMode' is undocumented, use it at your own risk, and possibly it won't be valid in the next update of Director.
[index] _ 601 in 1/97:
version
Director global software variable
- 6.0 Dictionary Error, same in 5.0:
- " The same string appears the Finder's Get Info dialog box... "
Should also mention that this global variable is NOT fixed and can be overwritten by Lingo. Even a 'clearGlobals' will NOT reset 'version' to its default.
1. TIP: The global variable 'version' can be tested AND set, and it returns by default a string with Director's version number, like "5.0.1". Alexander Kienz from www.mit.de mentions that this global variable can also be set. If you do that (i.e. use your own global variable called 'version'), you will overwrite Director's version (<g>) of that variable, and thus lose it's original content of the program's version string. Even a 'clearGlobals' will NOT reset it to its default; strangely enough it will keep its manipulated setting.
2. TIP: According to Andreas Viviani's unLingo Dictionary, the undocumented (!) property 'productVersion' is preferable to the documented global system variable 'version', which he says to show some dubious behaviour when used in scripts (see 'productVersion').
|