当前位置:学海荡舟 -> 电脑乐园 -> Java Applet实例讲解
 
变形菜单
Sorry, your browser doesn't support Java(tm).

功能简介:
此applet是一个浏览菜单:这最多可展示20个子菜单,每个菜单最多展示20个项目,但在项目展示处有物理空间的限制。

所需文件:
你必需下载以下文件,并放在你的网页目录下。
morphmenu.class
morphmenub.class
morphmenuc.class
Lware.class
anfy.class
morphmenu.jar
如果您使用了一个背景动态效果,您还必须加入各自的class文件:
mmgalaxy.class
mmblobs.class
此外,你还会用到几个GIF或JPG图形文件作转换图像或遮盖图像。

参数说明:以左面的效果为例
插入<applet>标签到您的html文件中,以将此applet加入到您的页面中,具体的代码和参数设置和说明如下。


HTML代码
代码解释和说明
<applet archive="morphmenu.jar" code="morphmenu.class" width="160" height="140"> 设定java小程序的源代码为同一目录下的morphmenu.class,宽和高分别为160和140。另外,设置archive="morphmenu.jar"参数可以在最新的浏览器中加快载入速度。
<param name="credits" value="Applet by Fabio Ciucci (www.anfyteam.com)"> 这是此java小程序的作者Fabio Ciucci设定的参数,你不可以改动此参数的值,否则将导致此java小程序不可用。
<param name="overimg" value="NO">
<param name="overimgX" value="0">
<param name="overimgY" value="50">
您可以使用“overimg”参数指定描画在此applet上的图像。使用偏移量"overimgX"及"overimgY"参数,您可以将此图像放在applet区域内任何位置。
<param name="MenuText00" value="Java applet">
<param name="MenuLink00" value="1">
<param name="MenuText10" value="<---">
<param name="MenuLink10" value="0">
<param name="MenuText11" value="文字特效">
<param name="MenuLink11" value="2">
<param name="MenuText20" value="<---">
<param name="MenuLink20" value="1">
<param name="MenuText21" value="简单文字滚动">
<param name="MenuUrl21" value="../txtscroll/txtscroll.htm">
<param name="MenuTarget21" value="_blank">
<param name="MenuText22" value="固定文字滚动">
<param name="MenuUrl22" value="../solidscr/solidscr.htm">
<param name="MenuTarget22" value="_blank">
<param name="MenuText12" value="图片特效">
<param name="MenuLink12" value="3">
<param name="MenuText30" value="<---">
<param name="MenuLink30" value="1">
<param name="MenuText31" value="书本翻页">
<param name="MenuUrl31" value="../bookflip/bookflip.htm">
<param name="MenuTarget31" value="_blank">
<param name="MenuText32" value="淡出淡入">
<param name="MenuUrl32" value="../cfade/anfade.htm">
<param name="MenuTarget32" value="_blank">
<param name="MenuText33" value="马赛克">
<param name="MenuUrl33" value="../mosaic/mosaic.htm">
<param name="MenuTarget33" value="_blank">
<param name="MenuText13" value="链接菜单">
<param name="MenuLink13" value="4">
<param name="MenuText40" value="<---">
<param name="MenuLink40" value="1">
<param name="MenuText41" value="立体菜单">
<param name="MenuUrl41" value="../cubemenu/cubemenu.htm">
<param name="MenuTarget41" value="_blank">
<param name="MenuText42" value="目录树菜单">
<param name="MenuUrl42" value="../treemenu/treemenu.htm">
<param name="MenuTarget42" value="_blank">

菜单设置:
此applet可最多展示20个子菜单,在每个菜单内可展示任意数量的项目,唯一的限制展示项目的物理空间。 每个项目由一个菜单识别码和一个项目识别码所定义。 例如,00表示菜单为0,项目为0;10表示菜单为1,项目为0;22表示菜单为2,项目为2,以此类推。 如果您需要10个以上的菜单或项目,可使用字符代替数字,例如,0a表示菜单为0,项目为10;ja表示菜单为19,项目为10。此运算法从0开始,因此最大菜单为字母J。 请注解您限制的20个菜单和每个菜单的20个项目(因为项目/菜单识别可於0..9/ a..j的范围内变化)。
每个项目应有一个文字标签"MenuTextXY"和一个链接选项"MenuLinXY"或"MenuUrlXY"。(X用来标示菜单,Y用来标示项目)
文字标签:
文字标签的值可以包含数字或特殊字符,他表示这个链接的名字,和目录名或文件名的作用类似。
注意:如果您使用"<---"作为一个菜单项目的名称,它会被绘制成一个黑色的箭头,这种标记常用于返回上一层目录。
链接选项:
每个菜单项目可以有(或没有)一个链接。 此链接可以有2种类型:MenuLinkXY或MenuUrlXY。
当链接选项是MenuLinkXY时,表明要到下一级菜单,或返回上一级菜单。您只需指定相应的菜单标示名(0,1,2...j)即可从当前菜单转到目标菜单。例如:设置如下
<param name="MenuText00" value="Java applet">
<param name="MenuLink00" value="1">
您只要点击0菜单中0项目“java applet”,就可以到达菜单1。
注意:您必须为每个菜单指定一个“返回”项目,否则用户不能返回到上一层目录中。
当链接选项是MenuUrlXY时,您可以指定一个//或相关连接文件,程序会在您指定的框架中打开链结页。例如:设置如下
<param name="MenuText41" value="立体菜单">
<param name="MenuUrl41" value="../cubemenu/cubemenu.htm">
<param name="MenuTarget41" value="_blank">
您只要点击4菜单中1项目“立体菜单”,就会在一个新窗口中打开相应路径中的cubemenu.htm页面了。
如果没有用"MenuUrlXY"指定的目标框架,可使用"regnewframe"和 "regframename"参数指定所有"MenuUrlXY"的目标框架。

再设置菜单是一定要思路清晰,最好是先画一张菜单结构图。下图就是本例子中菜单的结构:

<param name="fontName" value="Helvetica">
<param name="font_h" value="24">
<param name="textalign" value="center">
<param name="textcolor" value="66FF66">
<param name="selectedcolor" value="FFFF00">
<param name="menu_y" value="10">

这是一组设置菜单文字的参数:
"fontName"设置字体,可用的字体有"Courier"、"Dialog"、"Helvetica"和"TimesRoman"。
"font_h"设置文字大小。
"textalign"设置文字对齐方式:"left" 、"center"和"right"。
"textcolor"设置文字颜色。
"selectedcolor"设置鼠标悬浮于文字上方时文字的颜色。
"menu_y" 设置菜单开始的Y轴偏移。
<param name="menu_fx" value="random"> 使用“菜单特效”,您可以设"menu_fx"参数值为"random",让文本随意闪烁,否则就设为"NONE"。
<param name="statusbar_y" value="2000"> 使用状态条y轴位置"statusbar_y"参数,您可以决定文本连接状态条的位置。如果您在这里输入 一个比此applet高度大的值,此文本将不会展示。
<param name="back_fx" value="mmgalaxy"> 使用背景特效"back_fx"参数,您可以选择背景效果:色彩"color"、图像"image"、动态星系"mmgalaxy"到动态水滴"mmblobs"。
<param name="mmgalaxy_fx" value="rings">
<param name="mmgalaxy_scol" value="221133">
<param name="mmgalaxy_clr" value="fire">
<param name="mmgalaxy_r" value="1">
<param name="mmgalaxy_g" value="2">
<param name="mmgalaxy_b" value="6">
<param name="mmgalaxy_filter" value="YES">
<param name="mmgalaxy_bcol" value="YES">
设置动态星系背景效果,只在"back_fx"="mmgalaxy"时生效。要使用mmgalaxy.class文件。
mmgalaxy_fx: 星系外型("rings" 或 "vortex")
mmgalaxy_scol: 随机根据色彩产生效果
mmgalaxy_clr: 背景燃烧("none","blur","fire")
mmgalaxy_r: 火焰褪色红色(0..255)
mmgalaxy_g: 火焰褪色绿色(0..255)
mmgalaxy_b: 火焰褪色蓝色(0..255)
mmgalaxy_filter: 平滑过滤("YES" 或 "NO")
mmgalaxy_bcol: 背景色彩可见("YES" 或 "NO")
本例子就是采用动态星系背景。你可以改变参数看一下不同的效果。
<param name="mmblobs_nblobs" value="8">
<param name="mmblobs_minspeed" value="15">
<param name="mmblobs_bval1" value="1080">
<param name="mmblobs_bval2" value="3400">
<param name="mmblobs_bval3" value="3600">
<param name="mmblobs_numpal" value="6">
<param name="mmblobs_sinemode" value="NO">
<param name="mmblobs_starshape" value="YES">
<param name="mmblobs_negative" value="NO">

设置动态水滴背景效果,只在"back_fx"="mmgalaxy"时生效。要使用mmblobs.class文件。
mmblobs_nblobs: 光斑数(2-8)
mmblobs_minspeed: 最小速度(1-15)
mmblobs_bval1: 水滴值1
mmblobs_bval2: 水滴值2
mmblobs_bval3: 水滴值3
mmblobs_numpal: 调色盘(1-6)
mmblobs_sinemode: 正弦移动("YES" 或 "NO")
mmblobs_starshape: 星形("YES" 或 "NO")
mmblobs_negative: 底片色彩("YES" 或 "NO")
动态水滴背景效果。你可以改变参数看一下不同的效果。

<param name="backcolor" value="00001A"> 设置applet背景颜色,只在"back_fx"="color"时生效。
<param name="back_image" value="NO">
设置applet背景图片,只在"back_fx"="image"时生效。
<param name="floatmode" value="NO">
<param name="floatw" value="160">
<param name="floath" value="140">
<param name="floatx" value="100">
<param name="floaty" value="100">
<param name="floatitle" value="Morph Menu">
<param name="floatinfront" value="YES">

您可以选择“浮动窗口”模式,这个变形菜单applet将会出现在浮动外部窗口内,并且会在web站台上为其它框架留下空间。
要使用此模式有以下步骤:
1)设定"floatmode"为"YES"。
2)设定浮动窗口的大小,用"floatw"和"floath"来确定。
3)窗口应该出现的开始X及Y位置必须用"floatx"和"floatx"参数。
注意:座标与用户荧幕解析度相关,结果会倚赖荧幕解析度而改变。
4)窗口标题必须用“浮动模式标题"参数来编写。
5)如果您希望窗口总是在顶端,可设"floatinfront"参数为"YES"。
注意:"floatinfront"选项在IE某些版本上无效果。
6)其它参数:要把applet的长和宽都换为1。"regnewframe" 参数改为"NO"。

<param name="regcode" value="*********"> 这是anfy对这个小程序作的唯一限制,你需要购买注册码以使有些功能生效,这些功能包括:当applets在线上方式時所有"link"选项有效;当applets在线上方式被按下時不会跳出信用视窗。如果你认为这个小程序值$20,你可以到anfyteam 的主页上看具体的购买方法。但是如果你的银子和我一样有限,你可以到论坛讨论解密的方法。
<param name="regnewframe" value="NO">
<param name="regframename" value="_blank">
设置点击applet打开新的URL所在的帧,如果使用"_self"可以把"regnewframe"设成"NO",在这里由于点击applet不打开新的URL,因此这组参数无效。
<param name="memdelay" value="15">
<param name="priority" value="1">
<param name="MinSYNC" value="30">
这些选项为高级用户而准备,允许你设置内存延迟,任务优先和最小同步值。
如果你为兼容性考虑可以使用15、1、30,要是你以速度优先,可以选择1000、6、2。
Sorry, your browser doesn't support Java(tm). </applet>

对不支持Java的浏览器的显示提示信息。
applet标签结束。

作者:Fabio Ciucci