0

我有 2 个 swf-s,main.swfanother.swf
main.swf 将在运行时加载另一个.swf。
它们对应的类是MainAnother
他们俩import是一个共同的班级Constant

问题是:
如果我对 class 进行更改Constant,例如为 class 定义一个新常量Another,那么我肯定想编译another.swf
然后,我运行main.swf并加载another.swfConstant但未应用更改!

相反,我必须重新编译main.swf才能将更改应用于another.swf
看起来因为another.swf是由main.swf加载的,所以import也依赖于main.swf
当您首先运行main.swf时,首先Main import对类进行Constant分类,因此任何即将发生的事情都import被隐藏(或忽略?),这是真的吗?

import唯一执行一次,并由第一个播放的.swf执行吗?

.swf加载由类flash.display.Loader完成。

4

1 回答 1

1

当一个类被加载时,它的完全限定域名(pacakge name + class name)被添加到一个全局注册表中。当main.swf加载Constant类时,类被缓存。该注册表是在编译时生成的,因此main.swfContant定义会像编译时一样被缓存。

事实上,如果你改变了Constant,你只能重新编译main.swf并看到修改后的定义在another.swf.

于 2013-05-30T05:44:47.267 回答