学习ActionScipt的一些提示いくつかのヒントをactionscipt学習

英文原文:《Tips for learning ActionScript 3.0》英語のテキスト: "のヒントを学習、 ActionScript 3.0の"
原文地址:http://www. adobe .com/devnet/actionscript/articles/actionscript_tips.htmlオリジナルのアドレス: @です。 はAdobe 。 co.jpで/ devnet / ActionScriptの/記事/ actionscript_tips.html

译者:Dreamer。翻訳:ドリーマーです。

学习ActionScipt的一些提示いくつかのヒントをactionscipt学習

ActionScript 3.0是一种强大的面向对象语言,它为Flash Player描绘了一种新的编程模型。 ActionScript 3.0は、強力なオブジェクト指向言語は、 Flash Playerを描いて、新しいプログラミングモデルです。 如果你已经对ActionScript 1.0或2.0很熟悉,那么当你使用ActionScript 3.0开发你的第一个应用程序的时候需要知道一些语言差别。 ActionScriptの場合は1.0または2.0が非常に精通して、これを使用する場合は、 ActionScript 3.0の最初のアプリケーションの開発時にいくつかの言語の違いを知る必要があります。

注:更多资料,请参考Flex 2.0 Language ReferenceActionScript 2.0 和ActionScript 3.0之间的不同点的列表。注:詳細については、下記を参照してのFlex 2.0言語リファレンス、 ActionScript 3.0のActionScriptの2.0との間に別のポイントに表示されます。

为了帮助大家更容易地过渡到ActionScript 3.0,我编辑了下面的列表,其中包括技巧和你可能在开发中会遇到的普遍的问题。人々を支援するための移行をより簡単に、 ActionScript 3.0の、私のリストを参照の編集などのスキルとされる場合がありますの開発に遭遇する広範な問題です。

为所有变量,参数和返回值声明类型。すべての変数、パラメータおよび戻り値の型のステートメントです。 为所有变量,参数和返回值声明类型不是必须的,但是它被认为是最好的习惯。すべての変数、パラメータと返り値の型が必要なステートメントではない、それは最高の習慣と考えています。 它将会帮助编译器给你更多地有用的错误信息。を与えることは、コンパイラのヘルプを他の有用なエラーメッセージが表示されます。 它还会增强运行时的性能,因为虚拟机将会认为你事先知道你所做的工作。また、実行時のパフォーマンスを強化するため、仮想マシンは、事前に知っているあなたの仕事が終わったとお考えです。 实际上,它是如此重要所以如果你没有声明我们会给出一个警告。実際には、それは非常に重要な宣言をお持ちでない場合我々は警告を発する。

注意现在没有访问方式的声明都默认是internal方式,而不是public。はありませんに注意を払うのステートメントは、デフォルトのモードは、内部ではなく、公共します。 现在默认的访问方式是internal而不是public,这就是说这个声明只对含有这个声明的包可见,而不是对所有代码都可见。今すぐ、デフォルトのアクセスは内部ではなく、公共、それは、パッケージの唯一のステートメントを含むステートメントが、代わりに、すべてのコードが見えるようにします。 这一点和其它一些语言相一致,比如JAVA。この、およびその他の言語に沿って、 Javaなどです。 因为ActionScript2.0的声明默认为是public,这个变化将很可能造成普遍的错误,所以请总是在声明前面加上访问方式,让你的意图更加清楚。 actionscript2.0ため、声明は、デフォルトのため、国民は、この変更が考えられる原因に広範な間違いので、いつもは声明の中での訪問を控えて、他の意図を明確にしています。 为了鼓励这个好习惯,ActionScript 3.0编译器将在没有访问方式声明的时候给出一个警告。良い習慣を奨励するために、 ActionScript 3.0のコンパイラにアクセスする時間はないという警告のステートメントが与えられた。

注意类都是默认为封装(sealed)的,也就是说不能在运行时动态地添加属性。注目は、デフォルトのカテゴリは、パッケージ(密閉型) 、されていないが、実行中の動的な属性を追加します。 现在类可以是动态的(dynamic)或者封装的(sealed)。今すぐできるダイナミックタイプ(動的)パッケージまたは、 (密閉型)です。 动态(dynamic)类可以在运行时添加动态属性;封装(sealed)类不行。ダイナミック(動的)カテゴリを追加され、実行時に動的な属性;梱包(密閉型)カテゴリない。 因为不需要内部哈希表来保存动态的属性,封装(sealed)类占用内存少,而且编译器可以对它提供更好的错误反馈。内部のハッシュテーブルのためにする必要はありません動的な属性を維持するため、梱包(密閉型)カテゴリを占める少ないメモリとコンパイラ提供することのできる良いフィードバックエラーが発生します。 Class Foo这种声明就是封装(sealed)的。このステートメントは、クラスfooパッケージ(密閉型)です。 要声明一个动态(dynamic)类,就使用dynamic关键字——比如,dynamic class Foo。を宣言するにダイナミック(動的)のカテゴリーでは、動的なキーワードの使用-たとえば、動的なクラスF ooです。

使用包(package)声明把一个类放到一个包(package)里面。使用するパッケージ(パッケージ)のステートメントをカテゴリにあるパッケージ(パッケージ)の内側です。 Package是ActionScript 3.0中一个新的关键字。パッケージは、新しいActionScript 3.0は、キーワードを使用します。
ActionScript 2.0 代码: ActionScript 2.0のコード:

class mx.controls.Button { … }クラスmx.controls.button ( … )
ActionScript 3.0 代码: ActionScript 3.0のコード:

package mx.controls { class Button { .. } }パッケージmx.controls (クラスボタンをクリック(..))

在ActionScript 2.0中,一个public类必须放在一个文件名和类名相同的文件中。 ActionScript 2.0対応では、公共のカテゴリーに配置しなければなりませんは、ファイル名と同じタイプのドキュメントです。 多个类可能在同一个文件中声明,但是只有一个类可能是public,并且这个类的名字必须和文件名字相同。は、同じカテゴリーの声明を超えることがありますし、ドキュメント、 5月に1つのカテゴリにだけ公開し、このタイプの名前を文書名は同じでなければなりません。

导入类,即使对这个类的引用都是完全合法的。インポートカテゴリていなくても、このタイプのは完全に合法的な使用しています。 要使用MyPackage.MyClass类,你必须导入它: mypackage.myclassカテゴリを使用し、それをインポートする必要が:

import MyPackage.MyClass;インポートmypackage.myclass ;

你必须这样做既是所有的引用都是完全合法的,并且要使用完整的名字MyPackage.MyClass。あなたがこれを行うにはすべてが完全には、合法的な使用としてmypackage.myclass完全な名前を使用しています。 在ActionScript 3.0中,import语句表明你想要使用一个来自另外一个包中的类,而在ActionScript 2.0中,它只是用来帮助记忆类名。で、 ActionScript 3.0のには、インポートステートメントを使用する場合を示してから別の種類のパッケージを1つ、およびActionScript 2.0対応、それはヘルプにのみ使用されるメモリのクラス名を入力します。 在ActionScript 3.0中,完整的类名只是用来消除歧义,而不再是import语句的替代品。で、 ActionScript 3.0のは、完全なクラス名が使用され曖昧を排除するため、代用ではなく、ステートメントのインポートします。

也可以使用* 通配符来导入一个包中的所有类。 *することもできます。ワイルドカードを使用するパッケージのすべての種類をインポートする。

import MyPackage.*;インポートmypackage .* ;

单个地导入类被认为是一个好习惯,因为这样更明确地表明了你的代码使用了哪一个类。 1つのカテゴリーにインポートするには良い習慣と考え、それを明確に示しては、他のコードを使用するとどのカテゴリをクリックします。

始终标记方法的覆写。常に上書きしてタグのメソッドを使用します。 Override关键字可以帮助避免覆写方法时常见的错误,比如对一个被覆写得方法定义了错误的名字或者被覆写的方法的名字改变导致的错误。キーワードを上書きする方法については、ヘルプを上書きを避けるために共通のエラーなどの粘膜を書面で定義されて間違った方法やメソッドの名前を上書きするには、名前の変更は、間違っている。 这样做会使包含有覆写方法的代码看起来更清晰。このメソッドは上書きさには、コードはより明確になります。 因为编译器能够知道一个方法是否试图覆写另外一个,它就能执行更好的检查。コンパイラを知っているため、 1つの方法を試してみるのを上書きするかどうか別の、より良い実装することができます検査します。 ActionScript 3.0中的override关键字是从C#的override关键字中获得的灵感。 ActionScript 3.0のキーワードは、上書きするC #からインスピレーションを受けるのキーワードをオーバーライドします。

在函数中定义返回类型。関数の戻り値の型の定義をします。 为一个函数定义返回类型是一个好习惯。先頭が正常に機能するかを定義するの種類としては、良い習慣です。 如果你忽略了返回类型,会出现一个警告。戻り値の型は無視している場合には、警告が発生します。 这是为了类型的安全性,这样一来你就不会无意中没有写返回类型而得到默认的Object返回类型。これは安全保障を入力するのは、このように誤って表示されませんに戻すには書かされていないタイプのオブジェクトに戻るには、デフォルトのタイプです。 如果一个函数没有返回任何值,将它的返回类型声明为void。関数の場合、任意の値が返されなかった、それに復帰することをするタイプのステートメントは無効です。

注意,delegate现在被定义到了语言里,使得事件分派更简单。注意、委任することが言語で定義され、他の単純な事件に配布します。 在ActionScript 2.0中,把事件指向到一个方法需要使用mx.utils.Delegate 类或者其他的工作: ActionScript 2.0のは、この事件を指してメソッドを使用する必要がmx.utils.delegateや他の種類の仕事:

import mx.utils.Delegate;インポートmx.utils.delegate ;
myButton.addEventListener(”click”, Delegate.create(this, onClick)); mybutton.addeventlistener ( "クリックして" 、 delegate.create (これは、のonclick ) ) ;

在ActionScript 3.0中,方法的一个引用会自动记住它引用的对象实例。で、 ActionScript 3.0のは、使われている方法が自動的に記憶しておいて、ターゲットの例を挙げています。 这被称为method closure。これは閉鎖と呼ばれる方法です。 本质上来说,这就是一个自动的delegate。本質的に、これは自動で委任します。 所以,代码可以简单地写成:したがって、このコードは単純に書かれた:

myButton.addEventListener(”click”, onClick); mybutton.addeventlistener ( "クリックして" 、のonclick ) ;

现在解除一个null或者undefined的引用将会抛出一个异常。今すぐnullまたは未定義のリファレンスを解除するに出す異常される凹面のです。 解除一个null或者undefine的引用在以前的ActionScript中会被忽略并且定义引用为undefined。 nullまたは取り消しを解除する前に列記さのActionScriptの定義には無視され、定義されて使用されています。 现在,一个TypeError异常会抛出。今すぐ、異常をtypeerrorアウトがスローされます。 提防无意中解除的null或undefined引用,并且依靠这个报告错误的特性。用心は、 nullまたは未定義の引用を誤って解除し、提出した報告書を依存して、エラーが発生します。 这种新的抛出异常的特性与ECMAScript定义相符合。この新しい凹面して異例のECMAScriptの特性の整合性が定義されています。

使用-verbose-stacktraces和-debug选项。使用-冗長- s tacktracesと-デバッグオプションを選択します。 使用命令行选项-verbose-stacktraces和-debug编译可以使文件名和行号出现在Flash Player的警告框中。コマンドラインオプションを使用する-冗長- s tacktracesと-デバッグコンパイラを指定して、ファイル名と行番号で、 F l ashPl ayerの警告ボックスをオンにします。 当一个运行时错误发生时,一个对话框会描述这个错误并且列出它发生错误的地方的调用堆栈。実行時エラー時には、ダイアログが表示さプレゼントして説明してエラーが発生し、間違った場所にコールスタックです。 使用-verbose-stacktraces和-debug选项可以让在源代码中定位错误变得简单。使用する-冗長- s tacktracesと- de bugオプションを使用すると、エラーが発生ポジショニングのソースコードを簡単です。

显式声明bindable属性。Explicitステートメントを連結プロパティを表示します。 属性不再默认为bindable。デフォルトでは、もはや属性を連結します。 你必须使用[Bindable]元数据标签来声明它们为bindable。を使用する必要が[連結]メタデータラベルステートメントを連結しています。

注意Flash Player API被重新组织到了包里。に注意をFlash PlayerのAPIを袋に再結成される。 以前Flash Player API中所有的类和函数都是全局的。 Flash PlayerのAPIを前に、すべてのカテゴリーと機能は、全般的な状況です。 现在有了许多包,象flash.display, flash.events, flash.ui以及其它。今すぐ、多くのパッケージ、 flash.display 、 flash.events 、 flash.uiしている。 举个例子,MovieClip现在是flash.display.MovieClip并且getTimer 和setInterval都被放进了flash.utils 包中。たとえば、 movieclipは、今すぐflash.display.movieclipとgettimerとsetintervalが投入されたflash.utilsパッケージです。

使用新的Timer类,而不是setInterval/setTimeout。タイマの使用を新しいカテゴリーではなく、 setinterval /とsetTimeoutです。 与setInterval/setTimeout函数相比,新的Timer类为timer事件提供了更清晰的机制。とsetinterval /とsetTimeout関数と比較して、新しいカテゴリをTimerタイマーイベントを提供する明確なメカニズムです。 新的Timer类与setInterval方法相比有很多优势,比如不需要处理ID数字间隔,还有一个更好的,面向对象的接口。新しいカテゴリーと比較してsetintervalタイマメソッドには多くの利点は、 ID番号などに対処する必要はありません。間隔では、より良い、オブジェクト指向のインターフェイスです。 我们把使用Timer而不是使用setInterval和setTimeout看作是一个好习惯。私たちではなく、タイマーを使用して使用するとsetTimeout setintervalと見られて良い習慣です。

确认事件(event)是继承而来的確認して事件(イベント)は継承します。 现在事件(event)是强类型的,并且必须是新的Event基类的子类。今すぐイベント(イベント)は、タイプの強い、としなければならないような新しいイベントのサブクラスです。 新的Event类让事件体系更加清晰和有效。イベントは、新しいカテゴリーのシステムイベントをより明確にかつ効果的です。 但是,这也意味着当分派事件的时候你不能再使用Object类的通用实例了,并且你不能使用对象的文字简写——例如,{type: ‘customEvent’ }。しかし、このときに割り当てられたことも意味することができますが使用されなくなった場合に、オブジェクトの例のような汎用的な、およびテキストを使用して短縮することはできませんオブジェクト-たとえば、 (型式: ' c ustomevent' ) 。

你现在需要使用Event类(例如,dispatchEvent(new Event (’myCustomEventType’))),而不是创建一个通用的Object类。イベントのカテゴリを使用する必要が(たとえば、 dispatchevent (新しいイベント( ' mycustomeventtype '))),ではなく、汎用的なオブジェクトを作成するカテゴリをクリックします。 如果你想要传递附加的属性就需要从Event继承。追加の属性を転送する場合より、イベントの後継者が必要となります。 不使用Object的动机是为了获得更高的类型安全性和效率。オブジェクトを使用していないタイプの動機を取得するには、より高いセキュリティと効率を実現します。

注意可视的元素必须继承自DisplayObject,并且你可以像其它类一样定义它们。視覚的な要素に注意をしなければならないのdisplayobjectから継承した、とすることができますが、同じ部門でノミネートされ、他の定義します。 组件现在通过new动态创建并且使用addChild被添加到显示列表中。今すぐを通じて新しい動的にコンポーネントを作成し、使用addchildリストに追加して表示します。 所以,不鼓励使用createChild。したがって、 createchildはありませんの使用を奨励する。 可视化的实体,包括TextField,可以像其它对象一样实例化并且使用addChild或addChildAt简单地添加到显示列表中。これらの事業体の可視化などのテキストは、次のオブジェクトと同じ他の例を使用すると、単にaddchildまたはaddchildatディスプレイのリストに追加されました。 注意,这意味着一些API消失了,比如createEmptyMovieClip 和createTextField。これは、いくつかのAPIに注意して消えてしまったなど、 createemptymovieclipとcreatetextfieldです。 你可以使用new TextField而不是使用createTextField来创建一个新的TextField。することができます。 createtextfieldを使用して新しいTextFieldのではなく、新しいテキストを作成するにします。

现在在Flash中推荐使用E4X (ECMAScript for XML)来操作XML。今すぐにフラッシュ推奨のE4X ( ECMAScriptのためのXML )のXMLを操作します。 E4X与以前的Flash XML类相比非常强大并且更好地整合进了语言中,它还提供了很多新的性能。前者のE4Xフラッシュ、 XMLと比べると非常に強いと良いの言語に統合され、それは、多くの新しいプロパティを表示します。 以前的Flash XML类依然可以使用。フラッシュ使用することができますXMLの元作成カテゴリです。 如果你喜欢用以前的XML API,它就在flash.xml包中。前の場合にはXMLのAPIを使用して、それのflash.xmlパッケージです。 它依然可用只是重新命名成了XMLDocument。遺跡の名前を変更することをxmldocumentでのみご利用いただけます。

当使用E4X的时候使用toXMLString方法。のE4Xを使用してtoxmlstringときに使われている方法です。 toString方法没有为对象返回完整的XML标记;如果你想获得,使用toXMLString方法。 toStringメソッドはありませんオブジェクトを返すXMLタグをフルにアクセスしたい場合は、使用toxmlstring方法を使用します。 toString方法为XML对象返回一个简单的字符串。 toStringメソッドをXMLオブジェクトに戻るには、単純な文字列です。 它并不会完全将XML对象序列化。ことはありませんシーケンスに完全にXMLのオブジェクトを作成します。 要获得XML标记,请调用toXMLString方法。 XMLタグを取得、コールtoxmlstring方法を使用します。

For……in循环将不再枚举类中声明的属性或者方法。発行部数を… …ではない財産の宣言に列挙さ入力するか、またはメソッドを使用します。 它只枚举一个对象的动态属性。これは、動的な属性の列挙のみでの格好のターゲットにします。 ActionScript 3.0特性中有一个针对对象自省的新的先进机制,叫做describeType。 ActionScript 3.0の特徴の格好のターゲットに自己検査は、新しい高度なメカニズムと呼ばれるdescribetypeです。 在ActionScript 3.0中使用它来自省对象。 ActionScript 3.0のは、道からそのオブジェクトを使用します。

现在一个SWF文件的根对象可以是你自主选择的一个自定义类的实例。今ではSWFファイルは、ルートオブジェクトを選択することができます。独自のカスタムカテゴリの例を紹介します。 ActionScript 2.0中,一个SWF文件的根对象总是MovieClip的实例。 ActionScript 2.0のは、 SWFファイルをターゲットにするのルートを常にmovieclipの場合です。 而在ActionScript 3.0中,它可以使Sprite的任意子类。で、 ActionScript 3.0のことはスプライトに任意のサブカテゴリのです。 你可以设定一个类作为一个SWF文件的DocumentRoot。することができますクラスを設定するにはDocumentRootのSWFファイルです。 当其加载时,SWF文件会将它实例化然后将其作为自己的根对象。ときに読み込んでいます、そのドキュメントのSWFの例を入力し、として使用されることは彼らの目標のルートにします。

特别感谢我们的开发团体为这篇文章提出建议。特別のおかげで私たちの開発グループを作るための提言この記事です。 这里列出的决不是详尽的,但是它是一个起点,可以帮助你打好学习ActionScript 3.0的基础。ここに記載さはない徹底的に、それを出発点としては、ヘルプを築くことの学習の基礎を、 ActionScript 3.0の良いです。 如果你熟悉其它的面向对象的语言,你可能发现这些提示只是一个复习——复习你已经在别处学习到的并且可以立即在ActionScript 3.0中使用的技巧。精通している場合は、他のオブジェクト指向言語は、これらのヒントを見つけることがありますのみをした日-文学を学ぶ必要が別の場所での即時およびA ctionScript3 .0のスキルを使用します。

如果你对ActionScript 3.0和面向对象编程是一个新手,那么这些提示将会派得上用场。 ActionScript 3.0の場合は、オブジェクト指向のプログラミングは、初心者の場合、これらのヒントにも立たないが送信されます。 对你来说,这就是一个简单的可以帮你巩固知识的列表。ために、これは、単純な知識を統合することのリストです。 编码愉快!コーディングハッピー!



本文链接: http://www.zhuoqun.net/html/y2006/189.html 转载请注明出处,谢谢。 このリンク: http://www.zhuoqun.net/html/y2006/189.html転載をご参考までに、よろしくお願いします。

TrackBack引用地址: http://www.zhuoqun.net/html/y2006/189.html/trackback トラックバック使用される住所: http://www.zhuoqun.net/html/y2006/189.html/trackback

相关日志関連ログ


Posted in Flex , 技术 .に投稿されたフレックス、 技術です。

没有评论コメントはありません

    (Required) (必須)
    (Required, will not be published) (必要な場合は、公開されません)
    关闭 閉じる
    電源をsharethis