2012-02-21 11 views
0

のFlash IDEでコーディングするとき、私は非常に頻繁にMovieClipクラスの専門バージョンを作成するには、次の手順を使用します。FlashBuilder編集クラス

私は、たとえば、IDEで私のオブジェクトを設計し、I 2つのボタンを追加してインスタンス名「btn1」と「btn2」を付けます。次にそれらを一緒に選択してシンボルに変換します。次に、「ActionScript用に書き出し」を選択し、クラス名を指定します。「MyClass」とします。

それから私は行くし、それのための専門MyClass.asを書き、次のように:

public class MyClass extends MovieClip{ 
    private var _button1:Button; 
    private var _button2:Button; 

    public function MyClass(){ 
     this.addEventListener(Event.ADDED_TO_STAGE, init); 
     .... 
    } 

    private function init(e:Event){ 
     _button1 = this["btn1"]; 
     _button2 = this["btn2"]; 
    } 

    ... 
} 

(PS:私はプライベート変数に値_button1と_button2を割り当てる必要がないということを知っていると代わりに直接btn1を呼び出すことができますが、私はコード内でTypesafe変数のみを使用したい)

これは、Flash IDEでうまく動作します。 MyClass()の新しいインスタンスを作成すると、シンボルを定義するときにFlash IDEに配置されたすべての要素が含まれます。これは非常に便利で簡単です。

今、私はFlashBuilderで同じことをしたいと思います。このため

私は、フラッシュIDEで以前のようにMyClassのシンボルをデザインし、それをクラス名のMyClassを与えたし、私はビルドパスにMyClass.SWCを追加するライブラリシンボルを選択して、Flash BuilderでMyClass.SWC

にエクスポート私はFlash IDEの例と同じコードでMyClass.asを記述します。しかし今回は、コードは機能しません。 on

_button1 = this["btn1"]; 

「btn1」が定義されていないというエラー#1069が表示されます。

Flash Builderを使用して開発している場合、これを正しく行うにはどうしたらいいですか?

PS:ファイルとして

感謝のためにFlashBuilderにシンボルのクラス名を設定するだけでなく、ときに私には、Flash IDEでデフォルトのパッケージを使用します!

答えて

0

あなたはあなたのアプローチを若干変更するFlash Builderに移行することをお勧めします。 swcの使用には何も問題はありませんが、アセットはコンパイル時に埋め込まれています。つまり、アセットを変更した場合には、コンパイルする必要があります。

私はmovieclipsをswfに入れて読み込み、あなたが記述する型の安全性を保つために、IMediaLibraryアプローチを使用しています。次の記事を参照してください。

Runtime Class Extraction

このようにそれを行うと、あなたはまた、他のアプリケーションと、このswfファイルを共有することができ、それはアイコンが含まれていてもよいか、あなたが好きなこと、私はあなたが非常に柔軟なアプローチを見つけることになると思います。

0

あなたはswcを使用する必要はありません(ただしできます)。 Flash BuilderとFlash IDEをプロジェクト用にうまく組み合わせる方法がありますが、正しく設定する必要があります。 フラッシュIDE - 編集 - >プレフレ - スに行き、次にactionscriptを選択します。 actionscript 3の設定をクリックし、必要なすべての.asファイルが入っているフォルダにソースパスを置きます。 次に、フラッシュビルダーでプロジェクト - >プロパティに行きます。actionscriptビルドパスをクリックし、ソースパスのタブに移動します。ここでIDEで選択したのと同じフォルダを選択します(私のフォルダはlibという名前です)。IDEに戻り、選択したフォルダに関連してドキュメントクラスを設定します。だから、あなたがlibを選択し、libの中にフォルダcom、その電話の中、そしてMainClass.asの中にIDEベースのクラスでcom.phone.MainClassと入力すれば 今度はフラッシュビルダーコードを変更し、それはあなたのために働くべきでフラッシュIDE :)

また、ここではこれがあなたの「メインパネル」のような可能性があり、あなたのライブラリーに

_phoneItselfClass = getDefinitionByName("PhoneItself") as Class; 
_phoneItself:Sprite = new _phoneItselfClass() as Sprite; 

をアイテムにアクセスするために(多分、明確に)簡単な方法があります。次に、すべてのボタンに次のようにアクセスできます。

_phoneItself ["btn1"]。addEventListener .... _phoneItself ["btn2"]。visible = true;

乾杯、 ジム