アクションスクリプト:再利用可能コードを作成する

たいシリーズのアクションを実行するためのさまざまなタイムズせずに不必要なコードを複製してから、映画にします。

  

関数を作成するそしてコール( ie 、呼び出す)それを名前でこれらの操作を実行するたびにする必要があります。

他にも1つの方法を作成する( ie 、または宣言を定義する)関数です。 ここでは、名前の関数を作成する方法:

 機能functionname ( ) ( / /ステートメントでもここに入る。  )を呼び出す( ie 、実行)という名前の関数を参照してそれを名前で、のような: 
  functionname ( ) ; 

ここでは、関数リテラルを作成する方法:

  functionname =関数( ) ( / /ステートメントでもここに入る。  ) ; 

厳密にする必要はないが、それはベストプラクティスと見なされセミコロンを含めるには、次の機能を定義する際に閉じブレースカーリーリテラルます。

文をグループ分けすることができ関数を定義する機能を実行して1回でも何回でもしたいです。 これは似たような便利なアクションを実行する必要がある場合にいろいろな時にせずに、同じコードを複数の場所に複製します。 集中してコードの機能を維持することを理解しやすいように(書くこともできますので、その後に一度の機能を使用する際の詳細を無視すること)で簡単に維持する(ことができます。 1つの場所を変更するというより、複数の場所に)します。

共通の方法を定義するには、 2つのアクションスクリプト関数:関数や関数の名前としてリテラル( a.k.a.匿名関数)します。 これらの各方法を宣言するにはそれぞれ独自の機能を使用します。

名前の関数宣言は、最も共通の選択肢(いないときは関数を定義する方法として使用される)と優位に立つには、少なくとも1つの関数リテラル:名前の関数は、全体のキーフレーム内にアクセスできる(またはonclipevent ( )または( )ハンドラ)たとえ、それらが来た後は、関数を呼び出します。

たとえば、にもかかわらず、ではありませんwritemessage ( )関数が呼び出されることを宣言した後になるまで、この関数は、まだ利用可能:

  / / writemessage ( )関数を呼び出し、これは後に、スクリプトを宣言した。  writemessage ( ) ; 
  / / writemessage宣言(定義) ( )関数の名前として機能します。  writemessageトレース機能( ) ( ( "こんにちは、友達"と述べた。 ) ; ) 
  / /前または後の機能が利用可能と宣言されています。  writemessage ( ) ; 

対照的に、関数リテラルは、行のコードからのみアクセス可能な宣言をして来た後:

  / /通訳アクションスクリプトを見つけることができませんが、この機能の名前、 / /とも何も起こらないので(それが失敗した場合、サイレント)します。  writemessage2 ( ) ; 
  / /宣言(定義) writemessage2 ( )関数として匿名関数リテラルwritemessage2 =トレース機能( ) ( ( "こんにちは、友達"と述べた。 ) ; ) ; 
  / /しかし、この関数は、後から利用できる行のコードを宣言しています。  writemessage2 ( ) ; 

しかし、機能を使用するには、いくつかの理由リテラル:

関数リテラルを割り当てることができ、グローバル変数を関数のように任意のタイムラインからアクセスすることができます。

リテラル便利な機能を提供する、コンパクトで直感的なオブジェクトのメソッドを定義する方法です。

関数リテラルのような他の変数として扱われることができ、そのことができますが、他の関数に渡されるパラメータの値を再割り当てします。

ここでは、私たちを割り当てる関数リテラルとして財産の_globalオブジェクト:

  _ global.launchbookexamples =関数( ) ( geturl ( " http://www.person13.com/ascb " 、 " _blank " ) ; ) ; \ 

したがって、任意のタイムライン上のどこからでも、機能を実行することができだけでの名前を使用しています。 たとえば、次のボタンをクリックするかもしれない、このスクリプトを添付:

  mybutton.onrelease =関数( ) ( launchbookexamples ( ) ; ) ; 

ここでは、私たちは、関数を定義する方法として、映画クリップ(どこonenterframe ( )は特別に内蔵されたムービークリップのメソッドを定義する必要があり前にも使うことができ) :

  myclip_mc.onenterframe =トレース機能( ) ( ( "をぜひご利用方法を! " ) ; ) ; 

もちろん、カスタムメソッドを定義することができただけでは、関数リテラルを割り当てることで、新しいオブジェクトの所有権:

  myclip_mc.mycustommethod =トレース機能( ) ( ( "をぜひご利用方法を! " ) ; ) ; 

注目すべきことも1つの方法を設定することができ等しい別の方法です。 この手法を割り当てることがよく使われて、同じ行動をするために2つのムービークリップのさまざまなイベントやボタンをクリックします。 匿名関数を定義することができ、それを割り当てることの1つのイベントハンドラメソッドを、そして1つのイベントハンドラを割り当てるだけで、他の方法をします。 これは、共通の例をしたいときは、同じアクションを定義するためのボタンをクリックしたときにユーザーや映画のクリップをリリースするときに、外でのリリース:

  / / onrelease ( )メソッドを定義するために、映画クリップします。  mymovieclip.onrelease =トレース機能( ) ( ( "をぜひご利用方法を! " ) ; ) ; 
  / /割り当てる同じ方法をonreleaseoutside ( )メソッドを定義されます。  mymovieclip.onreleaseoutside = mymovieclip.onrelease ; 

関数として渡されたデータすることもできます。 に合格することができ便利な機能を別の文字としての機能が必要な機能を1つの引数など、 setinterval ( )またはarray.sort ( )メソッド:

  / /間隔を設定する関数を呼び出す変数をインクリメントして、私は、および表示/ /値します。  setinterval (トレース機能( ) ( ( + +私) ; ) 、 1000 ) ; 

関数は、対象となる変数として、同じ範囲を制限します。 タイムラインの中にのみアクセス可能な関数は、タイムライン上で定義されている存在します。 タイムライン関数の名前を指定することができ、匿名の機能を割り当てられている機能や、タイムライン変数です。 また、タイムラインと呼ばれる機能のみを使用することができ、適切なパスをターゲットとします。 機能にアクセスしたときに、同じ時期から、を含める必要はありません、ターゲットのパスが、したいときに別のタイムラインからの機能にアクセスするには、必要に正しいパスを提供していることを確認しました。

  / /明示的に呼び出す関数をメインのタイムラインで定義しています。  _ root.myfunction ( ) ; 

機能が使用された場合は、同じタイムラインだけで、心配する必要はありませんスコープ問題があります。 しかし、この機能を使用する場合多くの年表を通して、 2つのソリューションは、通常、就業者:

グローバル関数の定義として機能します。 関数を作成する場合、世界的な機能は、名前をコールすることができることからでも、この映画のタイムラインを心配することなく範囲:

  _ global.myfunction =トレース機能( ) ( ( "グローバル関数は楽しい! " ) ; ) ; 

関数を定義する方法として(静的)グローバルなクラスです。 すべてのクラスが組み込まれているグローバルデフォルトでは、クラスを定義する場合は、グローバルなコンストラクタ、そして地球さえしてカスタムクラスをすることができます。 この手法は、実際には、最初の変動とは関係なく授業を提供できるという利点が組織化する方法は、お客様の関数は、潜在的に有意義な形で(例えば、内蔵された数学のクラスの多くの数学関数整理します) 。

これは、記事を追加したガブリエルサビンビ
免責事項:弊社のウェブサイト上に含まれる情報は、責任を負いませんこの記事されました。 この記事ではない方法での意見を反映して、ご意見、思想や信条の記事ディレクトリのスタッフします。

翻訳注意:記事"アクションスクリプト:コードを作成し、再利用できる"といわれて翻訳する自動翻訳サービスを使っています。 すべてのお客様にご迷惑を翻訳してエラーが発生しました。 理解していただきありがとうございました。

Online: 480 users browsing the articles directory