大家经过前面的学习(如果前面的内容,大家已经能完全掌所至的话),各位应该能够完成相当的大部分功能了,在此卷中将向大家演示如何制作一个多用户留言板,其功能如下:
[1]多用户支持(允许通过指定的网址直接进入指定用户的留言板)
[2]悄悄话功能支持(仅留言板主人可以看)
[3]留言删除功能(仅留方板主人可以删)
[4]新留言提示
[5]留言的分页显示(每页12个)
[6]用户密码的标准MD5加密(不过不支持中文)
[7]根据操作系统的不同,自动设置字体和字号(不过很不幸,我在调试时注释掉了两行代码,后来忘了还原,所以这条功能在演示中无效,各位拿到源码者请去掉注释标记就可以了)
[8]留言者IP,操作系统,浏览器,来源信息登记
[9]非法下载以及盗版的处理
……
由于本卷源码较长,所以不在本教程中一一列出,本卷仅向大家讲述以上功能的实现方法,以及关键技术和实例代码
首先我们来说怎样实现多用户的支持,关于多用户的支持嘛,没什么很特别的技术,写过论坛或者多用户ASP留言板的人都了解,只是有一点要说一下的,我们都知道一般来说多用户留言板的直接指定用户的方法是由ASP文件的GET参数实现的,如: “这一段,然后在SWF文件名后面加上?user=用户名,这样的话,SWF在启动时会在_root下创建这个变量,然后我们的SWF就可以明确的知道现在需要切换至谁的留言板。
接下来说关于悄悄话的实现,这个就不用多说了,在FLASH中搞一个变量来保存当前用户是否输入了有效的密码,如果是的话就允许他看所有的留言,如果不是的话就弹个消息框来让提示不允许看
接着我们来说留言删除的实现,这个很容易,向ASP发出密码,用户和当前留言的主键,然后剩下的事情全交给ASP去做吧,当然,删除之前得看看用户名和密码是否用效,不然的话,任何人都可以删留言,那可大大的不妙了~“`
新留言提示的实现,这个也很容易,在数据库中加一个字段来识别这个留言是否被点开过了就行了
留言的分页显示,这个嘛,稍稍要麻烦一点,不过,我们在前一卷,也就是第5卷的源码中已经演示了如何实现分页的问题,所以这一点也不用多说了
用户密码的MD5加密功能的实现,这个我以前也讲过了,我还在CSDN上发布过了FLASH版的MD5函数,大家请到FAQ或者精华区中找
根据操作系统的不同,自动设置字体和字号的实现方法,这个要说明一下,本来FLASH是可以直接读取操作系统版本的,但因为今年刚推出的WINDOWS 2003,所以FLASHMX中读不到WINDOWS 2003 的真实版本,所以我还是用ASP来读取的操作系统版本,然后通过建立的全局函数来为文本框赋值,同时检查字体和字号是否跟WINDOWS的默认字体和字号对应,不是的话就改掉字体和字号,不过这个我在演示的源码中注释掉了,大家拿到源码的话可以把这两行恢复出来,哦对了,说到FLASH直接读操作系统的时候,我想到了一个问题得提醒一下各位初哥,特别是还在看FLASHMX版帮助的同志请注意,帮助中有一项有点错误,大家请将帮助翻至System中的那个C什么什么对象中,就是关于获取屏幕分辨率的那两个函数,帮助上印错了,多印了一个点,应该是
System.capabilities.screenResolutionX获取分辨率X值
System.capabilities.screenResolutionY获取分辨率Y值
关于留言者IP啊什么的,这个就不用我多说了吧,随便找个版本的动网论坛看一下,就明白了
最后一个功能,就是关于怎么知道自己的FLASH有没被下载运行或者盗版运行嘛,同志们请用影片的_URL属性值……,如trace(_root._url),呵呵,明白了吧?
好了,这些功能的实现方法说完了,然后我们接着说一下相关技巧和代码规范
首先,第一点,大家请注意在面对大工程面前,请尽量双OOP方式来(噢,不明白OOP的人没关系,代码写多了,你就明白OOP是什么了,呵呵,基本常识,别跟着我问)
不过话说回来了,在FLASHMX 6中请不要完全以OOP方式来,那样运行速度太慢了,尽量不要自定义对象的属性,那样太慢了……
第二点,请大家尽量不要用UI组件,速度太慢,不过想偷懒的话嘛例外(建议大家多下载UI组件,不是下载了用,是下载了看里面的代码,增加经验)
第三点,在各位拿到源代码之前先预读一下String对象的操作,再复习一下Array对象的使用,还有[]方式的对象,变量引用技巧(不明白的人请倒回去看第5卷),如果各位对AttachMovie等语句熟悉者,请查阅相关资料
第四点,拿到源代码之后看不懂的同志,请加强一下FLASH基本语句和C语言的学习,呵呵
……
呵呵,我们现在对以上几点中的技巧进行实例说明,首先咱们来说说关于怎样在FLASH中创建对象,哦这个其实也很容易,帮助上写着有呢
对象名=new Object();
当然,我们也可以这样干 _global.对象名=new Object(); 这样的话,我们就可以在FLASH中的任何角落中直接使用对象名来引用这个Object了
接下来,大家就可以在这个Object中创建什么变量啊,数组啊,属性啊之类的(当然,并不推荐创建属性,不然的话,你的FLASH将对用户的机器运行速度来个极限考验)
然后嘛,就剩下一个比较复杂的,就是[]的引用方法,如下
trace(_root[“mov”+1][“childMo”+1][“var”+1]);
呵呵,各位语言基本功效差的同志看明白了么?这行代码是用trace弹个窗口出来(当然,如果是运行SWF的话,什么反应都没有的哦)显示_root对象中的叫做”mov”+1的对象中的”childMo”+1中的一个叫做”var”+1的变量的值,明白?这种引用方法掌握了的话,可是大大的有用哦,再如:
_root[“mov”+1][“txtCaption”+1].text=”ABC”;
呵呵,这一行是将_root对象中的”mov”+1中的”txtCaption”+1的文本域的文本设成ABC三个字母,当然,这个文本域txtCaption1要是动态或者输入文本域才行,静态文本域是不能这样干的,呵呵
好了,这一卷就说到这里了,对了代码基础较差的同志请先熟练一下代码基本功,然后再多看看前5卷,对代码较熟悉的同志只用看一下本攻略中提到的方法,呵呵,当然,对于经验丰富者,本攻略仅供参考……:)