|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Flash动画制作软件是一款可以帮助设计者制作和设计动画Flash介绍、Flash标识、Flash广告、Flash弹出菜单以及任何其它Flash动画的Flash文本效果工具。
英文原文:《TipsforlearningActionScript3.0》
原文地点:http://www.adobe.com/devnet/actionscript/articles/actionscript_tips.html
译者:Dreamer。
进修ActionScipt的一些提醒
ActionScript3.0是一种壮大的面向工具言语,它为FlashPlayer刻画了一种新的编程模子。假如你已对ActionScript1.0或2.0很熟习,那末当你利用ActionScript3.0开辟你的第一个使用程序的时分必要晓得一些言语不同。
注:更多材料,请参考Flex2.0LanguageReference中ActionScript2.0和ActionScript3.0之间的分歧点的列表。
为了匡助人人更简单地过渡到ActionScript3.0,我编纂了上面的列表,个中包含技能和你大概在开辟中会碰到的广泛的成绩。
•为一切变量,参数和前往值声明范例。为一切变量,参数和前往值声明范例不是必需的,可是它被以为是最好的习气。它将会匡助编译器给你更多地有效的毛病信息。它还会加强运转时的功能,由于假造机将会以为你事前晓得你所做的事情。实践上,它是云云主要以是假如你没有声明我们会给出一个告诫。
•注重如今没有会见体例的声明都默许是internal体例,而不是public。如今默许的会见体例是internal而不是public,这就是说这个声明只对含有这个声明的包可见,而不是对一切代码都可见。这一点和别的一些言语相分歧,好比JAVA。由于ActionScript2.0的声明默许为是public,这个变更将极可能形成广泛的毛病,以是请老是在声明后面加上会见体例,让你的企图加倍分明。为了勉励这个好习气,ActionScript3.0编译器将在没有会见体例声明的时分给出一个告诫。
•注重类都是默许为封装(sealed)的,也就是说不克不及在运转时静态地增加属性。如今类能够是静态的(dynamic)大概封装的(sealed)。静态(dynamic)类能够在运转时增加静态属性;封装(sealed)类不可。由于不必要外部哈希表来保留静态的属性,封装(sealed)类占用内存少,并且编译器能够对它供应更好的毛病反应。ClassFoo这类声明就是封装(sealed)的。要声明一个静态(dynamic)类,就利用dynamic关头字——好比,dynamicclassFoo。
•利用包(package)声明把一个类放到一个包(package)内里。Package是ActionScript3.0中一个新的关头字。
ActionScript2.0代码:
classmx.controls.Button{…}
ActionScript3.0代码:
packagemx.controls{classButton{..}}
在ActionScript2.0中,一个public类必需放在一个文件名和类名不异的文件中。多个类大概在统一个文件中声明,可是只要一个类多是public,而且这个类的名字必需和文件名字不异。
•导进类,即便对这个类的援用都是完整正当的。要利用MyPackage.MyClass类,你必需导进它:
importMyPackage.MyClass;
你必需如许做既是一切的援用都是完整正当的,而且要利用完全的名字MyPackage.MyClass。在ActionScript3.0中,import语句标明你想要利用一个来自别的一个包中的类,而在ActionScript2.0中,它只是用来匡助影象类名。在ActionScript3.0中,完全的类名只是用来打消歧义,而不再是import语句的替换品。
也能够利用*通配符来导进一个包中的一切类。
importMyPackage.*;
单个地导进类被以为是一个好习气,由于如许更明白地标明了你的代码利用了哪个类。
•一直标志办法的覆写。Override关头字能够匡助制止覆写办法经常见的毛病,好比对一个被覆写得办法界说了毛病的名字大概被覆写的办法的名字改动招致的毛病。如许做会使包括有覆写办法的代码看起来更明晰。由于编译器可以晓得一个办法是不是试图覆写别的一个,它就可以实行更好的反省。ActionScript3.0中的override关头字是从C#的override关头字中取得的灵感。
•在函数中界说前往范例。为一个函数界说前往范例是一个好习气。假如你疏忽了前往范例,会呈现一个告诫。这是为了范例的平安性,如许一来你就不会偶然中没有写前往范例而失掉默许的Object前往范例。假如一个函数没有前往任何值,将它的前往范例声明为void。
•注重,delegate如今被界说到了言语里,使得事务分拨更复杂。在ActionScript2.0中,把事务指向到一个办法必要利用mx.utils.Delegate类大概其他的事情:
importmx.utils.Delegate;
myButton.addEventListener(”click”,Delegate.create(this,onClick));
在ActionScript3.0中,办法的一个援用会主动记着它援用的工具实例。这被称为methodclosure。实质下去说,这就是一个主动的delegate。以是,代码能够复杂地写成:
myButton.addEventListener(”click”,onClick);
•如今排除一个null大概undefined的援用将会抛出一个非常。排除一个null大概undefine的援用在之前的ActionScript中会被疏忽而且界说援用为undefined。如今,一个TypeError非常会抛出。防备偶然中排除的null或undefined援用,而且依托这个呈报毛病的特征。这类新的抛出非常的特征与ECMAScript界说符合合。
•利用-verbose-stacktraces和-debug选项。利用命令行选项-verbose-stacktraces和-debug编译可使文件名和行号呈现在FlashPlayer的告诫框中。当一个运转时毛病产生时,一个对话框会形貌这个毛病而且列出它产生毛病的中央的挪用仓库。利用-verbose-stacktraces和-debug选项可让在源代码中定位毛病变得复杂。
•显式声明bindable属性。属性不再默许为bindable。你必需利用[Bindable]元数据标签来声明它们为bindable。
•注重FlashPlayerAPI被从头构造到了包里。之前FlashPlayerAPI中一切的类和函数都是全局的。如今有了很多包,象flash.display,flash.events,flash.ui和别的。举个例子,MovieClip如今是flash.display.MovieClip而且getTimer和setInterval都被放进了flash.utils包中。
•利用新的Timer类,而不是setInterval/setTimeout。与setInterval/setTimeout函数比拟,新的Timer类为timer事务供应了更明晰的机制。新的Timer类与setInterval办法比拟有良多上风,好比不必要处置ID数字距离,另有一个更好的,面向工具的接口。我们把利用Timer而不是利用setInterval和setTimeout看做是一个好习气。
•确认事务(event)是承继而来的。如今事务(event)是强范例的,而且必需是新的Event基类的子类。新的Event类让事务系统加倍明晰和无效。可是,这也意味着当分拨事务的时分你不克不及再利用Object类的通用实例了,而且你不克不及利用工具的笔墨简写——比方,{type:‘customEvent’}。
你如今必要利用Event类(比方,dispatchEvent(newEvent(’myCustomEventType’))),而不是创立一个通用的Object类。假如你想要传送附加的属性就必要从Event承继。不利用Object的念头是为了取得更高的范例平安性和效力。
•注重可视的元素必需承继自DisplayObject,而且你能够像别的类一样界说它们。组件如今经由过程new静态创立而且利用addChild被增加到显现列表中。以是,不勉励利用createChild。可视化的实体,包含TextField,能够像别的工具一样实例化而且利用addChild或addChildAt复杂地增加到显现列表中。注重,这意味着一些API消散了,好比createEmptyMovieClip和createTextField。你可使用newTextField而不是利用createTextField来创立一个新的TextField。
•如今在Flash中保举利用E4X(ECMAScriptforXML)来操纵XML。E4X与之前的FlashXML类比拟十分壮大而且更好地整合进了言语中,它还供应了良多新的功能。之前的FlashXML类仍然可使用。假如你喜好用之前的XMLAPI,它就在flash.xml包中。它仍然可用只是从头定名成了XMLDocument。
•当利用E4X的时分利用toXMLString办法。toString办法没无为工具前往完全的XML标志;假如你想取得,利用toXMLString办法。toString办法为XML工具前往一个复杂的字符串。它其实不会完整将XML工具序列化。要取得XML标志,请挪用toXMLString办法。
•For……in轮回将不再列举类中声明的属性大概办法。它只列举一个工具的静态属性。ActionScript3.0特征中有一个针对工具自省的新的先辈机制,叫做describeType。在ActionScript3.0中利用它来自省工具。
•如今一个SWF文件的根工具能够是你自立选择的一个自界说类的实例。ActionScript2.0中,一个SWF文件的根工具老是MovieClip的实例。而在ActionScript3.0中,它可使Sprite的恣意子类。你能够设定一个类作为一个SWF文件的DocumentRoot。当其加载时,SWF文件会将它实例化然后将其作为本人的根工具。
出格感激我们的开辟整体为这篇文章提出倡议。这里列出的决不是细致的,可是它是一个出发点,能够匡助你打勤学习ActionScript3.0的基本。假如你熟习别的的面向工具的言语,你大概发明这些提醒只是一个温习——温习你已在别处进修到的而且能够当即在ActionScript3.0中利用的技能。
假如你对ActionScript3.0和面向工具编程是一个老手,那末这些提醒将会派得上用处。对你来讲,这就是一个复杂的能够帮你牢固常识的列表。编码兴奋!
Flash8.0是Macromedia公司在7.0版本的基础上开发的,功能更强大,易于设计。 |
|