聲明一個屬性。
<property name="propertyName" [internalName="propertyVariable"] />
或者
<property name="propertyName"> <get [internalName="getFunctionName"] /> <put [internalName="putFunctionName"] /> </property>
提示 在 XML,可以實現(xiàn)沒有內容的元素 (如 <property> 元素),方法是用 /> 來結束元素。
屬性可以作為簡單值來說明。在這種情況下,屬性將作為腳本部件文件內的全局變量來處理。
也可以將屬性作為過程(函數(shù)或子程序)來實現(xiàn),這樣可以計算屬性的值,以及控制屬性是否為只讀、只寫或是可讀寫的。在這種技術中,屬性將在單獨的 <script> 元素內作為過程(函數(shù)或子程序)實現(xiàn)。<property>元素將屬性名稱映射到用來實現(xiàn)該屬性的過程。過程的名稱必須與在 <property> 元素中指定的內部名稱一致。
當調用 putFunctionName 時,該函數(shù)將傳遞一個參數(shù),其中包含了用來設置給該屬性的值。
除了以上所示的標準語法,您可以使用速記符號指定由子標記(child tags)添加的信息。例如,如果您想聲明一個具有和屬性相同名字的"get" 和 "put" 訪問者屬性,您可以使用以下語法:
<property name="myproperty" get put/>
它在功能上相當于:
<property name="myproperty"><get/> <put/></property>
如果您想明確地不以默認名稱命名這些訪問者,您可以使用以下語法:
<property name="myproperty" get="testget" put="testput"/>
要指定缺省屬性,只需在 <property> 元素中包含 dispid="0" 這個屬性。詳細信息請參閱說明屬性。
下面的腳本部件片段演示了四個屬性 (sname、age、dateOfBirth 以及 mstatus) 的定義。sname 屬性為一個簡單值。age 屬性是只讀的,由 readAge 函數(shù)實現(xiàn)。dateOfBirth 屬性是可讀寫的,由 readDOB 和 writeDOB 兩個函數(shù)實現(xiàn)。最后, mstatus 屬性由缺省函數(shù) get_mstatus 以及 put_mstatus 實現(xiàn)。
注意 CDATA 項是必需的,以使 <script> 元素中的腳本成為不透明的。詳細信息請參閱腳本部件文件和 XML 一致性。
<public>
<property name="sname"/>
<property name="age">
<get internalName="readAge"/>
</property>
<property name="dateOfBirth">
<get internalName="readDOB"/>
<put internalName="writeDOB"/>
</property>
<property name="mstatus">
<get/>
<put/>
</property>
</public>
<script language="VBScript">
<![CDATA[
Dim sname ' 可讀寫的 sname 屬性(沒有函數(shù))。
Dim gDOB ' 用來保存出生日期的全局變量。
Dim gMStatus ' 用來保存材料狀態(tài)的全局變量。
Function readDOB()
' Gets value of dateOfBirth property.
readDOB = gDOB
End Function
Function writeDOB(newDOB)
' 設置 dateOfBirth 屬性的值。
If isDate(gDOB) Then
' 錯誤檢查。
gDOB = newDOB
End If
End Function
Function readAge()
'計算只讀 age 的屬性。
If isDate(gDOB) Then
dobM = DatePart("m", gDOB)
dobD = DatePart("d", gDOB)
dobY = DatePart("yyyy", gDOB)
todayY = DatePart("yyyy", Date)
age = todayY - dobY
' 如果今年還沒有過生日,則進行調整。
bday = DateValue(dobM & "/" & dobD & "/" & todayY)
If DateDiff("d", bday, DateValue(Date)) < 0 Then
age = age - 1
End If
readAge = age
End If
End Function
Function get_mstatus()
' 讀取 mstatus 屬性的值。
get_mstatus = gMStatus
End Function
Function put_mstatus(s)
' 寫入 mstatus 屬性的值。
If s = "M" Or s = "S" Then
gMStatus = s
Else
gMStatus = "?"
End If
End Function
]]>
</script>
<event> 元素 | <method> 元素 | 說明事件 | 說明方法 | 說明屬性