Using Director > Writing Scripts with Lingo > Using handlers > Using arguments to pass values to a handler

 

Using arguments to pass values to a handler

By using arguments for values, you can give the handler exactly the values that it needs to use at a specific time, regardless of where or when you call the handler in the movie. Arguments can be optional or required, depending on the situation.

To create arguments for a handler:

Put the arguments after the handler name. Use commas to separate multiple arguments.

For example, the following handler, called addThem, adds two values it receives in the arguments a and b, stores the result in local variable c, and uses the Lingo term return to send the result back to the original handler:

on addThem a, b
	-- a and b are argument placeholders
	c = a + b
	return c
end 

When you call a handler, you must provide specific values for the arguments that the handler uses. You can use any type of value, such as a number, a variable that has a value assigned, or a string of characters. Values in the calling statement must be in the order they follow in the handler's arguments, and they must be surrounded by parentheses.

The following statement is a calling statement for the on addThem handler:

set mySum = addThem(4, 8)

Because 4 is first in the list of arguments, Lingo substitutes it for a in the handler. Likewise, because 8 is second in the list of arguments, Lingo substitutes 8 for b everywhere in the handler.

After the calling statement sends these parameters to the handler, the handler returns the value 12, which corresponds to the variable c inside the on addThem handler. The variable mySum in the calling statement is then set to 12.

You can also use expressions as values. For example, the following statement substitutes 3+6 for a and 8>2 (or 1, representing TRUE) for b, and would return 10:

set mySum = addThem(3+6, 8>2)