Flashプロジェクトを開発する過程で、何度も悩まされる問題を抱えています。これは次のようになります。
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at fl.containers::BaseScrollPane/fl.containers:BaseScrollPane::drawBackground()
at fl.controls::TileList/fl.controls:TileList::draw()
at fl.core::UIComponent/::callLaterDispatcher()
TypeError: Error #2007: Parameter child must be non-null.
at flash.display::DisplayObjectContainer/addChildAt()
at fl.controls::BaseButton/fl.controls:BaseButton::drawBackground()
at fl.controls::BaseButton/fl.controls:BaseButton::draw()
at fl.core::UIComponent/drawNow()
at fl.controls::ScrollBar/fl.controls:ScrollBar::draw()
at fl.core::UIComponent/::callLaterDispatcher()
さて、私の場合、このエラーは、CS4のflaのコンポーネントライブラリにコンポーネントが明示的に追加されていないときに、コードでコンポーネントを初期化することに起因します。過去に、コードでScrollPanesを動的に作成しようとしたときに、この問題が発生しました。Main.flaのライブラリにScrollPaneコンポーネントを追加することで、これを解決しました。これはしばらくの間はうまくいったようです。
現在、AstraFlashオートコンプリートボックスを使用しようとしています。適切なflaファイルをCS4にインポートし、オートコンプリートボックスをSwfに配置しました。すべてが正常に構築されますが、Swfがロードされると上記のエラーが発生します。私の考えでは、オートコンプリートボックスは、その機能の一部としてScrollPaneを作成しようとしています。わかりました。これを理解したので、ScrollPaneコンポーネントもライブラリに追加すると、同じ結果になります。
通常、エラーを取り除くまでライブラリのコンポーネント/設定をいじりますが、これに遭遇するのはうんざりで、問題を解決する正しい方法を知りたいです。だから、ここに私が持っているいくつかの質問があります:
コードでコンポーネントを作成するだけでなく、Flaのライブラリにコンポーネントを追加する必要があるのはいつですか?
コンポーネントを追加する必要があるFlasはどれですか?それを使っているのは?それともそのFlaの親全員も?
オートコンプリートコンポーネントにScrollPaneコンポーネントが必要だとします。1つのコンポーネントを追加すると、この依存関係が認識されないのはなぜですか?なぜ明示的に追加する必要があるのですか?
ライブラリにコンポーネントを追加することと、ライブラリの「コンポーネントアセット」フォルダにコンポーネントを追加することの違いは何ですか?このフォルダの目的は何ですか?
このオートコンプリートコンポーネントが機能する必要があります。AS3コードが正しく、それでも上記のエラーが発生すると仮定すると、どの設定がおそらく間違っていると思いますか?欲求不満から、開始点として、ライブラリとライブラリのコンポーネントアセットフォルダにすべての可能なコンポーネントを追加しようとしましたが、それでもエラーが発生します。
どんな助けでも大歓迎です。