文章较长,带有少量技术性信息,请耐心看完~~~~~~
很多画涂鸦的朋友都遇到过辛辛苦苦画了好几个小时的涂鸦保存后无法再打开的问题,那种感觉我想不用说大家也能体会到。之前有篇帖子说的是 Flash Player 9.0 与 10.0 兼容性的问题,后经过反复对比研究发现并非如此,通常只要不是用不同版本 Player 打开保存的涂鸦(比如重装系统,那涂鸦肯定是丢了)就不会出现涂鸦丢失的问题。下面进入正题:
导致涂鸦保存后读取失败主要是由两种原因造成的,一是FlashPlayer的本地数据存储安全设置,如果允许保存的数据量大小设置为很小,不足以存储涂鸦的存档文件,将会导致存档丢失。二是FlashPlayer本身的Bug导致存档文件数据错误,目前来看Adobe公司还没有解决这个Bug,现在只能借助我编写的第三方工具来修复。以上两点没看懂的话没关系,下面我将做详细解说。
一、FlashPlayer的本地存储说明。
在正式解释上述两种原因前,我先来说明一下FlashPlayer(也就是涂涂的画板)的本地存档存储相关的内容。在我们画涂鸦的过程中都会使用画板上的“保存”功能来存储当前的成果,可以看到一共有4个存档位可供选用。
每次我们点击一个存档位的时候就会把当前画板上的内容保存到这个档位。这里要强调的就是,我们保存的涂鸦数据是以文件形式存到我们本地电脑中的,我们可以在这样的路径中找到存档文件(前提是你的系统装在C盘,不在C盘的朋友请到相应的系统所在盘符下查找):
XP系统:C:\Documents and Settings\<你的用户名>\Application Data\Macromedia\Flash Player\#SharedObjects\KSMQE453\comic.qq.com\doodle\styles\swf\painter_new.swf\#TENCENT\DOODLE\SAVE
Vista系统:C:\Users\Administrator\AppData\Roaming\Macromedia\Flash Player\#SharedObjects\R3YJ8BSC\comic.qq.com\doodle\styles\swf\painter_new.swf\#TENCENT\DOODLE\SAVE
其中<你的用户名>是你正在使用的当前系统的帐户名称,而那个八位的加红字符串的文件夹名称是随机的,每个人都不一样,但通常 #SharedObjects 文件夹下只有一个这样的文件夹,还是比较好找的。
比如我当前使用的系统用户叫“蓝色幻想”,那么我在XP系统下的涂鸦存档文件就存放在:
C:\Documents and Settings\蓝色幻想\Application Data\Macromedia\Flash Player\#SharedObjects\KSMQE453\comic.qq.com\doodle\styles\swf\painter_new.swf\#TENCENT\DOODLE\SAVE,当然那个“KSMQE453”也是因人而异的。
(PS:有个快捷的办法能够快速找到“Application Data”文件夹:点击“开始”->“运行”输入"%appdata%",回车后就会直接打开到“Application Data”文件夹了,vista系统就是“AppData”文件夹,剩下的路径继续按照上面的提示自己找吧)
当你打开到“SAVE”文件夹下的时候,就会看到这样几个文件:
他们分别对应着四个存档位,INDEX_0.sol 中保存的是最上面第一个存档位中的数据,对应关系如图:
二、FlashPlayer本地存储设置
好了,刚才为什么要说那些内容呢,因为这四个文件是涉及到我们保存是否成功的关键。下面说说怎么来确定保存是否成功,以及重装系统如何恢复保存的数据。
1.当你在画板上点击一个存档位保存涂鸦的时候,会弹出一个本地存储提示对话框(不同版本Flash Player可能会有所不同),想要正确保存涂鸦的话这里一定要选择“允许”,如图:
那么怎样修改这个限制呢,可以这样:不要关闭当前的画板(当然,关了的话涂鸦就丢了),鼠标右键单击画板,在弹出菜单中选择“设置”,如图:
在弹出的设置菜单中点击下面的那个带绿色箭头的文件夹图标,即“本地存储”选项(不同版本Flash Player会有所不同)
在这里会看到一个滑杆,拖动滑杆就可以改变本地存储文件的最大限制了。可以根据涂鸦复杂程度适当设置大小。经过试验每幅涂鸦应该是在2MB-3MB之间,那么四个档位共需要8MB-12MB的空间来存储,这个可以根据上面提到的“INDEX_X.sol”文件大小来判断。这里建议设置为“无限制”。保持“不再询问”选项未被选中后点击“关闭”完成设置。这样每次点击存档位保存涂鸦的时候就都会弹出“本地存储”提醒对话框,能查看到当前可用剩余空间,如图:
2.以上设置完成后基本上就不会出现因存储空间过小而导致涂鸦丢失的情况了。下面再说说两种验证涂鸦是否保存成功的方法。前提是不要关闭画板的网页,如果你关掉了,那么谁也找不回你的涂鸦了。
第一种方法是:
保存涂鸦后马上点击画板上的“打开”按钮,看存档位上是否有刚才保存的涂鸦。比如我在保存时存在了第一个存档位上,那么马上点击“打开”按钮看看第一个存档位上是否显示刚才保存的涂鸦。如果没有显示的话,那就赶快检查一下刚才提到的存储空间的设置。
第二种方法是:
找到最上面提到的那个文件夹,看看你保存的档位对应的 INDEX_X.sol 文件大小是否正确,如果判断不出来存档文件应该是多大,那就看看存档文件的修改时间是不是刚才你保存时的时间。
如果以上都符合了,那么只要你不是因为重装系统或者切换用户的原因就不会丢失保存的涂鸦了。
3.接下来说说因为重装系统或者切换用户等原因导致存档丢失的解决办法。
首先要提醒大家的是,当你画完一幅涂鸦准备上传的时候,最好是先保存一下,然后再上传。不然因为网络等原因导致上传失败的话你就哭去吧。从最上面的存档文件保存路径可以分析出,一个存档是否能被正确读出取决于两个因素:用户名和那个随机文件夹名。当然,前提是你在同一台电脑上操作,你别指望在家画一半后拿到网吧还能读取存档接着画(不过这一点通过我的程序也能实现,接着往下看吧)。
当你保存涂鸦后,切换到别的用户名下画板自然不会在原路径中找到存档文件了,因为在新用户帐户下存档路径被指向了一个新路径,那个8位的随机字串的文件夹也可能会发生变化。如果你依然想要在新用户帐户下继续画涂鸦的话,很简单,从原保存路径中找到那几个存档文件(INDEX_X.sol)复制到新的存档路径下,画板就能够打开原存档继续画了。
还有就是Flash Player的升级与卸载可能也会导致那个八位字符串文件夹名称的改变,这样画板也会找不到存档文件的。至于重装系统的恢复,你们应该已经明白了,存档文件就是在系统盘下,如果重装系统前没有备份那几个存档文件,那么采用非覆盖式方法重装系统后存档文件必然会丢失了,神仙也找不回来。
下面举个例子:
比如我在家画了一半的涂鸦,想到网吧继续画,那么首先正确保存涂鸦,然后在我的存档路径下找到存档文件:
C:\Documents and Settings\蓝色幻想\Application Data\Macromedia\Flash Player\#SharedObjects\KSMQE453\comic.qq.com\doodle\styles\swf\painter_new.swf\#TENCENT\DOODLE\SAVE,
将几个“INDEX_x.sol”文件存到邮箱里。然后来到网吧,先在网吧打开画板,随便画点什么保存一下,顺便设置一下刚才提到的存储文件大小限制。然后在网吧的电脑中找到存档路径:
C:\Documents and Settings\XX网吧6号机\Application Data\Macromedia\Flash Player\#SharedObjects\DL3JK732\comic.qq.com\doodle\styles\swf\painter_new.swf\#TENCENT\DOODLE\SAVE,
将邮箱中保存的那几个文件下载到这个路径下,然后回到画板,点击“打开”按钮,就应该能看到之前的涂鸦存档了,剩下的步骤该怎么办,我想不用再赘述了吧。
这里要提醒的是,尽量保证家中电脑和网吧电脑中安装的Flash Player版本一致。总之不管怎样,只要能把涂鸦正确保存到“INDEX_X.sol”文件中,那么留住这些文件就是留住了涂鸦!
三、涂鸦存档损坏的解决办法
大部分情况下,当我们正常保存后,在读取存档时画板画面一闪,然后就什么也没有读出来。这说明存档的文件损坏了,关于原理的描述很复杂,在这里就不做更多说明了,大家可以下载我的程序,使用存档管理中的存档修复功能来自动修复损坏的存档。
涂涂工具集下载地址:
http://comic.qq.com/images/comic/2009/10/15/tutu.rar
感谢管理员MC以及各位在程序发布期间提供的大力支持!!
蓝色幻想 (64740950) 于 2009-10-15 13:06:03 对此贴进行了编辑
蓝色幻想 (64740950) 于 2009-10-24 13:59:32 对此贴进行了编辑
蓝色幻想 (64740950) 于 2009-11-13 22:14:23 对此贴进行了编辑



选择表情