今天发一篇有关如何在WAP中实现文字滚动动画的教材
;虽说没有很大的实际意义,在WAP中没有多少用武之处,但通过这次练习可以了解到ontimer事件的作用
;首先说说动画,学FLASH的人就马上会想到帧,在单位时间内播放多少帧就能实现动画的效果(不过文字滚动在HTML网页中也能用marquee实现效果)
;WAP中实现文字滚动的效果就只能利用动画的原理实现,因为WML中没有marquee,但是有CARD 的ontimer事件
;ontimer类似<meta http-equiv="refresh"
;content="300;url=main.asp">和JAVASCRIPT中的setTimeout方法,用于指定一个事件。当<timer/>
;标签指定的时间到期后,浏览器就执行ontimer所指定的这个事件。
;ontimer可以是一个URL地址,一个卡片组,一个WML网页,一幅图像或其他符合URL定位的规则的文件。
;<timer/>标签指定的时间为正整数,单位大小为1/10秒。
;ontimer时间只能包含在card元素或template元素的标签中进行定义,其语法形式如下:
;<card id="name" title="label" newcontext="boolean" ordered="true"
;onenterforward="href" onenterbackward="href" ontimer="href">
;内容(content)
;</card>
;或:
;<template onenterforward="href" onenterbackward="href"
;ontimer="href">
;内容(content)
;</template>
;ontimer事件只有一个属性,即ontimer。
;它用于指定一个超链(href)的URL地址,指定时间timer过期的时候,用户浏览器就会按照超链(href)的URL打开相应的卡片或者文件。
;先测试一个例子
;<card id="c1" title="c1" ontimer="#c2">
;<timer value="20"/>
;X1
;</card>
;<card id="c2" title="c2" ontimer="#c1">
;X2
;<timer value="50"/>
;</card>
;效果为:打开页面后显示X1 2秒后跳到第二个名为C2的CARD 显示X2 5秒后跳回第一个卡片
;一般HTML页面中文字滚动效果都是自下而上
;可以做这样的设计
;第一个卡片显示内容
;------------------
;XXXXXXXXXXXXXXXXXX
;------------------
代码为:
;------------------
;<br/><br/><br/>
;XXXXXXXXXXXXXXXXXX
;------------------
;第二个卡片显示内容
;------------------
XXXXXXXXXXXXXXXXXX
;------------------
;代码为:
;------------------
;<br/><br/>
;XXXXXXXXXXXXXXXXXX
;------------------
;这样配合ONTIMER事件就能实现文字向上移一行的效果
;完整代码如下:
;<%@ Language=VBScript %>
;<% Response.ContentType="text/vnd.wap.wml" %>
;<?xml version="1.0" encoding="gb2312"?>
;<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
;"http://www.wapforum.org/DTD/ wml_1.1.xml">
;<wml>
;<%
;dim mystr
;mystr="文字文字文字文字文字"
;'mystr 可由数据库中读出
;const mheight=6
;'定义滚动高度
;const speed=30
;'定义滚动速度,快慢自己决定,不过太快小心关不掉^-^
;for i= 1 to mheight
;if i=mheight then
;ii=1
;else
;ii=i+1
;end if
;'判断是不是最后一张卡片
;response.write ("<card id='c"&i&"' title='c"&i&"'
;ontimer='#c"&ii&"'>"&vbcrlf)
;response.write ("<timer value='"&speed&"'/>"&vbcrlf)
;brcount=mheight-i
;for j1=0 to brcount-1
;response.write ( "<br/>"&vbcrlf)
;next
;response.write ( mystr&vbcrlf)
;response.write ("</card>"&vbcrlf)
;next
;'写出全部卡片
;%>
;</wml>