【问题标题】:What does "Strongly Typed" Actually Mean in Actionscript 3 for Both Flash and Flex?对于 Flash 和 Flex,Actionscript 3 中的“强类型”实际上意味着什么?
【发布时间】:2013-09-04 05:08:45
【问题描述】:

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

  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 不使用是真的吗?

【问题讨论】:

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


    【解决方案1】:

    我也知道在 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 开发视为一种强类型语言。他们在所有变量上声明类型,并且数组不会混合不同类型的值。

    这有帮助吗?

    【讨论】:

    • 我喜欢您将 2008 年的演变视为最近的事实。大多数人会认为现在 5 岁的东西是古老的。 +1 解释。
    • @Aralicia 我想时间已经离我而去。 :-) 似乎 Vectors 是最近才添加的...
    猜你喜欢
    • 2019-06-02
    • 2021-09-24
    • 2013-01-16
    • 2016-01-02
    • 2012-01-26
    • 2020-02-15
    • 1970-01-01
    • 2017-06-03
    • 1970-01-01
    相关资源
    最近更新 更多