Object
In SurgeScript, all objects are also instances of Object
. This means that the properties and functions listed below are available for all objects:
Properties
parent
parent
: object, read-only.
Reference to the parent object.
__name
__name
: string, read-only.
The name of the object.
__active
__active
: boolean.
Indicates whether the object is active or not.
Objects are active by default. Whenever an object is set to be inactive, its state machine is paused. Additionally, the state machines of all its descendants are also paused.
__functions
__functions
: Array object, read-only.
The functions of this object represented as a collection of strings.
__timespent
__timespent
: number, read-only.
The average time spent in the current state (measured in seconds).
__file
__file
: string, read-only.
The source file of this object.
Available since: SurgeScript 0.5.3
__children
__children
: Array object, read-only.
The children of this object.
Available since: SurgeScript 0.5.4
Returns
A new array featuring all the children of this object. If there are no children, an empty array is returned.
__childCount
__childCount
: number, read-only.
The number of children of the object.
Available since: SurgeScript 0.5.5
Note: prior to SurgeScript 0.5.5, you would use object.childCount
instead. That form is now obsolete.
Functions
spawn
spawn(objectName)
Spawns an object named objectName
.
Arguments
objectName
: string. The name of the object to be spawned / instantiated.
Returns
A new object of the desired name. Note that the newly created object will be a child of this
.
destroy
destroy()
Destroys the object.
child
child(childName | childId)
Looks for a child named childName
(or matching childId
).
Arguments
childName
: string. The name of the desired child.childId
: number. The id of the desired child, an integer between0
andchildCount - 1
, inclusive.
Returns
The desired child, or null
if there is no such object.
children
children(childName)
Finds all children named childName
. Since this function spawns a new array at each call, it's recommended to cache its return value.
Available since: SurgeScript 0.5.4
Arguments
childName
: string. The name of the desired children.
Returns
A new array containing all children named childName
. If no such children are found, an empty array is returned.
childWithTag
childWithTag(tagName)
Finds a child tagged tagName
.
Available since: SurgeScript 0.5.4
Arguments
tagName
: string. The name of a tag.
Returns
A child tagged tagName
, or null
if there is no such object.
childrenWithTag
childrenWithTag(tagName)
Finds all children tagged tagName
.
Available since: SurgeScript 0.5.4
Arguments
tagName
: string. The name of a tag.
Returns
A new array containing all children tagged tagName
. If there are no such children, an empty array is returned.
sibling
sibling(siblingName)
Looks for a sibling named siblingName
. Two objects are siblings if they share the same parent.
Arguments
siblingName
: string. The name of the desired sibling.
Returns
A sibling of name siblingName
, or null
if there is no such object.
findObject
findObject(objectName)
Finds a descendant (child, grand-child, and so on) named objectName
. Since this function traverses the object tree, it's recommended to cache its return value. Do not use it in loops or states, as it might be slow.
Arguments
objectName
: string. The name of the desired object.
Returns
A descendant named objectName
, or null
if there is no such object.
Example
object "TestObject"
{
// will search for SomeOtherObject in the Application
obj = Application.findObject("SomeOtherObject");
state "main"
{
if(obj != null)
Console.print("Found the object.");
else
Console.print("Object not found.");
destroy();
}
}
findObjects
findObjects(objectName)
Finds all descendants named objectName
. Since this function traverses the object tree, it's recommended to cache its return value. Do not use it in loops or states, as it might be slow.
Available since: SurgeScript 0.5.4
Arguments
objectName
: string. The name of the objects to be found.
Returns
A new array containing all descendants named objectName
. If no such descendants are found, an empty array is returned.
findObjectWithTag
findObjectWithTag(tagName)
Finds a descendant tagged tagName
. Since this function traverses the object tree, it's recommended to cache its return value. Do not use it in loops or states, as it might be slow.
Available since: SurgeScript 0.5.4
Arguments
tagName
: string. The name of a tag.
Returns
A descendant tagged tagName
, or null
if there is no such object.
findObjectsWithTag
findObjectsWithTag(tagName)
Finds all descendants tagged tagName
. Since this function traverses the object tree, it's recommended to cache its return value. Do not use it in loops or states, as it might be slow.
Available since: SurgeScript 0.5.4
Arguments
tagName
: string. The name of a tag.
Returns
A new array containing all descendants tagged tagName
. If no such descendants are found, an empty array is returned.
toString
toString()
Converts the object to a string. This function is designed to be overloaded by your own objects.
Returns
A string.
equals
equals(otherObject)
Compares this
object to otherObject
. This function is designed to be overloaded by your own objects.
Arguments
otherObject
: object. An object to comparethis
to.
Returns
Returns true
if the objects are equal; false
otherwise.
hasFunction
hasFunction(functionName)
Checks if the object has a function named functionName
.
Arguments
functionName
: string. The name of the function.
Returns
Returns true
if the object has a function named functionName
.
hasTag
hasTag(tagName)
Checks if the object has been tagged tagName
.
See also: TagSystem.hasTag().
Arguments
tagName
: string. The name of the tag.
Returns
Returns true
if the object has been tagged tagName
.
__invoke
__invoke(functionName, paramsArray)
Invokes function functionName
, passing the parameters specified in paramsArray
. The number of elements of paramsArray
must be the same as the number of parameters required by the function to be invoked.
Available since: SurgeScript 0.5.2
Arguments
functionName
: string. The name of the function to be called.paramsArray
: Array. The parameters to be passed to the function.
Returns
Returns the value returned by the invoked function.
Example
// The program below will print:
// 12
// 12
// true
object "Application"
{
state "main"
{
Console.print(this.sum(5, 7));
Console.print(this.__invoke("sum", [5, 7]));
Console.print(sum(5, 7) == __invoke("sum", [5, 7]));
Application.exit();
}
fun sum(a, b)
{
return a + b;
}
}
__arity
__arity(functionName)
Returns the number of arguments of function functionName
, if it's defined. If it's not defined, zero will be returned.
Available since: SurgeScript 0.5.4
Arguments
functionName
: string. The name of a function.
Returns
The number of arguments of the specified function, or zero if the function is not defined.