トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     Loaderコンポーネントの読み込み失敗の検出
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
KSK
Åê¹ÆNo.5465
投稿日時: 2004-3-24 19:03
新米
居住地: 熊本県
投稿: 11
使用環境:
Win2000,Flash2004,ActionScript2.0
Loaderコンポーネントの読み込み失敗の検出
質問です。

ActionScript2.0を使ってアプリを作成しています。
Flash2004添付のローダコンポーネントを使って、
外部のswfを読み込むような機能があるのですが、
指定URLが間違っていたなどでロードが失敗した場合、
この失敗したことを検知する方法をどなたかご存知ないでしょうか?

コンポーネントマニュアルを見たのですが、どうにもうまくいきません。.contentプロパティがundefinedかどうかで、読みこめているかどうかは取得できるのですが、読み込み中なのか読み込み失敗なのかの区別がつきませんでした。
皆さんのお知恵をお借りできませんでしょうか…。


----------------
ksk

KSK
Åê¹ÆNo.5497
投稿日時: 2004-3-25 13:14
新米
居住地: 熊本県
投稿: 11
使用環境:
Win2000,Flash2004,ActionScript2.0
Re: Loaderコンポーネントの読み込み失敗の検出
自己レスです。

どうやら上記の件は、どうやっても対応できなさそうですね。
Loaderコンポーネントのソースを調べてみたのですが、
最終的には、Flash内部の非公開APIが外部ファイルの読み込みを行っていて、そこから先はバイナリコードしかなく、それ以上手が出せませんでした。

そのため、Loaderコンポーネントとまったく同じインターフェースを持つクラスを、MovieClipLoaderクラスを利用して構築することにしました。どうもありがとうございました。


----------------
ksk

youich
Åê¹ÆNo.5503
投稿日時: 2004-3-25 14:12
職人
居住地: kobe
投稿: 349
使用環境:
Tiger
Re: Loaderコンポーネントの読み込み失敗の検出
引用:


どうやら上記の件は、どうやっても対応できなさそうですね。
Loaderコンポーネントのソースを調べてみたのですが、
最終的には、Flash内部の非公開APIが外部ファイルの読み込みを行っていて、そこから先はバイナリコードしかなく、それ以上手が出せませんでした。

Loaderコンポーネントのソースで、ちょっと見あたらなかったんですけど、非公開APIというのはloadMovieのことですか?
あと。Loaderコンポーネントは、loadする対象のgetBytesTotal();が
3回 "-1"を返したらロード失敗としてcompleteイベントを発行するようなんですが、これでは役にたちませんですか?


----------------
- yo

KSK
Åê¹ÆNo.5521
投稿日時: 2004-3-25 19:02
新米
居住地: 熊本県
投稿: 11
使用環境:
Win2000,Flash2004,ActionScript2.0
Re: Loaderコンポーネントの読み込み失敗の検出
引用:

Loaderコンポーネントのソースで、ちょっと見あたらなかったんですけど、非公開APIというのはloadMovieのことですか?

説明不足でした。すみません。
調べたところ、Loaderクラスの継承関係は、
UIObject -> UIComponent -> View -> Loader
でした。ここで、
View.createChild()という関数があるのですが、その中で利用されているloadExternal()関数のことを「非公開API」としたつもりでした。
この関数を定義しているクラスは見つからなくて、これはきっとFlash内部の低レベルAPIなのであろうと考えました。
もくろみとしては間違ったURLを指定すると、出力ウインドウに「Opening URL Error...」と表示されることから、このメッセージを出しているところを追跡して、そのメソッドをオーバライドしちゃおうという腹だったのですが、エラーメッセージはどうやらこの関数の中で出ているように思われて、それ以上の追跡を諦めたわけです。


で、結局のところ、教えていただいたヒントをもとに、試してみたところ、読み込みに失敗したときには、
Loader.ContentHolder の、getByteLoaded の戻り値が 0 であることが分かり、どうにか事なきを得ることができました。

長くなりましたが、どうもありがとうございました。助かりました。


----------------
ksk

youich
Åê¹ÆNo.5524
投稿日時: 2004-3-25 20:10
職人
居住地: kobe
投稿: 349
使用環境:
Tiger
Re: Loaderコンポーネントの読み込み失敗の検出
引用:


調べたところ、Loaderクラスの継承関係は、
UIObject -> UIComponent -> View -> Loader
でした。ここで、
View.createChild()という関数があるのですが、その中で利用されているloadExternal()関数のことを「非公開API」としたつもりでした。
この関数を定義しているクラスは見つからなくて、これはきっとFlash内部の低レベルAPIなのであろうと考えました。


これは解りにくいですよね?、MMちょっと、ひきょうです(^^

mx.core.ExternalContentクラスのloadExternalメソッドで、それを
ExternalContent#classConstructでViewのprototypeに密かにコピーしてるんです。


----------------
- yo

KSK
Åê¹ÆNo.5786
投稿日時: 2004-4-1 17:02
新米
居住地: 熊本県
投稿: 11
使用環境:
Win2000,Flash2004,ActionScript2.0
Re: Loaderコンポーネントの読み込み失敗の検出
引用:
youichさんは書きました:
これは解りにくいですよね?、MMちょっと、ひきょうです(^^

mx.core.ExternalContentクラスのloadExternalメソッドで、それを
ExternalContent#classConstructでViewのprototypeに密かにコピーしてるんです。


なるほど。そんなことができるんですね。
まったく盲点でした。
そんなのわからん…

どうもありがとうございます。
少し深淵に近づけたような気がします。


----------------
ksk

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops