swcからコンパイルされたアセットとコードを使用しようとしています。新しいfla内で、エクスポート時に含めるswcを選択します。コードのタイムラインでインスタンスを作成すると、動作し、swc内にあるアセットを確認し、同じオブジェクトからプロパティをトレースできます。問題は、ムービークリップ内で同じことを行う場合にのみ、アセット(ムービークリップ)に到達できないことですが、クラスからプロパティをトレースすることはできます。
作業ファイルをアップロードしました。master.flaはswcを作成するファイルです。template.flaは、swcをテストする場所です。
ファイル(これはcs4 .fla + .swc + .asです)
編集: 私が持っていた問題を再現する方法:
.1新しいmaster.flaを作成し、swcをコンパイルします。
.2 master.flaタイムラインでテキストフィールドを作成し、それに「tfield」というインスタンス名を付けて、そこからMovieClipを作成します。
.3 TextBox.asクラスを作成し、パブリック変数「tfield」を定義します(これにより、ムービー内にあるTextFieldアセットが取得されます)。
.4ライブラリで、新しく作成されたMovieClipをTextBoxクラスにリンクします。
.5エクスポートすると、TextBoxクラスのインスタンスが表示されます。
swcの使用:
.1新しいflaを作成し、master.swcをソースとして使用するようにします
.2タイムラインの最初のフレームを開き、次のコードを記述します。
var tf : TextBox = new TextBox();
addChild(tf)
これは期待どおりに機能し、TextBoxのインスタンスを作成し、内部にTextFieldが表示されるはずです。
.3前のコードにコメントを付け、同じコードを記述しますが、今回はMovieClip内に記述し、タイムラインにドロップします。コードは機能しますが、「tfield」にはアクセスできません。また、あなたはそれを見ることができません。
解決策:ダニエルが指摘したように、コードを含むMovieClipにリンケージIDを指定するだけです(TextBoxクラスIDを指定せずに、「lalala」のような新しいクラスを作成するだけです)。
ダニエルありがとう!