关于:FLASM 2006年12月24日 星期日 09:48 什么是FLASM FLASM,名字是由FLASH和ASM而来,用汇编语言来写ACTION SCRIPT,我水平有限,不能带大家入门,带大家从窗外看看吧 FLASM这个软件不能帮你写代码,也不能帮你加速你的AS,它的功能只是帮你将SWF里面的AS转换成汇编语言,然后你要做的是优化这些代码,最后交由FLASM再把他转回SWF FLASM的语法与汇编类似 什么时候适用? FLASM不是万能的。当你发现MOVIE播放速度很慢,首先要确定是由AS造成的,其次要做的是在AS的范围里面尽可能的优化你的代码。最后才是找FLASM帮忙,因为用FLASM代表更复杂的工作,代码将以倍数增大。 个人认为FLASM适合优化那些不断重复的函数例如: for(i=0; i<5000; ++i) foo(i); 那么这个foo()就有必要优化了,如果只重复50次,优化提升的那么几MS实在只是浪费生命 加密 虽然FLASM不是为加密而设计,但是因为优化后的SWF中的AS已经不是FLASH能够写出来的,所以ASV也无法查看。同时FLASM不提供反编译已经编译过的SWF这项功能,所以FLASM的加密性很好! 使用 FLASM是命令行工具,没有界面,目前只有WIN版,你需要在MSDOS方式下运行它。 前面已经提到,你需要优化的是你的函数,而不是所有的AS,所以步骤应是: 1、在FLASH里面写好自己的函数在一个新的FLA里,其他的东西写别放 2、输出成SWF 3、将SWF反编译为FLM flasm -d yours.swf 将yours.swf反编译为yours.flm 4、用文本编辑工具编辑这个FLM文件进行优化 5、编译FLM为SWF flasm -a yours.flm 将yours.flm编译重新编译为yours.swf 6、在其他MOVIE中LOAD该函数库MOVIE,调用其中的函数使用 为什么能优化 FLASH将AS转换成汇编再交给虚拟机执行的,FLASH进行汇编是很笨的,很多废代码(机器写的代码一向如此),所以我们跳过这一步,人手来指导FLASH的汇编 例如其中一个最笨的地方是FLASH虚拟机可使用四个寄存器,而FLASH汇编时只使用一个寄存器。使用寄存器比读内存是更快的。 其他 FLASM的语句是大小写敏感的 FLASH的虚拟机不能直接指向内存的地址(当然,不然你想干什么?^^!) 你真要学吗?真的要地址吗? 放到最后是让你看完我的帖,嘻嘻 如果你要学习FLASM,你需要到这先把命令看完,当然学命令另一个好方法是自己反编译自己的SWF http://www.nowrap.de/flasm.html 相关链接: flasm16win.zip