2011-11-11 4 views
1

私はFlash Builder 4.5を使用しています。アクションスクリプトのネストされたアクションスクリプト関数を別のアクションスクリプトファイルに配置する方法は?

<fx:Script source="filename.as"/> 

filename.asは、ActionScript関数(複数可)を含んでいる:あなたは、外部の.asファイルに存在するActionScript関数を使用したい場合は.mxmlファイルでは、一つは単に.mxmlファイルに追加します。

.asプロジェクトファイルと同様のことを行う方法はありますか?つまり、私はFlash Builder 4.5で作成されたactionscriptプロジェクトを持っています(たとえば、どこにも.mxmlファイルがありません)。そして、私はネストされたactionscript関数を持っています。そのネストされたactionscript関数を外部ファイルに配置し、それを元のファイルから呼び出すにはどうすればよいですか?私の目標は、複数の他のファイルからそのネストされたactionscript関数を呼び出すことで、複数回ネストする必要はありません。

答えて

2

これを行う最も簡単な方法は、静的関数を使用する方法です。 ASクラスファイルを作成し、コンストラクタを削除します。ここであなたの関数を配置し、タイプを "public static"に設定します。ここでは単純な "攪拌ユーティリティ"クラスの例です。

package some.place.inyourapp 
{ 
    public class StringUtils 
    { 

    public static function contains(string:String, searchStr:String):Boolean 
    { 
     var regExp:RegExp = new RegExp(searchStr, "i");   
     return regExp.test(string);   
    } 
    } 
} 

今あなたが言ってどこでもあなたのアプリでクラスをインスタンス化せず、その関数を呼び出すことができます。もちろん

StringUtils.contains("this is cool","cool")

を、のStringUtilsはあるが

import some.place.inyourapp.StringUtils

+0

ありがとうジョナサン、上記の "含有"の目的は何ですか? – ggkmath

+0

これは単なる関数の例です。あなたのものは何でもかまいません。型を静的に設定する限り、オブジェクトをインスタンス化せずにどこにでもアクセスできます。 –

+0

ああ、私は "contains"はAS3のキーワードだと思ったが、今はあなたがその機能のために選んだ名前だと分かっている。愚かな私! – ggkmath

0

をインポートする必要がありますお勧めしません、include演算子を使用することができます。

... 
include "myFile.as"; 
... 
+0

はい、私は今それを見ていました。欠点は何ですか? – ggkmath

+0

@ggkmathこれはオブジェクト指向のアプローチではありません。それはあなたのコードを隠し、読んだり保守したりするのが難しくなります。 Jonathanのソリューションを使用することをお勧めします。 – yms

+0

ありがとう! – ggkmath

関連する問題