[这个贴子最后由zrong在 2004/02/16 00:29am 第 1 次编辑]
[b]4.5.2消除BUG[/b]
这个留言簿到这里应该就算完成了。虽然在本机调试成功,但是如果将其在互联网上使用,则会发现在添加新留言后,虽然数据已经加入数据库中了,但是浏览器怎么都不给刷新数据。除非重启浏览器。
要解决这个问题,需要改动两个地方。
①打开read.asp,找到277行和288行中反白的代码,这两处原来为“&”符号,将它们改为“$”符号。如图73所示。

②改变读取数据的影片剪辑的第一帧中的代码为如下所示:
stop();
//定义一个loadVars对象
load_var = new LoadVars();
load_var.load("http://localhost/flashbook/read.asp");
load_var.onLoad = function() {
logs = load_var.logs;
gotoAndStop("show");
};
function gotoPage(URL) {
[color=red]gotoNum = URL.slice(URL.lastIndexOf("=")+1);
URL = "/flashbook/read.asp?r="+random(8888)+"&"+"offset="+gotoNum;[/color]
load_var.load("http://localhost"+URL);
gotoAndStop(2);
}
注意,其他的没有改动,仅仅加入了两行代码(红色所示)。必须要加入一个随机数,让浏览器认为每次读取的是不同的网页。在本例中的随机数就是利用random(8888)产生的。由于加入了两个查询字符串——随机数r和翻页用的offset,我们的read.asp会自动将它们使用“&”符号连接(例如gotoPage函数中的URL变量的值可能是“/flashbook/read.asp?r=935&offset=5”),而Flash却认为使用“&”符号连接的两个值是两个单独的变量,所以在读取load_var中的prevURL或nextURL变量的时候不会读取后面的offset的值,例如上面的例子会读取为“/flashbook/reead.asp?r=935”,这不可能实现翻页。因此在上面第①步中将“&”符号替换成了“$”符号,是Flash能够将变量读取完整,然会再利用[color=red]URL.slice(URL.lastIndexOf("=")+1[/color]这句取出offset的值,利用[color=red]"/flashbook/read.asp?r="+random(8888)+"&"+"offset="+gotoNum[/color]重新打造要载入的URL。
此教程全部完成后的例子在这里下载:
[url]http://www.caispace.com/flashbook2/flashbook_local.rar[/url]
此留言簿的最终效果:
[url]http://www.caispace.com/flashbook2/[/url]
[size=6][b]全文完!![/b][/size]