2011-02-03 6 views
0

swcからコンパイルされたアセットとコードを使用しようとしています。 新しいflaの中で、エクスポートするときに含めるswcを選択します。 コードのタイムラインにインスタンスを作成すると、swc内にあるアセットが表示され、同じオブジェクトのプロパティがトレースされます。 問題はムービークリップ内で同じものを実行し、アセット(movieclip)に到達できない場合でも、クラスからプロパティをトレースできます。ムービークリップ内のswcインスタンスクラス

私は作業ファイルをアップロードしました: master.flaはswcを作成するものです。 template.flaはswcをテストする場所です。

files(これはあるCS4 .FLA + .swc +の.as)

EDIT: どのように私は持っていた問題が再現する:

0.1を新しいmaster.flaを作成し、それを作りますswcをコンパイルします。

.2 master.flaタイムラインで、テキストフィールドを作成し、インスタンス名を "tfield"にしてMovieClipを作成します。

.3 TextBox.asクラスを作成し、パブリック変数 "tfield"を定義します(これは、あなたのムービー内にあるTextFieldアセットを取得します)。

.4ライブラリリンクでは、新しく作成されたMovieClipをTextBoxクラスにリンクします。

.5エクスポートすると、TextBoxクラスのインスタンスが表示されます。 SWCを使用して

0.1は、新しいFLAを作成し、タイムラインのソース

0.2オープン最初のフレームとしてmaster.swcを使用して、次のコードを記述します

var tf : TextBox = new TextBox(); 
addChild(tf) 

これは期待どおりに動作し、TextBoxのインスタンスを作成し、TextFieldが内部に表示されるはずです。

.3前のコードをコメントして、この時間をMovieClipに書き込んでタイムラインにドロップします。コードは動作しますが、 "tfield"にはアクセスできません。あなたはそれを見ることもできません。

解決法: Danielから指摘されているように、コードを含むMovieClipにリンケージIDを付けるだけです(TextBoxクラスIDを与えないで、 "lalala"のような新しいクラスを作成するようにしてください)。

ありがとうダニエル!

答えて

1

テンプレートにおけるTFへの結合IDを追加TextBox.astfield.textをトレースするときにnull参照を回避するため)にTextField初期化を追加し、ステージ上tfから別の名前を作るためにtb:TextBoxtf: TextBoxを改名

+0

ダニエルありがとうございました。それだった!私は私の質問を読んでいたので、私は自分のことをお尻のように説明しました。彼らが同じ状況にいると他の人にはもっと意味をなされることを望んで、私は質問を更新します。そして、再び、ありがとう! –

+0

メインのタイムラインに 'var b:TextBox'を追加することもできます。もう1つのことは、参照を持つ1つのmovieClipにリンケージIDを追加することです: 'var ref:TextBox'それはFlashコンパイラがクラスを作成する際に問題があるように見えます。私はフレックスコンパイラを使用するだけで、この問題は以前は見たことがありません。 – Daniel

0

fixed

+0

こんにちはwww0z0k、時間のおかげで、私は自分自身を明確に説明することができなかったと思う。この問題は、swcから取得するTextBoxオブジェクトをインスタンス化するときのテンプレートにはありません。キー変数をトレースすることができるので、クラスが実行されています。問題は、tfield TextFieldが、メインタイムラインからmovieCLip()内でインスタンス化したときに表示されないことです。うまく動作します。これは私の頭の周りに潜り込んでいます=) –

+0

@ドーム - ファイルを更新するようにお願いしますか?ステージ上のtfインスタンスの最初のフレームにTextBoxを追加しました。 – www0z0k

+0

私の不手際な説明には申し訳ありませんが、投稿を更新しました。問題がわかりやすいはずです。更新では、新しいTextFieldインスタンスを作成する場所を指定しますが、MovieClip内のインスタンスを取得する必要があります。 –

関連する問題