返回首页

flash AS2与AS3的过渡

时间:2011-10-17 18:41来源:知行网www.zhixing123.cn 编辑:麦田守望者

ActionScript 3.0是一个相当强大的面向对象的语言。它为Flash播放平台提供了一个新的编程模型。如果你对ActionScript 1.0 或者 2.0相当熟悉,当你在设计你的第一个ActionScript3.0的flash应用程序时,你需要注意一些ActionScript3.0和先前版本上的区别。

  注意:如果你想知道得更多,请看《differences between ActionScript 2.0 and ActionScript 3.0 in the Flex 2.0 Language Reference》

  为了让你轻松地过渡到actionscript 3.0,我搜集了下面的一些小技巧和一些常见的问题,这些东西你可能会在开发中遇到的。

  声明所有的变量和常量,如果有返回值,声明它。

  声明所有的变量,常量。返回值并不是一定是需要的,不过这个被认为是最好的方法。这样做会便于编译器在编译的时候给出更有用的错误信息。因为虚拟机预先知道了你操作对象的类型,所以你的Flash应用程序的运行效率会有相当的提高。由于这样做相当的重要,如果没有声明变量的话,Flash编译器会自动给出一个警告。

  如果没有声明访问类型,那么它被默认为internal,而不再是public。

  如果没有声明访问类型的话,AS3中标识符internal代替了public,这样意味着有访问类型的声明仅仅对自己所处于的package可见,而不是对所有代码可见。这样子做是为了和java等等的语言一致。因为Actionscript 2.0对没有访问类型的声明默认为public,AS3改变了这样的定义,所以在编写程序中不声明访问类型可能会导致一些问题。因此,为了让看你的让人知道你在想什么,给你的类加一个访问类型。Flash的编译器的警告又出现啦――如果你没有指定访问类型的话。

  在flash中类是默认为静态的,因此,在运行的时候是不可能动态添加属性的。

  现在它的类既可以是动态的,也可以是静态的。动态的类在程序运行的时候可以任你添加另外的属性;静态的类就不行。静态的类保存在内存中,因为它不需要内部的hash table来保存动态的属性,编译器也可以提供更多的错误信息。例如 class Foo 是静态的。如果你想定义一个动态的类,你需要用dynamic这个关键字―― 例如: dynamic class Foo

  使用”package”这个声明来把一个类放进一个包里面。在AS3里面,这是一个新关键字

  例子:

  ActionScript 2.0 的代码:

  class mx.controls.Button { ... }

  ActionScript 3.0 的代码:

  package mx.controls { class Button { .. } }

  在AS2.0中,一个保存公有的类的文件的名字一定是要和这个类名相同的。尽管可以有几个类包含在这个文件中,但是只能有一个类是公有属性的,并且它的名字和一定要和文件名相同。

  重载一个函数的时候一定要写上 override这个关键字。

  它可以帮助你避免一些在重载一个函数时遇到的常见的问题。例如重载函数名拼写错误或者你更改了原函数的函数名。这样做除了对于分辨一个函数是否是重载函数是相当有利之外,编译器也能提供更加有效的验证。override这个关键字是受到C#关键字override启发的。

  在你的函数中定义返回类型。

  我们认为,在函数中定义返回类型是一个最好的方法。如果你忽略了返回类型,编译器会给你一个警告。为了类型安全,需要这样做。因此,假如你没有声明一个返回类型的话,它默认返回一个Object。如果一个函数没有返回任何值,要定义它的返回类型为void。
 

------分隔线----------------------------
标签(Tag):FLASH FLASH实例教程 flash技巧 flash教程
------分隔线----------------------------
推荐内容
猜你感兴趣