当前位置:首页 > 问问

往flash中写程序为什么需要两次 为什么要在Flash中写程序两次?

1、Flash中编写程序的基本原理

在Flash中,程序的代码需要被储存到Flash Player的虚拟机中才能被执行。这个虚拟机本身是基于栈的,因此在程序编译的时候,需要将代码转化为一组可以在虚拟机上运行的指令。

由于Flash Player虚拟机的栈空间很小,只有几MB,而程序可能非常庞大,因此不能一次性将所有指令加载到虚拟机中。相反,需要将程序分成几个部分,每次只将一部分加载到虚拟机中,并执行。这就是为什么Flash程序需要进行多次编译。

2、Flash编译过程的分析

在Flash中,程序可以使用组件和库。组件是已经被编译好的代码,可以被其他程序重复使用。要使用组件,需要将组件库导入到程序中,然后将组件从库中拉到舞台上使用。

当我们写程序时,程序需要调用组件中的函数。这些函数在编译时需要被转化成指令并储存在虚拟机中。如果组件没有被加载,那么编译器就无法获得这些函数的指令。因此,如果在第一次编译中没有将所有需要使用的组件都加载到虚拟机中,那么编译器就无法将这些函数转化为指令。所以,需要进行第二次编译,将缺少的组件也加载到虚拟机中。

3、第一次与第二次编译的区别

在第一次编译中,编译器只会编译代码中的主函数,以及与主函数有直接联系的函数和变量。其他的函数和变量不会被编译,只有当它们被调用时,才会被编译。

因此,在第一次编译中,程序只会执行主函数及其直接联系的函数和变量,其他的函数和变量都不会被执行。而在第二次编译中,由于所有的函数和变量都已经被编译,因此程序可以正常执行。

4、不同版本Flash Player对编译的影响

Flash程序可以运行在不同版本的Flash Player上。但是,不同版本的Flash Player可能有不同的编译方式和不同的虚拟机。因此,在编写Flash程序时,需要考虑运行该程序的目标平台,并根据目标平台选择合适的编译器和虚拟机。

有些版本的Flash Player需要进行更多次的编译,才能确保程序可以正常运行。因此,在编写程序时,需要考虑是否需要进行多次编译,并做好相应的准备工作。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com
标签:

  • 关注微信

相关文章