gggds 发表于 2009-12-27 13:05:47

Fireworks 4 制作弹出菜单全过程(三)

  四、如何定制弹出菜单  很一些朋友可能对Fireworks4生成的弹出菜单不太满意,例如表格边框不能自己控制,有部分颜色也不能通过向导窗口进行设置,诸多的不满积累起来变成了对用Fireworks4制作弹出菜单这个新增行为的反感,甚至不愿意去使用它。其实我们可以通过手工修改Fireworks生成的fw_menu.js文件来对弹出菜单进行细微调整。用Fireworks4输出的弹出菜单文件的HTML文件中包含着控制菜单的fwLoadMenus()函数,该函数主要包括了我们在设置弹出菜单向导窗口中设定的一些参数,如字体、大小、链接地址等等,以及各级菜单的结构等这些前台显示的数据。   然而真正控制菜单交互性行为的是另外的一个命名为fw_menu.js文件,它被一同输出在与该HTML同级的站点文件夹中。fw_menu.js文件里面定义了一个Menu()函数,通过它与HTML文件中的fwLoadMenus()函数相互传递参数来显示我们的弹出菜单。在此函数中设定了弹出菜单的一些缺省参数,例如:如果我们不指定字体,那么最终默认显示的就是\"Arial, Helvetica, Verdana,sans-serif\"这一类型的字体;如果不定义字体大小,最终显示的就是这里指定的默认12象素大小。  然而还有些属性是我们不能在制作向导中设定的,如果您有些基本的JavaScript知识,您完全可以自己定义它们,接下来我们来介绍一下这些可定制的弹出菜单内容。   (1) 定制外观   在Dreamweaver或是其他编辑软件中打开fw_menu.js文件,在刚开始的代码中这么一段初始的定义:   function Menu(label, mw, mh, fnt, fs, fclr, fhclr, bg, bgh) (  this.version = \"990702 \";(当前弹出菜单的版本号,这是Fireworks4默认的)  this.type = \"Menu\";(菜单类型)  this.menuWidth = mw;(菜单项的宽度,如果不改变的话,默认的是从fwLoadMenus()函数中传递过来的值,当然您可以在这儿自定义菜单项的宽度)  this.menuItemHeight = mh; (菜单项的高度,如果不改变的话,默认的是从fwLoadMenus()函数中传递过来的值,当然您可以在这儿自定义菜单项的高度)  this.fontSize = fs||12;(默认的字体大小为12象素,您可以自己设置默认的值)  this.fontWeight = \"plain\";(默认的字体样式)  this.fontFamily = fnt||\"arial,helvetica,verdana,sans-serif \";(默认的字体类型,您可以改变这其中的字体)  this.fontColor = fclr||\"#000000\";(默认的字体颜色)  this.fontColorHilite = fhclr||\"#ffffff\";(默认的当鼠标移上去时高亮显示的字体颜色)  this.bgColor = \"# 555555\";(默认的表格背景颜色)  this.menuBorder = 1;(默认的外边框宽度值)  this.menuItemBorder = 1;(默认的各单元格之间的间隔值)  this.menuItemBgColor = bg||\"#cccccc\";(默认的单元格背景色)  this.menuLiteBgColor = \"#ffffff\";(表格亮边框色值)  this.menuBorderBgColor = \"#777777\";(表格外框颜色值)  this.menuHiliteBgColor = bgh||\"#000084\";(默认的当鼠标移上去时单元格背景色)  this.childMenuIcon = \"arrows.gif\";(子菜单箭头标示图片)   此部分定义了弹出菜单的一些颜色设置,当我们制作弹出菜单时,如果选择了HTML表格形式菜单,最终输出的菜单文件其实是以表格形式存在的,我们可以通过修改上面的这些值来改变表格的外观。其中有几个选项的格式如下:  ·this.fontColorHilite = fhclr||\"#ffffff\";  这表示它有一个默认值,是由fhclr变量定义的,如果您想自定义它的色彩您可以修改为: this.fontColorHilite = \"#ffffff\";   · this.menuHiliteBgColor = bgh||\"#000084\";  该参数代表的是当鼠标移上去时单元格背景色,该值有个默认值,就是您在Fireworks4的弹出菜单向导窗口中设置的Over State中的Cell的颜色值,它通过bgh变量传递值,如果您想自定义它的色彩您可以修改为:this.menuHiliteBgColor = \"#cc0000s\";  此外该fw_menu.js文件中还有如下两句代码需要引起注意:   var defaultHeight = menu.fontSize+6;(这句代码是用来控制单元格中文字的行高值)  var defaultIndent = menu.fontSize-5;(这句代码是用来控制单元格中文字的缩进值)   通过以上这些简短的介绍,我们可以看出,通过修改这个js文件,我们完全可以定制弹出菜单的外观、字体、颜色等属性。有一点需要指出 fw_menu.js文件将只被载入一次,然后浏览器将从缓存里调用它,这个23K大小的fw_menu.js文件将从浏览者进入站点后就一直放在缓存中。同理,如果我们的站点中存在多个弹出菜单,fw_menu.js也只能调用一个。  如果您对您的定制结果非常满意,并希望将您设置的弹出菜单风格设置为Fireworks弹出菜单输出的默认风格,您可以将您的这个fw_menu.js文件复制到Fireworks的\\ Configuration\\ HTML Code\\目录下,记得先将原来的文件备份一下。   (2) 定置弹出菜单的弹出速度   或许有些人会觉得在浏览器中浏览由Fireworks4生成的弹出菜单文件时,弹出菜单的显示速度并不像我们预期的那样。往往当鼠标移到弹出菜单的按钮上时,菜单的弹出速度非常快,但当鼠标离开弹出菜单按钮时,刚才触发弹出的菜单仍旧会留在原来的位置一段时间,而不像我们希望的那样能够立刻消失。其实这个问题我们依旧可以通过修改fw_menu.js文件来进行解决。在Dreamweaver 或是其他编辑器中打开该JS文件,我们找到这段代码:  setTimeout(\"fwDoHide()\", 1000)  (elapsed 五、小结  综上所述,可见Fireworks4提供了功能非常强大的定制方法来制作弹出菜单导航条,以往让网页设计师或是程序员头疼的这一部分工作如今可以通过Fireworks4来轻松地解决。不过每件事情只有通过自己亲手试验以后才会有更深一步的体会,希望这篇文章可以给您带来一个思路,一个启发,既然我们可以通过定制的js文件得到了制作弹出菜单的功能,我们也可以扩充Fireworks来实现更丰富的想法。这就是Fireworks软件的构想,即通过良好的可扩展性实现自身功能的不多扩充。
页: [1]
查看完整版本: Fireworks 4 制作弹出菜单全过程(三)