虽然我在Flash Pro CS6中解析了一些AS3代码,但我注意到其中一个类从未被声明或实例化,但它被访问,并且与它的import语句名称相同。例如:
import records; //package file records.as
//Import instantiates records and it is usable!
records.zip = "12345";
trace (records.Zip, " ", records.Name); //this works
//I thought this was always necessary
var r : records = new records();
r.init_records();
我注意到这个变量'records'在其他几个导入的类中被大量访问,所以我想知道这是不错的做法,还是对错误开放?如果您知道其中一个,您可以指向我描述此“功能”的资源。我知道如果我想保留名为'records'的类并将其作为变量'records'访问,Flash永远不会让我声明以下内容:
var records : records = new records();
对我来说这似乎很奇怪,我希望确保代码在我进一步开发时是健壮的。
最后,似乎在系统的后面,以下代码旨在重置'records'变量:
import records; //package file records.as
var new_records : records = new records();
new_records.init_records();
导入records.as会再次重置这个自动实例化的变量吗?或者在新实例上声明并调用init_records()(在此之后从未引用,它会返回引用'records')来重置默认实例化?
答案 0 :(得分:0)
看起来某人正在使用记录类作为存储全局变量的全局对象。该类应该是一个单例,因此项目中只有一个实例,但是后来在系统中找到了一个实例化的地方,它在设计模式中是失败的。