您是否应该在代码中显式声明实例名称?

Should you explicitly declare an instance name in the code?

我是 ActionScript 新手。

当我创建一个 MovieClip 并将实例名称附加到它时,我可以通过舞台的 class 访问它。

但是,我看到一些教程明确声明了一个带有实例名称的变量。

有什么特别的原因吗?

你的post有很多困惑,所以让我为你澄清一下,也许吧。

您可以使用 new 运算符实例化(创建实例)class。是的,使用 new 运算符,如果没有强制参数,您可以省略 (),这不是错误。

new MovieClip;

您可以将该操作的结果分配给一个变量,声明为精确的变量class。

var M:MovieClip = new MovieClip;

或您实例化的class的任何超class。

var D:DisplayObject = new MovieClip;
var E:EventDispatcher = new MovieClip;

或无类型变量。

var U:* = new MovieClip;

变量类型是编译器在您使用引用的 object(不考虑实际 object 的 class)时查看的类型:

// Fine, DisplayObject.name is a valid property.
D.name = "Movie1";

// Error, EventDispatcher does not have a name property.
E.name = "Movie2";

然后。如果您要使用 getChildByName(...) 方法作为某个容器的 child 访问该实例,则设置实例名称是有意义的。或者,也许,如果您要在一个容器中放置很多不同的 children,并且您想将它们的 meta-essence 存储在它们的名称中,例如 "Enemy2" 或 "Bullet15" .

但这不是强制性的。如果您 can/want 组织您的应用程序以便所有引用都存储为变量或存储在 数组 中,则无需命名实例。