距离上次发布全Flash编程网站的Beta已经有将近两个月了。在这两个月里,我一直在努力地改进这个作品
(当然,有时我不得不暂时中止,比如说去上海比赛暂停了一个星期,期末考也有近两星期无暇顾及它等乖)
这样逐渐积累下来,这次发布的Beta已经和上次的有较大的不同,现将其进展情况摘要列出:
外观及交互功能的进展
改变了网站各页的设计,将每页都分为公用的页首和各自私有的正文页面。这种设计类似于普通网站的框架网页,但比之更为自然、随意和易于升级维护。
添加了使用方便的导航栏,以便于在各页间进行跳转,其所有数据也是用独立的xml数据文件保存,以坚持数据、功能、显示相互分离的原则。花了很大力气完成了导航栏与各页各组件的通信。
重新制作了首页页面。
在经典行程页面增加了地区选择组件。并完成了它与线路列表和行程介绍板块之间的通信。
重写了各种介绍板块动态显示的代码,使之更加简洁和高效。
修敢了旅游线路数据文件的结构,使之能保存多地区的旅游数据,并且加入对图片地址链接的信息,使得在通过文字显示每天的旅游介绍时,还可以动态显示相关的图片,并根据数据文件的记录自动加载和自动切换
。
针对上一个Beta版本的行程介绍板块在旅游天数过多时较难切换页面的问题,这个版本特地引入“切换到第一天”、“切换到最后一天”、“切换到指定的任意一天”等的控件,再加上原有的“页面标签”和“切换到前一天”、“切换到后一天”组件,相信现在进行页面跳转将是一种愉快的体验。
在机票查询页面上使用两个ComboBox(分别用于选择地区和城市)和一个DataGrid来显示航线消息。之间信息能够相互同步更新。
改写了航线数据文件的结构,将原本航线数据与显示控制信息混杂保存的方式改变为数据和显示抑制信息分别用不同的分支保存。并增加了其对显示的控制功能。同时,将所有的属性名改为英文,以保证与IE等浏览器的兼容性,进一步的扩展做准备
内部实现的技术进展
通过自写函数assert()、assertValid()和see()还有简单调试面板来使跟踪变量、查找错误提高了效率。
增加了自写的组件事件设置函数,使为组件设置响应函数变成一项简单的工作。
增加了用于追踪组件事件或调用者的信息的debug函数。
设计了onFrameManager,使用其onFrame函数可以有效地处理页面跳转时的异步问题,通过延迟一帧触发的方式来保证在调用前相关变量和组件已被正确初始化。
在各函数里大量使用自定义的断言以保证程序的健壮性和阻止数据错误传播。同时引入Alert组件,使得用户能很容易地了解到相关的错误。
为改变此前的Beta版本中对xml文件进行读取的相关代码冗长、可读性低的缺点,引入XPath类,尝试通过xml路径来查找、引用节点。
已解决的技术难题
最重要的一个是解决了MenuBar组件被点击时不发出事件的问题,通过重写其内部的实现函数来解决。
还有是在页面跳转时变量失效与函数被调用时相关变量未初始化的问题,主要通过一个Array对函数寄存和延迟一帧触发来完成。
解决了在一些情况下会导致死循环的问题。
posted on 2007-01-31 01:20
踏雪赤兔 阅读(1082)
评论(4) 编辑 收藏 引用 所属分类:
玩转编程