Home > Articles

This chapter is from the book

Navigation with Lingo

One of the simplest tasks you can do with Lingo is to control the flow of your movie. You can tell the movie to jump straight from frame 4 to frame 12, for instance. Or, you could tell it to jump from frame 17 back to frame 9.

Better still, you can tell the movie to wait on a frame, and then let the user control the movie by associating navigation commands with buttons.

Navigation With the go Command

The go command is the most basic Lingo navigation command. If you are building a presentation with Director, you will want to use various Lingo navigation commands to allow the user to move through the screens of your presentation.

You can make the movie jump to a frame number by simply telling it to go. Open the Score panel and the Message panel. The playback head should be on frame 1. Now, in the Message panel, type go 5.

The playback head should proceed to frame 5. A more common form of this command is to use the full statement go to frame 5. This is a little more readable.

You can also tell the movie to go to the next marker. Create a marker label for frame 7 simply called "intro". Do this by clicking on the marker/label bar above the frame numbers in the Score. Then, in the Message panel type go to frame "intro".

You can put this code into a button using the on mouseUp handler. For instance, to create a button that will jump to the "intro" frame, all you need is to attach this script to the button:

on mouseUp
 go to frame "intro"

Use the go command to jump to frames based on the current location of the movie. When you issue a go to the frame command, the frame is actually the frame number of the frame that you are on. You can test this in the Message panel:

put the frame
-- 7

So in order to go to the next frame, just issue a command like this:

go to the frame + 1

If you want to jump ahead to the next labeled frame, use the special syntax go next. For instance, if frame 1 is labeled "menu", frame 2 is empty, and frame 3 is labeled "summary", and the movie is on frame 1, then go next will take the movie to frame 3.

Similarly, you can use go previous to jump to the previously labeled frame relative to the current frame. Table 3.3 shows all the variations of the go command.

Table 3.3 The Many Versions of the go Command




go to frame x

The movie goes to frame number X.

go to frame 7

go to frame "x"

The movie goes to the frame labeled X.

go to frame "credits"

go to the frame

The movie begins the current frame over again.

go to the frame

go to the frame + x

The movie jumps ahead X frames.

go to the frame + 1

go to the frame - x

The movie jumps back X frames

go to the frame - 1

go next

The movie jumps to the next labeled frame.

go next

go previous

The movie jumps to the labeled frame immediately before the current frame

go previous

go loop

The movie jumps back to the currently labeled frame.

go loop

go marker(x)

The movie jumps forward X labeled frames.

go marker(2)

go marker(-x)

The movie jumps back X labeled frames.

go marker(-2)


Jumps to the frame or movie, and remembers where it came from

play frame 40

play done

Returns to the frame where the last play command was issued.

play done

The play and play done commands will be covered in more detail in the next section.

The most confusing concept is the difference between the current label and the previous label. Figure 3.4 shows the Score with some labeled frames. The playback head is between two of them in frame 7. Frame 5 is labeled "that", frame 1 is labeled "this", and frame 10 is labeled "other". If you were to execute a go loop, the movie would jump back to "that", because it is the closest marker just before the playback head. However, a go previous command takes the movie back to "this", which is considered the previous label.

Figure 3.4Figure 3.4 The playback head is between two labeled frames. "that" is considered the current label and "this" is the previous one.

The function marker() is used to get frame label information from the Score. It takes one number as a parameter. If that number is a 0, it returns the name of the current label marker. If it is a -1, it returns the name of the previous marker. A 1 returns the name of the next marker.

play and play done

A second way to navigate around a movie is to use the play command. The basic command works just like a go, but there is a major difference. The play command actually remembers which frame the movie was on when the command was issued. That way, the play done command can be used to return the playback head to the original frame.

Suppose you have three labels named "menu", "chapter1", and "chapter2" in the Score. A button on the frame labeled "menu" can issue this command:

play frame "chapter1"

Then, another button on the frame labeled "chapter1" can issue a play done to have the playback head return to the frame "menu". The same play done button and behavior can be reused in the frame labeled "chapter2".

You could, in fact, issue the initial play command anywhere in the movie and Director will remember that frame and use it with the play done command.

Jumping to Other Movies

Both go and play can be used to jump to another movie as well as a frame in the current movie. The syntax is simply an extension of what you have already read about.

Here is a behavior that opens another movie and starts playing it from frame 1:

on mouseUp
 go to movie "nextMovie.dir"


Director is actually smart enough to assume the correct extension at the end of a movie name if you leave it off. This way, you don't have to worry about having a .dir extension on a Windows file but not on a Mac file. It also solves the problem of changing the movie's filename to have a .dxr or a .dcr when you protect or compress it later.

If you don't want to have the movie start playing on frame 1, you can specify the frame by extending the command a bit:

on mouseUp
 go to frame "intro" of movie "nextMovie.dir"

You can use the same format with the play command. The power of the play command really shines here. You can have a button that takes users to a completely separate movie and enables them to navigate there. When they are finished, they can press a button that executes a play done command and they will return to the previous movie. The play done command even returns users to the correct frame in that movie.

Example: Creating a Simple Presentation

The set of files presentation1.dir and presentation2.dir contain a simple presentation built in Director. It has been designed to teach basic navigation techniques.

In the first sample movie, you can see the four frames of the presentation. Each contains information about one of four countries. Each frame is labeled in the Score. Figure 3.5 shows what the Score looks like.

Figure 3.5Figure 3.5 The Score shows the four frames in the presentation.

Each frame has a frame script applied to it. This looks like the looping frame script mentioned earlier in this chapter.

on exitFrame
 go to the frame

By using this script, the movie will remain on each frame, without advancing automatically to the next frame in the Score.

Each of the four frames contains several sprites. The first two sprites of the Score are stretched across all four labeled frames. These include the title bar background and the title. You can see the title bar and title at the top of Figure 3.6.

Figure 3.6Figure 3.6 This simple presentation shows information about countries.

There is also a world map graphic and another border around the text area that are stretched across all frames.

Then each screen contains a separate set of three sprites: the city name, the text information about the city, and a circle to indicate the position of the city on the map.

The city name and text information sprites each use a different cast member on each frame. So there are four city name members and four city information members. The circle for the map is just one member. Each of the four sprites that use this single member have it positioned at the different location on the Stage.

Two other sprites that are stretched across the Score are the two buttons at the bottom of the screen. They look like arrows pointing left and right.

These are actually the same member in the Cast. The right button sprite uses that member as-is. But the left button member uses a sprite ability to flip itself horizontally to create a mirror image. This way we only need one Cast member for both the left and right buttons.

These two buttons are the only other place in the movie where there are scripts. On the left button, we'll use this script:

on mouseUp
 go previous

On the right button, we'll use this script:

on mouseUp
 go next

This will allow the user or presenter to navigate between the four frames. Try the movie out and look at each sprite and script.

Example: A Presentation Menu Screen

This simple presentation movie simulates a basic PowerPoint presentation. However, it would be much more useful if information were available more easily to the user. For instance, the user should be able to jump to any screen in the movie, not just the previous or next screen.

To do this, we'll add a menu frame to the movie. This will be the first frame. The other four frames will be moved down two frames to the right. Do this by selecting the sprites and dragging them to the right. Then drag the markers as well.

Figure 3.7 shows the new Score for movie presentation2.dir. The first frame is labeled "menu" and contains the title box and title text sprites just like the four other frames.

Figure 3.7Figure 3.7 This Score includes a menu frame.

The menu frame includes four buttons. These are the same bitmap member, but stacked vertically on the Stage, one under the other. Overlaid on top of that is a text member that gives each button a label. By using the same exact button four times and a text member on top of them, we make it easy to add new buttons or change the text on the existing ones. The end-user doesn't know or care that the text and buttons are really separate elements.

Each button is a rectangular graphic with a triangle on the left and a gray area filling out the rectangle to the right. Figure 3.8 shows the bitmap in the Paint Editor. The reason that the gray area doesn't appear in the previous figure is that the Stage itself is the same shade of gray.

Figure 3.8Figure 3.8 The gray part of this bitmap will blend with the gray color of the Stage.

Since the entire area of a button is clickable, making the buttons larger than they appear will give the user a larger space to click on. In this case, the user will be able to click on the area under the text.

The scripts for each button will be very similar. Here is the script for the first one. The rest of the button scripts use different frame names.

on mouseUp
 go to frame "US"

We'll also add another button to the movie to allow the user to get back to the menu frame. This button only needs to be on the content frames, not the menu frame. This menu button will allow the user to jump back to the menu to select another city.

on mouseUp
 go to frame "menu"

With presentation2.dir, the user can navigate through the same content in a very different way. They can select a city and jump right to that screen. Then can then return to the menu and select another city. The next and previous arrow buttons are still there as another option.

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information

To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.


Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.


If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information

Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.


This site is not directed to children under the age of 13.


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information

If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information

Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents

California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure

Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact

Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice

We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020