Lingo Dictionary > A-C > ancestor

 

ancestor

Syntax

property {optionalProperties} ancestor

Description

Object property; allows child objects and behaviors to use handlers that are not contained within the parent script or behavior.

The ancestor property is typically used with two or more parent scripts. You can use this property when you want child objects and behaviors to share certain behaviors that are inherited from an ancestor, while differing in other behaviors that are inherited from the parents.

For child objects, the ancestor property is usually assigned in the on new handler within the parent script. Sending a message to a child object that does not have a defined handler forwards that message to the script defined by the ancestor property.

If a behavior has an ancestor, the ancestor receives mouse events such as mouseDown and mouseWithin.

The ancestor property lets you change behaviors and properties for a large group of objects with a single command.

The ancestor script can contain independent property variables that can be obtained by child objects. To refer to property variables within the ancestor script, you must use this syntax:

me.propertyVariable = value

For example, this statement changes the property variable legCount within an ancestor script to 4:

me.legCount = 4

Use the syntax the variableName of scriptName to access property variables that are not contained within the current object. This statement allows the variable myLegCount within the child object to access the property variable legCount within the ancestor script:

set myLegCount to the legCount of me

Example

Each of the following scripts is a cast member. The ancestor script Animal and the parent scripts Dog and Man interact with one another to define objects.

The first script, Dog, sets the property variable breed to Mutt, sets the ancestor of Dog to the Animal script, and sets the legCount variable that is stored in the ancestor script to 4:

property breed, ancestor
on new me
	set breed = "Mutt" 
	set the ancestor of me to new(script "Animal")
	set the legCount of me to 4 
	return me
end

The second script, Man, sets the property variable race to Caucasian, sets the ancestor of Man to the Animal script, and sets the legCount variable that is stored in the ancestor script to 2:

property race, ancestor
on new me
	set race to "Caucasian"
	set the ancestor of me to new(script "Animal")
	set the legCount of me to 2
	return me
end

See also

new(), me, property