ActionScipt技巧和开发中会遇到的问题

2019-10-08 18:56:18刘景俊

•使用新的Timer类,而不是setInterval/setTimeout。与setInterval/setTimeout函数相比,新的Timer类为timer事件提供了更清晰的机制。新的Timer类与setInterval方法相比有很多优势,比如不需要处理ID数字间隔,还有一个更好的,面向对象的接口。我们把使用Timer而不是使用setInterval和setTimeout看作是一个好习惯。
•确认事件(event)是继承而来的。现在事件(event)是强类型的,并且必须是新的Event基类的子类。新的Event类让事件体系更加清晰和有效。但是,这也意味着当分派事件的时候你不能再使用Object类的通用实例了,并且你不能使用对象的文字简写——例如,{type: ‘customEvent’ }。
你现在需要使用Event类(例如,dispatchEvent(new Event (’myCustomEventType’))),而不是创建一个通用的Object类。如果你想要传递附加的属性就需要从Event继承。不使用Object的动机是为了获得更高的类型安全性和效率。
•注意可视的元素必须继承自DisplayObject,并且你可以像其它类一样定义它们。组件现在通过new动态创建并且使用addChild被添加到显示列表中。所以,不鼓励使用createChild。可视化的实体,包括TextField,可以像其它对象一样实例化并且使用addChild或addChildAt简单地添加到显示列表中。注意,这意味着一些API消失了,比如createEmptyMovieClip 和 createTextField。你可以使用new TextField而不是使用createTextField来创建一个新的TextField。
•现在在Flash中推荐使用 E4X (ECMAScript for XML)来操作XML。E4X与以前的Flash XML类相比非常强大并且更好地整合进了语言中,它还提供了很多新的性能。以前的Flash XML类依然可以使用。如果你喜欢用以前的XML API,它就在flash.xml包中。它依然可用只是重新命名成了XMLDocument。
•当使用E4X的时候使用toXMLString方法。toString方法没有为对象返回完整的XML标记;如果你想获得,使用toXMLString方法。toString方法为XML对象返回一个简单的字符串。它并不会完全将XML对象序列化。要获得XML标记,请调用toXMLString方法。
•For……in循环将不再枚举类中声明的属性或者方法。它只枚举一个对象的动态属性。ActionScript 3.0特性中有一个针对对象自省的新的先进机制,叫做describeType。在ActionScript 3.0中使用它来自省对象。
•现在一个SWF文件的根对象可以是你自主选择的一个自定义类的实例。ActionScript 2.0中,一个SWF文件的根对象总是MovieClip的实例。而在ActionScript 3.0中,它可以使Sprite的任意子类。你可以设定一个类作为一个SWF文件的DocumentRoot。当其加载时,SWF文件会将它实例化然后将其作为自己的根对象。
特别感谢我们的开发团体为这篇文章提出建议。这里列出的决不是详尽的,但是它是一个起点,可以帮助你打好学习ActionScript 3.0的基础。如果你熟悉其它的面向对象的语言,你可能发现这些提示只是一个复习——复习你已经在别处学习到的并且可以立即在ActionScript 3.0中使用的技巧。