Package org.web3d.x3d.sai.Scripting
Interface Script
- All Superinterfaces:
X3DChildNode
,X3DNode
,X3DScriptNode
,X3DUrlObject
- All Known Implementing Classes:
Script
Script contains author-programmed event behaviors for a scene.
Warning: this is an abstract interface that cannot be instantiated as a concrete object. Java programmers typically only need to use concrete objects provided by the
Package hint: This interface is defined by the X3D Java Language Binding Specification for the Scene Authoring Interface (SAI).
Warning: this is an abstract interface that cannot be instantiated as a concrete object. Java programmers typically only need to use concrete objects provided by the
org.web3d.x3d.jsail
classes.
Script node tooltip: [X3DScriptNode] Script contains author-programmed event behaviors for a scene. Define the script input-output event interface by including <field/> elements. Scripting code is embedded in a child CDATA node or (deprecated) in the url field. Optionally supported programming languages are ECMAScript (JavaScript) and Java (via url to a myNode.class file).
- Hint: insert an XML Character Data (CDATA) block within the Script node to contain source code embedded within an X3D scene, avoiding the need for escape characters.
- Hint: a contained XML Character Data (CDATA) block for source code protects whitespace, line breaks, and literal characters (such as & for ampersand character, < for less-than-sign character, and > for greater-than-sign character) from unintended escape-character modifications by XML parsers.
- Warning: strict order is required for contained constructs: first field declarations (if any), then IS/connect statements (if any), and finally CDATA source-code block.
- Hint: X3D Scene Authoring Hints, Scripts https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Scripts
- Hint: apply containerField='watchList' when parent node is LoadSensor.ECMAScript-262 specification http://www.ecma-international.org/publications/standards/Ecma-262.htm
- Hint: embedded ecmascript: source can also be contained in the sourceCode pseudo-field without escape characters, equivalent to last entry in the url list, when using other API codebases and file encodings.
Package hint: This interface is defined by the X3D Java Language Binding Specification for the Scene Authoring Interface (SAI).
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptiondouble
Provide double value in seconds within allowed range of [0,infinity) from inputOutput SFTime field named autoRefresh.double
Provide double value in seconds within allowed range of [0,infinity) from inputOutput SFTime field named autoRefreshTimeLimit.Provide String value from inputOutput SFString field named description.boolean
Provide boolean value from initializeOnly SFBool field named directOutput.boolean
getLoad()
Provide boolean value from inputOutput SFBool field named load.Provide org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) from inputOutput SFNode field metadata.boolean
Provide boolean value from initializeOnly SFBool field named mustEvaluate.Provide String value from inputOutput SFString field named sourceCode.String[]
getUrl()
Provide array of String results from inputOutput MFString field named url.setAutoRefresh
(double newValue) Accessor method to assign double value in seconds to inputOutput SFTime field named autoRefresh.setAutoRefreshTimeLimit
(double newValue) Accessor method to assign double value in seconds to inputOutput SFTime field named autoRefreshTimeLimit.setDescription
(String newValue) Accessor method to assign String value to inputOutput SFString field named description.setDirectOutput
(boolean newValue) Accessor method to assign boolean value to initializeOnly SFBool field named directOutput.setLoad
(boolean newValue) Accessor method to assign boolean value to inputOutput SFBool field named load.setMetadata
(X3DMetadataObject newValue) Accessor method to assign org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) to inputOutput SFNode field metadata.setMustEvaluate
(boolean newValue) Accessor method to assign boolean value to initializeOnly SFBool field named mustEvaluate.setSourceCode
(String newValue) Accessor method to assign String value to inputOutput SFString field named sourceCode.Accessor method to assign String array to inputOutput MFString field named url.
-
Method Details
-
getAutoRefresh
double getAutoRefresh()Provide double value in seconds within allowed range of [0,infinity) from inputOutput SFTime field named autoRefresh.
Tooltip: autoRefresh defines interval in seconds before automatic reload of current url asset is performed.- Hint: if preceding file loading fails or load field is false, no refresh is performed.
- Hint: repeated refresh attempts to reload currently loaded entry of url list. If that fails, the browser retries other entries in the url list.
- Warning: automatically reloading content has security considerations and needs to be considered carefully.
- Specified by:
getAutoRefresh
in interfaceX3DScriptNode
- Specified by:
getAutoRefresh
in interfaceX3DUrlObject
- Returns:
- value of autoRefresh field
-
setAutoRefresh
Accessor method to assign double value in seconds to inputOutput SFTime field named autoRefresh.
Tooltip: autoRefresh defines interval in seconds before automatic reload of current url asset is performed.- Hint: if preceding file loading fails or load field is false, no refresh is performed.
- Hint: repeated refresh attempts to reload currently loaded entry of url list. If that fails, the browser retries other entries in the url list.
- Warning: automatically reloading content has security considerations and needs to be considered carefully.
- Specified by:
setAutoRefresh
in interfaceX3DScriptNode
- Specified by:
setAutoRefresh
in interfaceX3DUrlObject
- Parameters:
newValue
- is new value for the autoRefresh field.- Returns:
Script
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getAutoRefreshTimeLimit
double getAutoRefreshTimeLimit()Provide double value in seconds within allowed range of [0,infinity) from inputOutput SFTime field named autoRefreshTimeLimit.
Tooltip: autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur.- Hint: Automatic refresh is different than query and response timeouts performed by a networking library while sequentially attempting to retrieve addressed content from a url list.
- Warning: automatically reloading content has security considerations and needs to be considered carefully.
- Specified by:
getAutoRefreshTimeLimit
in interfaceX3DScriptNode
- Specified by:
getAutoRefreshTimeLimit
in interfaceX3DUrlObject
- Returns:
- value of autoRefreshTimeLimit field
-
setAutoRefreshTimeLimit
Accessor method to assign double value in seconds to inputOutput SFTime field named autoRefreshTimeLimit.
Tooltip: autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur.- Hint: Automatic refresh is different than query and response timeouts performed by a networking library while sequentially attempting to retrieve addressed content from a url list.
- Warning: automatically reloading content has security considerations and needs to be considered carefully.
- Specified by:
setAutoRefreshTimeLimit
in interfaceX3DScriptNode
- Specified by:
setAutoRefreshTimeLimit
in interfaceX3DUrlObject
- Parameters:
newValue
- is new value for the autoRefreshTimeLimit field.- Returns:
Script
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getDescription
String getDescription()Provide String value from inputOutput SFString field named description.
Tooltip: Author-provided prose that describes intended purpose of the url asset.- Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as & for & ampersand character, or " for " quotation-mark character).
- Specified by:
getDescription
in interfaceX3DScriptNode
- Specified by:
getDescription
in interfaceX3DUrlObject
- Returns:
- value of description field
-
setDescription
Accessor method to assign String value to inputOutput SFString field named description.
Tooltip: Author-provided prose that describes intended purpose of the url asset.- Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as & for & ampersand character, or " for " quotation-mark character).
- Specified by:
setDescription
in interfaceX3DScriptNode
- Specified by:
setDescription
in interfaceX3DUrlObject
- Parameters:
newValue
- is new value for the description field.- Returns:
Script
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getDirectOutput
boolean getDirectOutput()Provide boolean value from initializeOnly SFBool field named directOutput.
Tooltip: Set directOutput true if Script has field reference(s) of type SFNode/MFNode, and also uses direct access to modify attributes of a referenced node in the Scene.- Hint: set directOutput true if Script dynamically establishes or breaks ROUTEs.
- Hint: directOutput is a browser hint to avoid overoptimizing referenced nodes, since a Script might directly change attribute values in referenced SFNode/MFNode fields, without a ROUTE connecting output events.
- Hint: directOutput false means Script cannot modify referenced nodes or change ROUTEs.
- Returns:
- value of directOutput field
-
setDirectOutput
Accessor method to assign boolean value to initializeOnly SFBool field named directOutput.
Tooltip: Set directOutput true if Script has field reference(s) of type SFNode/MFNode, and also uses direct access to modify attributes of a referenced node in the Scene.- Hint: set directOutput true if Script dynamically establishes or breaks ROUTEs.
- Hint: directOutput is a browser hint to avoid overoptimizing referenced nodes, since a Script might directly change attribute values in referenced SFNode/MFNode fields, without a ROUTE connecting output events.
- Hint: directOutput false means Script cannot modify referenced nodes or change ROUTEs.
- Parameters:
newValue
- is new value for the directOutput field.- Returns:
Script
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getLoad
boolean getLoad()Provide boolean value from inputOutput SFBool field named load.
Tooltip: load=true means load immediately, load=false means defer loading or else unload a previously loaded scene.- Hint: allows author to design when Inline loading occurs via user interaction, event chains or scripting.
- Hint: use a separate LoadSensor node to detect when loading is complete.
- Specified by:
getLoad
in interfaceX3DScriptNode
- Specified by:
getLoad
in interfaceX3DUrlObject
- Returns:
- value of load field
-
setLoad
Accessor method to assign boolean value to inputOutput SFBool field named load.
Tooltip: load=true means load immediately, load=false means defer loading or else unload a previously loaded scene.- Hint: allows author to design when Inline loading occurs via user interaction, event chains or scripting.
- Hint: use a separate LoadSensor node to detect when loading is complete.
- Specified by:
setLoad
in interfaceX3DScriptNode
- Specified by:
setLoad
in interfaceX3DUrlObject
- Parameters:
newValue
- is new value for the load field.- Returns:
Script
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getMetadata
X3DMetadataObject getMetadata()Provide org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) from inputOutput SFNode field metadata.
Tooltip: [X3DMetadataObject] Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.- Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS /Part01/components/core.html#Metadata
- Specified by:
getMetadata
in interfaceX3DChildNode
- Specified by:
getMetadata
in interfaceX3DNode
- Specified by:
getMetadata
in interfaceX3DScriptNode
- Returns:
- value of metadata field
- See Also:
-
setMetadata
Accessor method to assign org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) to inputOutput SFNode field metadata.
Tooltip: [X3DMetadataObject] Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.- Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS /Part01/components/core.html#Metadata
- Specified by:
setMetadata
in interfaceX3DChildNode
- Specified by:
setMetadata
in interfaceX3DNode
- Specified by:
setMetadata
in interfaceX3DScriptNode
- Parameters:
newValue
- is new value for the metadata field.- Returns:
Script
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).- See Also:
-
getMustEvaluate
boolean getMustEvaluate()Provide boolean value from initializeOnly SFBool field named mustEvaluate.
Tooltip: If mustEvaluate false, then the X3D player may delay sending input events to Script until output events are needed. If mustEvaluate true, then Script must receive input events immediately without any event-aggregation delays.- Hint: set mustEvaluate true when sending/receiving values via the network.
- Returns:
- value of mustEvaluate field
-
setMustEvaluate
Accessor method to assign boolean value to initializeOnly SFBool field named mustEvaluate.
Tooltip: If mustEvaluate false, then the X3D player may delay sending input events to Script until output events are needed. If mustEvaluate true, then Script must receive input events immediately without any event-aggregation delays.- Hint: set mustEvaluate true when sending/receiving values via the network.
- Parameters:
newValue
- is new value for the mustEvaluate field.- Returns:
Script
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getSourceCode
String getSourceCode()Provide String value from inputOutput SFString field named sourceCode.- Returns:
- value of sourceCode field
-
setSourceCode
Accessor method to assign String value to inputOutput SFString field named sourceCode.- Parameters:
newValue
- is new value for the sourceCode field.- Returns:
Script
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-
getUrl
String[] getUrl()Provide array of String results from inputOutput MFString field named url.
Tooltip: List of address links for runnable script files.- Hint: embedded ecmascript: source can also be contained in the sourceCode pseudo-field without escape characters, equivalent to last entry in the url list, when using other API codebases and file encodings.
- Hint: browsers are not required to support any particular scripting language, but ECMAScript (JavaScript) is widely supported.
- Hint: equivalent script code written in multiple programming languages can be provided for portability, the first runnable version is chosen at run time.
- Hint: X3D Scene Authoring Hints, Scripts https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Scripts
- Warning: source code can be placed in url attribute but may be unparsable due to escaping of special characters and elimination of line breaks (causing comments to nullify follow-on code). Use contained CDATA section instead for embedding source code.
- Hint: if both url field and CDATA section are provided simultaneously, the url field is processed first. This approach allows utilization of update modifications or live queries in external scripts, while still providing reliable script source as a fallback alternative within the model itself.
- Hint: X3D XML Encoding, 4.3.13 Encapsulating Script node code https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#EncapsulatingScriptNodeCode
- Hint: MFString arrays can have multiple values, so separate each individual string by quote marks "https://www.web3d.org" "https://www.web3d.org/about" "etc."
- Hint: alternative XML encoding for quotation mark " is " (which is an example of a character entity).
- Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.
- Hint: can replace embedded blank(s) in url queries with %20 for each blank character.
- Hint: X3D Scene Authoring Hints, urls https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#urls
- Specified by:
getUrl
in interfaceX3DScriptNode
- Specified by:
getUrl
in interfaceX3DUrlObject
- Returns:
- value of url field
-
setUrl
Accessor method to assign String array to inputOutput MFString field named url.
Tooltip: List of address links for runnable script files.- Hint: embedded ecmascript: source can also be contained in the sourceCode pseudo-field without escape characters, equivalent to last entry in the url list, when using other API codebases and file encodings.
- Hint: browsers are not required to support any particular scripting language, but ECMAScript (JavaScript) is widely supported.
- Hint: equivalent script code written in multiple programming languages can be provided for portability, the first runnable version is chosen at run time.
- Hint: X3D Scene Authoring Hints, Scripts https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Scripts
- Warning: source code can be placed in url attribute but may be unparsable due to escaping of special characters and elimination of line breaks (causing comments to nullify follow-on code). Use contained CDATA section instead for embedding source code.
- Hint: if both url field and CDATA section are provided simultaneously, the url field is processed first. This approach allows utilization of update modifications or live queries in external scripts, while still providing reliable script source as a fallback alternative within the model itself.
- Hint: X3D XML Encoding, 4.3.13 Encapsulating Script node code https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#EncapsulatingScriptNodeCode
- Hint: MFString arrays can have multiple values, so separate each individual string by quote marks "https://www.web3d.org" "https://www.web3d.org/about" "etc."
- Hint: alternative XML encoding for quotation mark " is " (which is an example of a character entity).
- Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.
- Hint: can replace embedded blank(s) in url queries with %20 for each blank character.
- Hint: X3D Scene Authoring Hints, urls https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#urls
- Specified by:
setUrl
in interfaceX3DScriptNode
- Specified by:
setUrl
in interfaceX3DUrlObject
- Parameters:
newValue
- is new value for the url field.- Returns:
Script
- namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
-