0

それぞれが異なるswcからロードされた3つの異なるオブジェクトを作成しようとしています。各 swc は同じ fl.controls.ComboBox を使用し、実行時に MovieClip から ComboBox に変換できないというエラーが表示されます。

リンク タイプでライブラリの発行設定を「外部」に変更しようとしましたが、これによりライブラリ全体をプロジェクトに含める必要があり、実行可能ファイルのサイズが大幅に増加します。

コードで競合することなく、異なる swc で fl.controls.ComboBox (またはその他の種類のコントロール) を使用する正しい方法は何ですか?

4

1 に答える 1

1

あなたの問題がわかりません。常識的な最善のケースは、単一の SWC でライブラリをアタッチするコンポーネントのみであり、プログラムでコンボ ボックスを作成するのが正常であるためです。

私はあなたが完全なソースコードを見て、.flaが明確に解決されていることを確認していますが、あなたの問題は次のように推測します.

SWCでそれぞれコンボボックスをラッピングしましたか?各個体の SWC を区別するには、コンボ ボックスから次のプロセスを参照してください。たとえば、SWC には 3 種類あります。
1 番が City Selection ComboBox、2 番が Interesting Selection ComboBox、3 番が Birthday ComboBox であるとします。CityComboBox、SelectionComboBox、BirthdayComboBox MovieClip に変換する必要があります。これは、後で使用するとクラッシュが発生しません。コードに従う必要があります。

private var comboBox0:CityComboBox;
private var comboBox1:SelectionComboBox;
private var comboBox2:BirthdayComboBox;
private var cityComboBox:ComboBox;
private var selectionComboBox:ComboBox;
private var birthdayComboBox:ComboBox;

public function Constructor()
{
   comboBox0 = new CityComboBox();
   .
   .
   .
   cityComboBox = comboBox0.getChildAt(0) as ComboBox;
}

ここに画像の説明を入力

ここに画像の説明を入力


ps

私の経験では、各クラスをマッピングする各 SWC を作成しない限り、SWC をそれぞれに分離する必要はありません。あなたの心の中で作成されたコンポーネントライブラリは整頓されており、クラッシュは存在しません。また、問題が簡単な場合、どの部分を知っていますか。DisplayObject、Naming、Linkage などのクラッシュを回避できるように、それらがすべて 1 か所にあるためです。

于 2012-08-15T00:36:33.330 に答える