Interface Script

All Superinterfaces:
X3DChildNode, X3DNode, X3DScriptNode, X3DUrlObject
All Known Implementing Classes:
ScriptObject

public interface Script
extends X3DScriptNode
Script contains author-programmed event behaviors for a scene.

X3D 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 a CDATA block to contain source code embedded within an X3D scene.
  • Hint: a contained 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 http://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Scripts
  • Hint: apply containerField='watchList' when parent node is LoadSensor.

Package hint: This interface is defined by the X3D Java Language Binding Specification for the Scene Authoring Interface (SAI).
See Also:
SAI Java Specification: TODO, X3D Abstract Specification: Script, X3D Tooltips: Script, X3D Scene Authoring Hints: Scripts
  • Method Summary

    Modifier and Type Method Description
    boolean getDirectOutput()
    Provide boolean value from initializeOnly SFBool field named directOutput.
    X3DMetadataObject getMetadata()
    Provide X3DMetadataObject instance (using a properly typed node) from inputOutput SFNode field metadata.
    boolean getMustEvaluate()
    Provide boolean value from initializeOnly SFBool field named mustEvaluate.
    java.lang.String[] getUrl()
    Provide array of String results from inputOutput MFString field named url.
    Script setDirectOutput​(boolean newValue)
    Accessor method to assign boolean value to initializeOnly SFBool field named directOutput.
    Script setMetadata​(X3DMetadataObject newValue)
    Accessor method to assign X3DMetadataObject instance (using a properly typed node) to inputOutput SFNode field metadata.
    Script setMustEvaluate​(boolean newValue)
    Accessor method to assign boolean value to initializeOnly SFBool field named mustEvaluate.
    Script setUrl​(java.lang.String[] newValue)
    Accessor method to assign String array to inputOutput MFString field named url.
  • Method Details

    • 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

      Script setDirectOutput​(boolean newValue)
      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).
    • getMetadata

      X3DMetadataObject getMetadata()
      Provide X3DMetadataObject instance (using a properly typed node) from inputOutput SFNode field metadata.
      Specified by:
      getMetadata in interface X3DChildNode
      Specified by:
      getMetadata in interface X3DNode
      Specified by:
      getMetadata in interface X3DScriptNode
      Returns:
      value of metadata field
      See Also:
      X3D Scene Authoring Hints: Metadata Nodes
    • setMetadata

      Script setMetadata​(X3DMetadataObject newValue)
      Accessor method to assign X3DMetadataObject instance (using a properly typed node) to inputOutput SFNode field metadata.
      Specified by:
      setMetadata in interface X3DChildNode
      Specified by:
      setMetadata in interface X3DNode
      Specified by:
      setMetadata in interface X3DScriptNode
      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:
      X3D Scene Authoring Hints: Metadata Nodes
    • 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

      Script setMustEvaluate​(boolean newValue)
      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).
    • getUrl

      java.lang.String[] getUrl()
      Provide array of String results from inputOutput MFString field named url.

      Tooltip: List of address links for runnable script files.
      • 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 http://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 http://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 "http://www.web3d.org" "http://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 http://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#urls
      Specified by:
      getUrl in interface X3DScriptNode
      Specified by:
      getUrl in interface X3DUrlObject
      Returns:
      value of url field
    • setUrl

      Script setUrl​(java.lang.String[] newValue)
      Accessor method to assign String array to inputOutput MFString field named url.

      Tooltip: List of address links for runnable script files.
      • 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 http://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 http://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 "http://www.web3d.org" "http://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 http://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#urls
      Specified by:
      setUrl in interface X3DScriptNode
      Specified by:
      setUrl in interface X3DUrlObject
      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).