一定期間更新がないため広告を表示しています
<< Mac & Firefox3 の問題 | main | 【FlashLite1.1】DoCoMoで100KB以上ロードする方法 >>
2014.08.06 Wednesday
一定期間更新がないため広告を表示しています
-||-|-|by スポンサードリンク
2008.06.29 Sunday
FLASH-JP|airファイルでVideoErrorが取得できない
air と書かれていますが、AS3.0 であるならば陥る問題の様です。
FLVPlayback.source プロパティに存在しない FLV 名を入れ、直ぐにplay メソッドを実行します。すると VideoError がスローされるのですが、try...catch でキャッチする事が出来ません。
まずはステージ上に FLVPlayback コンポーネントを配置してください。 ここではインスタンス名を _fp とします。
次にタイムラインに下記のコードを入力して下さい。 パブリッシュして実行結果を確認します。
VideoError: 1000: Unable to make connection to server or to find FLV on server
本来であれば、存在しない FLV を再生しようとすると VideoError が発生する為、catch 内の処理が走るはずです。しかし、何故かキャッチされずにエラー文が表示されます。
at fl.video::VideoPlayer/play()
at fl.video::FLVPlayback/http://www.adobe.com/2007/flash/flvplayback/internal::showFirstStream()
at fl.video::FLVPlayback/http://www.adobe.com/2007/flash/flvplayback/internal::handleVideoEvent()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at fl.video::VideoPlayer/http://www.adobe.com/2007/flash/flvplayback/internal::setState()
at fl.video::VideoPlayer/http://www.adobe.com/2007/flash/flvplayback/internal::httpNetStatus()
冒頭のリンク先では air と言う環境である事から、File クラスでファイルの有無を調べて処理を分岐する方法をとっています。ただこの場合だと、ブラウザに表示した Flash コンテンツでは使えません。
調べてみると、source プロパティを設定した後に少し間を空けてから play メソッドを実行すると VideoError がキャッチできる事が分かりました。
この事から何かしらのイベントがあるのではと探してみたのですが見つけられず、仕方なく別の方法を考えてみたのが下記のコードになります。
※このコードは FLASH-JP 側にも載せています。
setTimeout で try...catch 文を呼び出しているだけです。
遅延時間も 0 で問題ありません。
これで私の環境では VideoError がキャッチされました。
error!
Flash/Flex|10:25|comments(0)|trackbacks(1)|by ニノミヤ カズノリ
2014.08.06 Wednesday
-|10:25|-|-|by スポンサードリンク
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 | ||||||