网站建设  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

当前位置:首页>>网络媒体>>Flash>>正文
注:打开慢时请稍等

XML动态菜单

  日期:2007-3-29 13:08:09  来源:蓝色理想  点击:
参加讨论

在上一期的XML菜单的教程中,我们做了一个简单的纵向排列的XML文字菜单,并且在flash中附加了一个跟随鼠标的缩略图。缩略图的数据也是从XML中提取的。

在我们XML菜单教程的第二期,我们来解决另外一个问题。

我们都知道XML的方便,随意的更改,删除和添加数据。请注意,更改和删除还好,如果添加的话,这里就会有一个界面排版和用户使用的问题的。拿我们上一次的XML菜单来演示,我把我们的XML文件有添加了几十条内容,结果我们的XML菜单变成这样了:
http://www.keyframe1.com/tute/xmlMenu2/index2.htm

下面的菜单看不到了,可能很多人马上已经想到了解决这种问题的办法。对!我们要让我们的用户可以滚动浏览我们的XML菜单,就像这样:
http://www.keyframe1.com/tute/xmlMenu2/

现在你可以看到所以XML文件里的几十条记录全部在舞台上,并可以让用户来滚动浏览。无论你如何修改XML文件,永远是鼠标放在菜单顶端会停留在菜单的第一条,当鼠标滑动至菜单的底端时会停留在菜单的最后一条,无论XML文件的纪录条数,如果很短,滚动会自然不存在,如果超出规定菜单高度,就会像刚才所说的那样的规律来滚动,即便XML中有1000条记录也如此。

由于是建立在上一期教程的基础上的,一些在上一期中重复使用了的代码就不再讲解了。上一期XML菜单教程地址: XML动态菜单 (一)

第一步, 分析项目
  > 组成部分
      - XML文件;
      - FLASH源文件;
      - 缩略图JPG文件,50px X 50px 存放在 thumb文件夹;
  > 步骤
      - 要使XML菜单可以滚动,最简单的办法就是把所有装有XML菜单的影片剪辑都放在一个母影片剪辑中;
      - 计算出正确的等式;

第二步,开始建立我们需要的一些元素,并把它们摆到大概理想的位置
  > 一个放所有装有XML菜单的影片剪辑的母影片剪辑,我们叫做mcontainer 150px宽,高340px;
  > 两个上下箭头,只是为了美观;
  > 把mcontainer 影片剪辑在工作去摆到(310, 30);

第三步,actionscripting

//这次我们添加了些新的变量由于计算方便需要

var menut:Number = 30;
var menul:Number = 300;
var menub:Number = 370; //菜单底部坐标
var menuw:Number = 150; //菜单宽度
var menuh:Number = menub - menut; //菜单在舞台显示高度 (也就是遮罩高度)
var home:MovieClip = this;
var mlh:Number = 20;
var tlh:Number = 60;
var speed:Number = 2;

//关于XML的读取我们就不再解释了,请参考上一期教程。我们直接进入本期教程的核心代码:鼠标滚动计算等式:

mcontainer.onEnterFrame = function()
{
    if(_root._xmouse > menul && _root._xmouse < (menul + menuw)) //当鼠标的滑动至菜单的舞台显示区域时激活滑动代码,我们不希望鼠标在舞台上任何地方移动时菜单都在滚动
    {
        var per:Number = (_root._ymouse - menut) / menuh; //计算鼠标从菜单顶部向下滑动了多少?并处以菜单高度得出鼠标移动的百分比
        var menuth:Number = mlh * numMenu; //利用菜单文字行距和XML记录总条数算出菜单实际高度
        //滚动菜单原理是:鼠标从菜单顶部向下滑动了百分之多少,菜单就相应的向上移动自己实际高度的百分之多少,然后再加上鼠标向下移动的实际像素数。呵呵,慢慢琢磨下应该不难理解,实在是没有更简单的解释方法,本身就是那么个单纯的事情
        mcontaindy = menut - menuth * per + menuh * per;
        mcontainoldy = this._y;
        this._y += (mcontaindy - mcontainoldy) / speed;
        if(_root._ymouse < menut)mcontainer._y = menut; //如果鼠标小于菜单顶部坐标,把菜单坐标写死到顶部坐标;
        if(_root._ymouse > menub)mcontainer._y = menut - menuth + menuh; //同样如果鼠标大于菜单底部坐标,把菜单坐标写死到底部坐标;
    }
}

这个就是本期最主要的代码了,其他的相信看过上一期教程的看看源文件的注解应该可以搞明白的。

现在我们可以真正随意修改,删除,添加我们的XML文件了,我们的XML菜单都可以满足用户的正常浏览使用。试试添加它500条记录。如果你在做一个相册,里面有上百张照片,这个可以是个不错的选择,滚动的简单文字标题和缩略图,使用起来应该很友好的。

源码下载kf1_xmlMenu2.zip

下一期XML菜单教程希望尽快可以出来。 多谢阅读!

本新闻共2页,当前在第2页  1  2  


编辑:iyit.net [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:巧用Bitmap类制作按钮
下一篇:Flash破解与加密
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
FLASH与ASP通信原理入门 8 其它通讯方式 FLASH与ASP通信原理入门 7 LV与ASP综合 FLASH与ASP通信原理入门 6 LV与ASP综合
FLASH与ASP通信原理入门 5 ASP操作数据 FLASH与ASP通信原理入门 4 LV与ASP通讯 FLASH与ASP通信原理入门 3 ASP中基本的
FLASH与ASP通信原理入门 2 LV类基础讲解 FLASH与ASP通信原理入门1 LoadVars类基 Flash破解与加密 
巧用Bitmap类制作按钮 flash 360度3D虚拟实境(cubicVR)实现 Authorware中自动擦除Flash动画
养成Flash ActionScript代码编写好习惯 Flash文件的破解与加密方法探秘  学习Flash ActionScript编程的注意事项
Flash导航菜单轻松制作好帮手 Flash绘制精致矢量图:斑驳的秋天落叶 新版FlashGet新功能之BT下载抢先试用
FLASH游戏制作基础:响应键盘的四种方法 flash带进度条的Loading制作 Flash 8怎样防止抄袭的办法!!
Dreamweaver中实现flash的透明背景 Flash中利用javascript完全屏蔽右键!
最新更新 热点排行 推荐新闻
FLASH与ASP通信原理入门 8 其它通讯方
FLASH与ASP通信原理入门 7 LV与ASP综
FLASH与ASP通信原理入门 6 LV与ASP综合
FLASH与ASP通信原理入门 5 ASP操作数据
FLASH与ASP通信原理入门 4 LV与ASP通讯
FLASH与ASP通信原理入门 8 其它通讯方
FLASH与ASP通信原理入门 7 LV与ASP综
FLASH与ASP通信原理入门 6 LV与ASP综合
FLASH与ASP通信原理入门 5 ASP操作数据
FLASH与ASP通信原理入门 4 LV与ASP通讯
FLASH与ASP通信原理入门 3 ASP中基本的
FLASH与ASP通信原理入门 2 LV类基础讲
FLASH与ASP通信原理入门1 LoadVars类基
Flash破解与加密 
XML动态菜单 
Flash文件的破解与加密方法探秘 
养成Flash ActionScript代码编写好习惯
Flash纯脚本生成饼图 
flash 360度3D虚拟实境(cubicVR)实现
FLASH与ASP通信原理入门 8 其它通讯方
最新网络游戏:六款网游大作本周开启测
精典悬浮div代码,拖动 隐藏显示效果
77条Windows Vista特性总结
在ASP与ASP.NET之间共享对话状态(2)
QQ2007 Beta1(兼容 Windows Vista) 
熊猫烧香幕后黑手是流氓软件?
网络工程师教程 网络教程 网络工程师
游戏商称90%的游戏与Vista不兼容,Vis
著名的韩国素材网站 韩国素材大全
微软Vista日本遇麻烦 网银电邮无法使用
FLASH与ASP通信原理入门1 LoadVars类基
Flash破解与加密 
XML动态菜单 
巧用Bitmap类制作按钮
flash 360度3D虚拟实境(cubicVR)实现
FLASH与ASP通信原理入门1 LoadVars类基
Flash破解与加密 
XML动态菜单 
巧用Bitmap类制作按钮
flash 360度3D虚拟实境(cubicVR)实现
Flash纯脚本生成饼图 
如何用CSS定义表格与模拟表格 
div+css布局漫谈
电脑开机常见硬件故障大解析
解决了带javascript语句的链接全都打不

设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyrights © 2004-2007 iYiT.Net All Rights Reserved.
网站合作、广告联系QQ:147007642、466949678
易特网络技术 点击这里给我发消息