3

Actionscript 3.0 リファレンスの Loaderのドキュメントは、矛盾しているように見えます。

  • このcompleteイベントは、ファイルのダウンロードが完了したときに送出されますが、ロードされたムービー クリップのメソッドとプロパティが使用可能になる前です。

最初のポイントによると、completeイベントはファイルのダウンロードが完了したことを意味します。swfファイルをロードし、completeイベントを使用してロードされたことを通知します。しかし、状況によっては、読み込んでいるリソースを利用できないことがあります。ドキュメントのこの行は、この問題が発生した理由として非常に理にかなっており、init代わりにイベントの使用に切り替えることを計画していました。

しかし、ドキュメントには次のように書かれています。

  • ロードされた SWF ファイルのプロパティとメソッドにアクセスできるようになると、initイベントが送出されるため、ロードされた SWF ファイルの操作を開始できます。このイベントは、completeハンドラの前に送出されます。SWF ファイルのストリーミングでは、initイベントが完全なイベントよりもかなり早く発生する可能性があります。ほとんどの場合、initハンドラーを使用します。

これは、イベントがハンドラーinitの前にディスパッチされることを除いて、意味があります。completeこれは矛盾しているように見えるので、私たちには意味がありません。completeロードされたムービークリップのメソッドとプロパティが利用可能になる前にイベントがディスパッチされ、ロードされた SWF ファイルのプロパティとメソッドがアクセス可能になった後にイベントがディスパッチされる場合、イベントがイベントの前にinitどのようにディスパッチされるのでしょうか?initcomplete

これらのイベントをより頻繁に扱っており、この点に関するドキュメントを明確にすることができる人からの連絡をお待ちしています. このドキュメントとプロセスに関する具体的な質問は次のとおりです。

  • completeinitイベントの意味の違いは何ですか?
  • ここでドキュメントが「イベント」と「ハンドラ」という言葉を使用することは重要ですか? つまり、「この [ init] イベントはcompleteハンドラーの前にディスパッチされます。」これは、イベントがディスパッチさcompleteれるまでイベントの処理を保留するように指示しているのでしょうか?init

initドキュメントには、「ほとんどの場合、ハンドラーを使用する」ことも明確に記載されています。したがって、少なくとも、ソフトウェアを使用から使用に変更することを期待していcompleteますinit。特にテストでそれらが異なる順序で表示される場合は、おそらく両方を待つだけです. しかし、私はまだここで正気を探しています。うまくいけば、誰かがこれを提供できますか?

4

1 に答える 1

1

Loader の LoaderInfo オブジェクトにイベント リスナをアタッチするべきではありませんか?

Event.COMPLETE のドキュメントには次のように書かれています。

データが正常にロードされたときにディスパッチされます。つまり、すべてのコンテンツがダウンロードされ、ロードが完了するとディスパッチされます。completeイベントは、常にinitイベントの後に送出されます 。initイベントは、オブジェクトがアクセス可能になると送出されますが、コンテンツはまだダウンロード中の場合があります。

簡単な説明:

  • Event.INIT は、最初のフレームのすべての「レイヤー」(コードとアセットを含む) が読み込まれたときにディスパッチされます。

  • Event.COMPLETE は、すべてのフレームの読み込みが完了すると送出されます。

于 2013-01-22T16:52:39.630 に答える