主题:  IE 永远未老,DHTML行为独好(自chinabyte)二

5D荣誉斑竹

职务:版主
等级:3
金币:10.0
发贴:786
注册:2000/9/15 21:25:59
#12001/2/1 9:58:28
Behavior 描述了与它相应的 HTML 元素的动态表现。这样一来,Behavior 就不包含它自己的数据。它需要操纵存储在 Web 页面中的数据。这些数据通过 Scriptlet 的接口部分中指定的有名属性传递给 Behavior。< IMPLEMENTS> 标记的 Automation 类型包含以下属性:

< IMPLEMENTS TYPE="Automation">
< METHOD NAME="blink"/>
< PROPERTY NAME="x"/>
< PROPERTY NAME="y"/>
< /IMPLEMENTS>
   注意每个 PROPERTY 标记结尾的 /,它代替了应该在 PROPERTY 标记结束位置的 < /PROPERTY> 标记。

   在 Scriptlet 接口中指定的属性名必须同 DHTML 元素中的保持一致。你可以使用任何名字定义你需要数目的属性。这里的例子里,我们把 Behavior 和一个 DIV 元素联系在一起。在下面的 DIV 定义中指定了 x 和 y 接口属性:

< DIV CLASS="soccer" x="200" y="250">
   在 Scriptlet 的脚本部分,你可以像使用任何其它本地变量一样地使用接口属性。在闪动的足球例子里,我们使用 x 和 y 属性确定一个动态 HTML 元素 (DIV) 的位置:

style.pixelTop = x;
style.pixelLeft = y;

   Behavior 作用在一个与 DHTML 元素相联系的对象上。在闪动足球例子里,首先在 Scriptlet 文件里定义了一个叫作 soccer 的 Behavior,然后通过给它的 CLASS 属性赋值,把一个 DIV 元素和这个 Behavior 联系起来:

< DIV CLASS="soccer" ...
   一旦把一个 Behavior 和一个 DHTML 元素联系起来,在 Behavior 定义脚本中的任何操作就假定为工作在此 DHTML 元素对象上。例如,当你操纵 soccer Behavior 中的属性时,你实际上是在操纵相应的 DHTML 对象的属性。soccer Scriptlet 中的以下代码改变 DIV 对象的可见性和位置:

style.position = "absolute";
style.pixelTop = x;
style.pixelLeft = y;
   要想引用对象的方法就比较复杂了。Internet Explorer 5.0 中并不默认指到相应的 DHTML 对象,它提供一个 uniqueID 机制。 uniqueID 是 Behavior 操作的当前 DHTML 对象的唯一标识符。在闪动足球例子里,当希望调用 blink() 方法时,用 uniqueID+".blink()" 方式调用它。当希望通过 msecs 以毫秒为单位指定将来的闪动时,我们使用以下代码:

window.setTimeout(uniqueID+".blink()", msecs);