当前位置:编程学习 > wap >>

WAP中实现文字滚动

答案:

今天发一篇有关如何在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>


最后欢迎大家访问的我WAP站点,http://wap.f-a2005.com 或者http://myfa.top.163.com
绝对免费!

上一个:开发WAP中的随笔
下一个:Wap技术的研究之路

更多图片编程知识:
更多wap疑问解答:
新人求助QPainter
为什么程序都退出了还可以收到推送?如果大多设备都可以推送那运营商怎么办?
qt 4.7 sqlserver2000 存储过程调用
关于ANDROID4.0.1编译问题!
Android FrameBuffer读屏幕30秒后mmap失败
联通粗定位用java程序如何来请求和接受数据
为什么QT运行Android平台的程序时,mouseMoveEvent事件响应的间隔时间很长??????????
android与PC蓝牙通讯
指定大小的label 内容可变,如果内容超出label的宽度,将未能显示的部分显示在另一个label上
Android调试
android如何通过wifi连接无线打印机
运行程序,release目录下产生一个乱码文件夹
分享个某机构最新安卓资料,自己验证了
service启动不起来,掉不了service connection
求助:QT5.0 没有QPrinter吗
asp
php
Delphi
Matlab
JSP
Foxpro
JS
C/C++
C#/ASP.NET
VC++
JAVA
VB
汇编语言
html/css
CGI
XML/UML
wap
网站相关
网页素材
python
微信小程序
thinkphp
如果你遇到编程学习难题:
访问www.zzzyk.com 试试
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,