ActionScript - 它是什么编程语言类别?

时间:2009-03-04 19:25:53

标签: actionscript

ActionScript是一种脚本语言还是像Java这样的面向对象编程语言?对维基百科的快速检查将其列在脚本语言中......

11 个答案:

答案 0 :(得分:7)

AS是ECMAScript的变体。你可以说它是JavaScript的一种方言。

因此,它已经并且一直具有OO品质。它在3.0中不比以前更“OO”,它比以前更像“java-OO like”。因为现在它包括对基于类的继承的语言支持。

当然,基于原型的继承仍然存在,它是基于类的风格的超集。

并没有任何结果使它比以前更少'脚本'。

答案 1 :(得分:3)

虽然它被称为Action“Script”,但它是一种非常类似于Java的面向对象语言。所有代码都被编译成二进制swf文件。

  • ActionScript 1 也是基于原型的OO。

  • ActionScript 2 会添加类,访问器等,但这在AS1之上是非常多的语法糖。

  • ActionScript 3 已完全重新设计,并在与旧虚拟机并行的Flash Player内部的新虚拟机(AVM2)中运行。

答案 2 :(得分:2)

它是EcmaScript的变种,所以它类似于JavaScript。

ActionScript

答案 3 :(得分:2)

这两者并不相互排斥。

后来的AS版本的结构是面向对象的,但它没有编译成本机汇编程序。它被解释为字节码。

答案 4 :(得分:2)

谁说脚本语言不能是OO?我会说它既是脚本语言又是OO。

我的意思是,例如,Python通常被称为脚本语言,可以简单地用于编写现有应用程序的脚本。它也是OO。事实上,如果有问题的软件要求您传入一个符合某个界面的对象,两者都可以合并。

答案 5 :(得分:2)

  

Java与AS3的区别是什么?

不是很多。两者都生成传递的字节码,然后通过JIT编译到目标平台上的机器代码。

虽然AS3通常被描述为属于EcmaScript系列,但它有2个共存的对象模型。一种是传统的原型方法,另一种是类似Java的方法,包括包,类和接口,子类,抽象和最终方法等。

同样,AS3可以在没有任何显式输入的情况下使用(就像javascript一样),或者它可以用于强类型,如Java。与AS2不同,给定的任何类型信息都在编译的字节码中编码,并在运行时进行验证。

请注意,默认的编译器设置会鼓励开发人员使用类似java的风格,但是没有什么不能通过一些选项修复。

基本上,ActionScript从玩具语言(参见Flash 4及以下)演变为类似javascript的语言(Flash 5和6),演变为ecmascript语言,假装是其他东西(Flash 7和8)。现在与Java和C#更为相似,而不是使用它自己的旧版本(Flash 9和10)


回到原始问题,我可以想到几乎每种脚本语言都有的两种语言特性,AS3缺乏:

  1. 直接从源运行脚本的功能。 AS3需要一个明确的编译步骤。
  2. 在运行时将字符串计算为代码片段的能力。不要在AS3中查找“eval”语句,它只是不存在。

答案 6 :(得分:1)

AS 3.0可以写成OO。以前的版本更像JavaScript和程序。

答案 7 :(得分:1)

有人将ActionScript描述为面向事件的编程语言。 AS3是一种具有OO功能的脚本语言。

答案 8 :(得分:1)

如果没有用脚本语言来定义你的意思,没人能回答这个问题。

正如拉里·沃尔在Programming is Hard, Let's Go Scripting...中所做的那样: “我认为,对于大多数人来说,脚本很像淫秽。我无法定义它,但是当我看到它时我就会知道它。” 和 “但基本上,脚本不是一个技术术语。当我们称之为脚本语言时,我们主要是做出语言和文化判断,而不是技术判断。”

答案 9 :(得分:0)

我认为这可能取决于您询问的版本。我不是一个动作脚本专家,但看起来设计师试图使它成为面向对象的语言。我认为在3.0中它们有效地使(至少部分地)跳转到面向对象的语言。

答案 10 :(得分:0)

好的感谢输入人员,最好的答案似乎是AS3既是OOP语言又是脚本语言。我想这可以追溯到脚本语言的定义 - 脚本语言编译了吗?我一直在等同于AS3和Java,因为它们都被编译为字节代码并在VM中运行,但是我从来没有听说java被称为脚本语言,我想我还是有点困惑......

我想我现在的问题是Java与AS3的不同之处?