Attribute

出自OpenFace

跳转到: 导航, 搜索

<attribute>

  Sets an attribute of the object that contains it.

  The <attribute> tag has two uses:

  1.In a class definiiton, the <attribute> tag defines an attribute that can be set in instances of the class.

<canvas height="30">
 <class name="mybutton" extends="text" fontsize="16">
   <attribute name="myattr" type="string" value="after"/>
 </class>
 <mybutton text="before" myattr="after" oninit="setAttribute('text', this.myattr)"/>
</canvas>

  In an instance, the <attribute> tag attaches an attribute to the instance. The attribute can be accessed from script.

<canvas height="30">
 <class name="mybutton" extends="text" fontsize="16">
     <attribute name="myattr" type="string" value="after"/>
 </class>
 <mybutton text="before" oninit="setAttribute('text', this.myattr)">
   <attribute name="myattr" value="perhaps later"/>
 </mybutton>
</canvas>

See the Guide for a complete discussion.

Also see the documentation for <class> and the general description of LZX attributes. The Classes tutorial describes how to use attributes to define a class.

Attributes

Name     Usage    Type(Tag)    Type(JS)    Default    Category

name     Tag only   token                    final

       The name of the attribute.



required   Tag only    boolean             false      final

       True if this is a required attribute.



setter  Tag only script                      final   

       Code that is executed when setAttribute is used to set the value of this attribute. This code is executed within a context in which the variable with this attribute's name is bound to the value passed to setAttribute.



type    Tag only boolean | color | expression | number | size | string | text | html expression final

      The type of the attribute. This determines how the value is parsed. Attributes of type string are automatically quoted if when="immediate", for any other value of when, a literal string would have to be quoted to be used as a value.



value     Tag only string                            final

      The initial value of the attribute. The type of this value is specified by the value of the type attribute; if that attribute is not present, it's the type of this attribute in this element's tag. The attribute is given this value when the element is created.



when     Tag only immediately | once | always       immediately    final

      When the initial value expression is to be evaluated. One of:

immediately evaluate when the enclosing element is defined (must be a constant) once evaluate when the enclosing element is initialized always update whenever the value of the expression changes The default is when="immediately".

The setting for when can be overridden when assigning a value to an attribute by using the syntax attribute name=$when value{expression}. The default for when value is always, for example: <view title="$once{computeTitle()}" /> sets the title of the view to a computed value and <view title="${parent.subtitle}" \> will cause the title of the view to track parent.subtitle.