1

所以强类型是指你如何实例化变量。

  1. 显然,这不是强类型:

    var _somevar = new VarClass();
    
  2. 但在 Flash 中,您可以执行以下操作:

    private var _guy:Sprite;
    ...
    var _varClass:Class = getDefinitionByName("VarSymbol") as Class;    
    _guy = new _varClass();
    

这第二种方法是强类型的吗?哪个性能更好?

或者如果你说它只被认为是强类型的:

private var _guy:VarClass;

我也知道在 Flex 中你几乎总是将类型声明为类的名称。那么 Flex 使用强类型变量而 Flash 不使用,这是真的吗?

4

1 回答 1

3

我也知道在 Flex 中你几乎总是将类型声明为类的名称。那么,Flex 使用强类型变量而 Flash 不使用,这是真的吗?

这对评论来说太大了。

您似乎对 Flash 和 Flex 是什么感到困惑。Flash 主要是指名为 Flash Player 的基于浏览器的运行时或名为 Flash Professional 的图形 IDE。

Flex 是正式的软件开发工具包 (SDK)。但是,Flex 一词可以用来指代 Flex 框架,它是一个 ActionScript 3 UI 框架。它也可以用来指代用于将 MXML 和 ActionScript 转换为 SWF 的 Flex 编译器。

Flash 播放器的当前语言是 ActionScript 3。

如果我理解您的问题,那么我希望 Flash Professional 和 Flash Builder 都应该对 ActionScript 3 代码应用相同的约束。

我不会认为 ActionScript 3 是一种强类型语言。充其量它是松散的类型。您分享的原始代码:

var _somevar = new VarClass();

将从 Flex 编译器发出警告。您可以像这样编写同一行:

var _somevar : * = new VarClass();

这意味着_somevar变量的类型可以是任何东西。

我期望在强类型语言中的另一个方面是您可以在数组中指定数据对象的类型。ActionScript 并不强制数组的所有元素都具有相同的数据类型。因此,我可以创建一个包含不同类型的对象、数字、布尔值和字符串的数组。

最近在 ActionScript 中引入的向量与类型化数组完全一样。

说了这么多;大多数人将 ActionScript 3 开发视为一种强类型语言。他们在所有变量上声明类型,并且数组不会混合不同类型的值。

这有帮助吗?

于 2013-08-31T17:01:08.767 回答