对于Flash和Flex,Actionscript 3中的“强类型”实际意味着什么?

时间:2013-08-31 16:39:23

标签: actionscript-3 flash flex flash-builder flash-cs5

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

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

    var _somevar = new VarClass();
    
  2. 但是在flash中你可以这样做:

    private var _guy:Sprite;
    ...
    var _varClass:Class = getDefinitionByName("VarSymbol") as Class;    
    _guy = new _varClass();
    
  3. 第二种方法是强类型的吗?哪个性能更好?

    或者如果你说:

    ,它只被认为是强类型的
    private var _guy:VarClass;
    

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

1 个答案:

答案 0 :(得分:3)

  

我也知道在Flex中,你几乎总是将类型声明为   班级名称。然后,Flex使用强类型   变量和Flash没有?

这对评论来说太大了。

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

Flex正式是一个软件开发工具包(SDK)。但是,术语Flex可用于引用Flex Framework,它是一个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变量的类型可以是任何类型。

我期望在强类型语言中使用的另一个方面是您可以在Array中指定数据对象的类型。 ActionScript不强制将数组的所有元素设置为相同的数据类型。所以,我可以创建一个包含不同类型的对象,数字,布尔值和字符串的数组。

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

所有这一切;大多数人将ActionScript 3开发视为一种强类型语言。它们在所有变量上声明类型,而数组不混合不同类型的值。

这有帮助吗?