Main Page About Ldoc+ Error Lists Main Index Index Groups

Ldoc+ Lingo Group:
    NAVIGATION

 info D5/601:
      go to (the frame) (looping)
      pause (outdated)
 6    0 elements new in Director 6.0,
  !   8 contain Dictionary fixes 601 & 501,
   +  5 miss from the 'Appendix' 6.0 for NAVIGATION.


Navigation Commands (10):
      delay()
      go...
   +  go to (the frame) (looping)
  !   go loop
  !   go next
  !   go previous
  !   go to [frame...of] movie
x6!   pause (outdated -> go to the frame)
  !   play...
  !   play done

Navigation Elements (8):
      frame nameOrNumber
      the frame (current frame number)
  !+  frameLabel
   +  label("name")
   +  labelList (string)
  !+  lastFrame
      marker(number)
      movie nameOrNumber
      ...see also FRAMEs and MOVIE CONTROL Lingo Groups.

--

Outdated NAVIGATION Lingo (3):
 6                        continue -> go to (the frame + 1)
 6                           pause -> go to (the frame)
 6                     pausedState -> none





[index] _ D5/601 _ 971212:


go loop

movie label looping command

6.0 Dictionary Errors, same in 5.0:

"...causes the playback head to continuously return
    to the first marker to the left and then loop back."
= Not correct; should read:
"...causes the playback head to GO to the first marker
    to the left, if there is no marker IN THE CURRENT FRAME."

"...is equivalent to...'go to the marker(0)'..."
= Wrong syntax; should read:
"...is equivalent to...'go to marker(0)'..."

The are many problems in the Dictionary's entry on 'go loop':
1. The playback head DOES NOT "continuously" go
   to the marker, it only does that ONCE.
2. The playback head DOES NOT "return" to that marker,
   it just goes there, even if it has NOT been there before.
3. The playback head DOES NOT go to the "first marker to the left"
   if there is a marker in the current frame! In this case, it will
   just loop in the frame, same as using 'go to (the frame)'.
4. The playback head DOES NOT "then loop back" from that marker;
   it will just show the targeted marker's frame, and if no other
   Lingo takes it away from there, it will stay there and await
   the tempo setting for moving the playback to the next frame.

= Missing:
"See Also: ... the frameLabel, marker(), label()"
 --

From the '6.0 ReadMe':
  The 'go to...', 'play...', 'puppetPalette', and 'updateStage'
  commands are disabled in the following handlers: 'on prepareMovie',
  'on prepareFrame', 'on beginSprite', 'on endSprite', 'on stepFrame'.
  --

1. TIP: The three 'go loop', 'go next' and 'go previous' commands work faster than using 'go to frame nameOrNumber', or 'go to marker(x)', or 'go to label("name")', which will have to search the target frame number, whereas the first commands have direct access to it.

2. TIP: If you have a marker in a looping frame, then using 'go loop' might work faster than 'go to (the frame)'. To find out if the current frame has a marker, test: 'if stringP(the frameLabel)', or 'if marker(0) = the frame' (which works slower).






[index] _ D5/601 _ 971212:


go next

movie label jumping command

6.0 Dictionary Errors, same in 5.0:

"If no markers are to the right of the playback head,
 the playback head goes to the first marker on the left."
= Not correct; should read:
"If no markers are to the right OR IN THE CURRENT FRAME
 of the playback head, the playback head goes to
 the first marker on the left."

= Missing:
"See Also: ... the frameLabel, marker(), label()"
 --

1. TIP: The three 'go loop', 'go next' and 'go previous' commands work faster than using 'go to frame nameOrNumber', or 'go to marker(x)', or 'go to label("name")', which have to search the target frame number, whereas the first commands have direct access to it.

2. TIP: From the '6.0 ReadMe': The 'go to...', 'play...', 'puppetPalette', and 'updateStage' commands are disabled when called from any of the following handlers: 'on prepareMovie', 'on prepareFrame', 'on beginSprite', 'on endSprite', 'on stepFrame'.






[index] _ D5/601 _ 971212:


go previous

movie label jumping command

6.0 Dictionary Errors, same in 5.0:

"This command sends the playback head to the previous marker
 in the movie."
= Not correct (that's 'go loop'); should read:
"This command sends the playback head back TWO markers
 in the movie. If there is a marker in the current frame,
 the playback head will go back ONE marker if there is one.
 If there is NO marker in or before the current frame,
 the playback head will go to the NEXT marker."

= Missing:
"... same as using 'go marker(-1)'."

= Missing:
"See Also: ... the frameLabel, marker(), label()"
 --

TIP: The three 'go loop', 'go next' and 'go previous' commands work faster than using 'go to frame nameOrNumber', or 'go to marker(x)', or 'go to label("name")', which have to search the target frame number, whereas the first commands have direct access to it.

2. TIP: From the '6.0 ReadMe': The 'go to...', 'play...', 'puppetPalette', and 'updateStage' commands are disabled when called from any of the following handlers: 'on prepareMovie', 'on prepareFrame', 'on beginSprite', 'on endSprite', 'on stepFrame'.






[index] _ D5/601 _ 971212:


go to [frame of...] movie...

movie jumping command

6.0 Dictionary Errors, partly the same in 5.0:

"The 'go to movie' command loads frame 1 of the movie."
= Not exact; should read:
"The 'go to movie' command loads frame 1
 OR THE TARGETED FRAME of the movie, PLUS any 'castLib'
 whose 'preLoadMode' is set to 1 ('Preload: Before Frame One')."

"The following are reset when loading a movie: ..."
= Missing:
"the keyUpScript, visible of sprite, the labelList, the movie
 (= the movieName), possibly 'the pathName' (= the moviePath)."

"However, the 'timeoutScript' is not reset when loading a movie."
= Missing:
"However, the following are not reset when loading a movie:
 the timeoutScript, the actorList, and the windowList."
 --






[index] _ D5/601 _ 971212:


go to (the frame)

frame looping command

From the '6.0 ReadMe':
  The 'go to...', 'play...', 'puppetPalette', and 'updateStage'
  commands are disabled in the following handlers: 'on prepareMovie',
  'on prepareFrame', 'on beginSprite', 'on endSprite', 'on stepFrame'.
  The preferred place to use a 'go...' command is within an 'exitframe'
  handler. Executing 'go' from within any of these other handlers can
  cause infinite recursion in the worst case, and bad event ordering
  in the best case. Executing 'updateStage' can also cause problems,
  and should not be necessary since all these events are issued
  immediately before the current frame is drawn.
  Therefore, these commands have been disabled within these handlers.
  --

1. TIP: If you issue a 'go to (the frame)' for a screen redraw, a transition in the transition channel of that frame will execute once more.

2. TIP: Avoid using a 'go to (the frame)' looping command or an 'updateStage' in the first frame, as well as in the very last frame of a movie, see 'the lastFrame' for details.

3. TIP: If you have a marker in the looping frame, then using 'go loop' might work faster. To find out if the current frame has a marker, test: 'if (stringP(the frameLabel) )'; or 'if (marker(0) = the frame)', which is slower.

4. TIP: It's recommended to use a 'go to (the frame)' loop instead of a 'pause', because Director then can better watch out for events. In 6.0, 'pause' and 'continue' are outdated.

5. TIP: At EVERY update of the stage, including 'updateStage' and 'go someFrame' commands (and not just at every advancing of the playback head), Director automatically sends a 'stepFrame' event message to all of your child objects which you added into 'the actorList'. You can use 'set the stageColor = the stageColor', which will NOT trigger a 'stepFrame' event. And see Gretchen's 501 BugList for a workaround from Daniel Goodwin. He made his own 'on replaceUpdateStage' handler, which duplicates 'the actorList', then sets it to '[ ]' (emptied), issues the 'updateStage', and then resets 'the actorList' to its old contents.






[index] _ D5/601 _ 971212:


pause

movie pausing command

New in 6.0:
"This command was used in earlier versions of Director
 to halt the playback head... It's better to use
 the statement 'go to (the frame)'... lets the movie
 continue to respond to events."
 --

1. TIP: The 'pause' command makes your Director movie sit still and wait, no 'exitFrame' or 'stepFrame' event happens. To keep the movie alive, it's better to use a frame loop 'go the frame' instead. Avoid using the tempo channel setting 'Wait for End of...' or a tight Lingo repeat loop with a repeated 'updateStage' in it, because these two techniques will lock out any user input during their execution; use a frame loop instead.

2. TIP: From Danny Sheives 7/97: When PAUSED in a frame, you don't need to puppet at all for any sprite changes.

3. TIP: Gretchen's 501 BugList mentions this workaround from Istvan Pely for the palette problems that System dialog boxes can create in Director movies: Use 'pause .. updateStage .. continue' to reset the movie's palette after the dialog box has been dismissed, and before the next palette change.

4. TIP: The 'pause' command is handy for a movie-in-a-window (MIAW): Use it in its 'on deActivateWindow' handler to have the movie pause when the MIAW receives a 'moveToBack' command, and have a 'continue' command in its 'on activateWindow' handler to carry on playing when it gets a 'moveToFront'. If you're using 'close/open window', you need to place the two commands in the 'on closeWindow' and 'on openWindow' event handlers. A substitution for the outdated 'pause' command would need preparing a special frame to jump to and loop in and handle sound and interactivity when the MIAW loses focus.






[index] _ D5/601 _ 971212:


play / play done

movie session playing commands

6.0 Dictionary Errors, same in 5.0:

= Missing:
"If a movie comes across a 'play done', which was NOT started
 with a 'play...' from another movie, it will rewind
 and start playing from frame 1."

= Missing:
  Everything mentioned in the Dictionary's entry on 'go to...'
  about the resetting of properties and events equally applies
  to 'play' and 'play done' commands when used to jump movies.

= Missing:
"See Also: ... go command, play done"
 --

From the '501 ReadMe':
  The 'play' and 'play done' commands have no effect
  in movies that play in a window (MIAW's).
  --

From the '6.0 ReadMe':
  The 'go to...', 'play...', 'puppetPalette', and 'updateStage'
  commands are disabled in the following handlers: 'on prepareMovie',
  'on prepareFrame', 'on beginSprite', 'on endSprite', 'on stepFrame'.
  --

From the '601 ReadMe':
  Fixed a crash with 'the actorlist' and 'play/play done'.
  --

TIP: Remember: It's better to use 'go to movie (the pathName & myMovieName)' instead of the 'play' command. If you regularly use 'play (the pathName & myMovieName)', but forget the necessary 'play done' commands in your movies, you will slowly eat up RAM, and possibly destabilize your projector.





(Top)

URL = "http://www.a3w.de/Lingo/Ldoc_Navigation.html"  (971212)

 Top [Main Page] [About...] [Error Lists] [Ldoc+ Index] [Lingo Groups]
The Ldoc+ © Copyright 97-98 by Denis Wieger Online since June 1, 1997. All rights reserved.
<mailto:Denis@a3w.de
 Top