3

papervision シーンを含む SWF に SWF をロードしています。

私は以前にそれをやったことがありますが、問題はエラーが発生することです - 問題が実際に何であるかわかりません。

    private function downloadSWF(url:String):void
  {
   trace(url);
   var urlRequest:URLRequest = new URLRequest(url);
   var loader:Loader = new Loader(); 
   loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loaderProgressEventHandler);
   loader.load(urlRequest);
  }



 private function loaderProgressEventHandler(ev:ProgressEvent):void
  {

   loader.preloaderCircle.percent = ev.bytesLoaded / ev.bytesTotal;
  }

アプリケーションがコードを実行すると、次のエラーが表示されます。

TypeError: Error #1009: Cannot access a property or method of a null object reference.
 at com.dehash.pv3d.examples.physics::WowDemo()

読み込みがまだ完了していないのに、なぜこのメッセージが表示されるのですか?

よろしくお願いします。


編集: 空の子swfを試して、もう一方が親の何かにアクセスしようとしていたかどうかを確認してください。– ホルヘ

私はこれを行いましたが、マウスクリックリスナーを備えた単純なSWFでもエラーが発生するようです:

TypeError: Error #1009: Cannot access a property or method of a null object reference. at simple_fla::MainTimeline/frame1()

そのための私のコードは次のとおりです。

import flash.events.MouseEvent;

this.stage.addEventListener(MouseEvent.CLICK, onClick);

function onClick(ev:MouseEvent):void
{
    trace("MouseClick");
}

露骨に明らかな何かが欠けていますか??

4

3 に答える 3

3

問題は、ロードされた swf がステージに追加されずに実行を開始することです。そのstageため、そのエラーが発生します。

addedToStageEventHandler を使用した 2 番目の例はstage、オブジェクトがステージに追加された後にのみ参照されるため機能し、stagenull ではなくなります。

最初のエラーの考えられる解決策は、ローダーをステージに追加することです。そうすれば、swf がロードされて開始されるときに、すでにstage参照が設定されています。

于 2010-04-26T12:48:15.523 に答える
1

エラーがあると読み込めません。WowDemo() クラスで参照されていないオブジェクトにアクセスしています...クラスを正しくインスタンス化しましたか?

于 2010-04-25T08:52:40.633 に答える
0

これは私の子SWF内で動作するようです:

this.addEventListener(Event.ADDED_TO_STAGE, addedToStageEventHandler);

function onClick(ev:MouseEvent):void
{
    trace("MouseClick");
    var event:Event = new Event("END", true, false);
    this.dispatchEvent(event);
}

function addedToStageEventHandler(ev:Event):void
{
    this.stage.addEventListener(MouseEvent.CLICK, onClick);

}

誰もがなぜ知っていますか?

于 2010-04-25T11:05:13.210 に答える