所以强类型是指你如何实例化变量。
显然,这不是强类型的:
var _somevar = new VarClass();
但是在flash中你可以这样做:
private var _guy:Sprite;
...
var _varClass:Class = getDefinitionByName("VarSymbol") as Class;
_guy = new _varClass();
或者如果你说:
,它只被认为是强类型的private var _guy:VarClass;
我也知道在Flex中你几乎总是将类型声明为类的名称。那么Flex使用强类型变量而Flash不是吗?
答案 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开发视为一种强类型语言。它们在所有变量上声明类型,而数组不混合不同类型的值。
这有帮助吗?