好多朋友问过这个问题,为什么director 里关于save的命令有三个,这三个到底有什么不同,我该选择哪一个来save我的文件?
其实回答这个问题还得先了解一点director的文件结构,一个director movie文件包含的主要信息是cast, 和score,cast含有所有电影所需的原始资源而score则负责控制电影的播放流程,可见cast 对文件的大小贡献最大,对movie最后的整体表现影响也非常大。 通常多媒体开发人员都会考虑电影优化的问题,例如,导入优化过的图形文件和视频文件,不过更加常见的情形是导入了很多资源,实际上并没有完全使用,还有就是导入时, 是按照开发者的需要来导入,并非是movie播放的需要,cast members在cast窗口里的位置和次序并不是呈现优化的状态。 这些都是开发者需要解决的问题。头一种情形,可以find unused members, 然后delete; 第二种情形就要用到下面的save and compact命令了。
save: 保存你所有自从上次save后的改变,改变的信息是加在原有的版本之上,换句话说,如果你一直不断的save, 文件会越来越大,即使你删除了某个cast member,然后save, 文件还是不会减小,适用于编辑状态。 我常常告诉学生,ctrl + s是世界上最便宜的保险政策,作为一个职业的开发者,每五分钟 ctrl + s一次,应该是下意识的举动。
save as: 这个大家都知道,当你新保存一个文件的时候,用save as。不过对director来说,这个命令还意味着,保存文件之前,先优化文件,例如同样是上面列举的情形,删除的cast members一定会在文件的大小上显示出来。 这个命令执行后,通常还意味着,你有了两个不同版本的movie文件。 有些情形下,director拒绝工作,save as, 再保存一次为新文件,就会为你解困。
save and compact: 这个指令和save as一样,先优化,再保存,和save as 不同的是,保存后自动删除旧文件,只留下最新的优化过的文件。对于shockwave 和 cd-rom的开发来说,这个指令的重要性是不言而喻的。publish as shockwave之前,必须执行一次save and compact。 而如果有什么意外发生,无法使用sava指令的时候,save and compact就成了不可或缺的救急措施。
最后简单的介绍一下director文件优化的次序:
首先被写入文件的是一个director文件的文件头部分,也就是说将要首先载入ram的内容是关于cast, score的纪录以及编译好的lingo script, 这些内容通常会始终保留在ram中,而且占用的内存空间很小。
接下来就是真实的媒体内容,嵌入式的媒体cast members先载入,优化时,这些members按照他们在score窗口出现的先后次序重排,尽管你在cast 窗口没有办法看到重排的次序,但当你用save as 或 save and compact 的时候,它是实实在在的发生了,也就是说score中的第一个帧所需要的所有的cast members都会先被写入文件。
最后director会检查所有还没有写入的嵌入的媒体members, 这次是按照它们在cast 窗口里的次序写入文件。 例如按钮的over 和down 状态的members, 他们通常是被lingo来调用而不是直接显示在score窗口里的。 与此类似的情形还有puppetsound所调用的声音members。
还有一个小窍门,如果你有一些cast libraries, 需要和你的项目里的多个movies都保持外部连接的方式,那你不必要每一个movie都使用sava and compact, 你可以使用菜单栏 xtras --> update movies, 选择update movies, 这好像是一个save and compact 的批处理命令。
新闻热点
疑难解答