0

こんにちは私はFLVPlayback2.5コンポーネントを使用していますが、このエラーが発生しました。助けてください!-fl.video:をflash.events.VideoEventに変換できません。

-を使用したas3コード

            comp.addEventListener(Event.COMPLETE, videoComplete);

            function videoComplete(event:VideoEvent):void {
                trace("videoComplete");
            }

完全なエラー-

TypeError:エラー#1034:タイプ強制に失敗しました:fl.video::VideoEvent@6e974dd1をflash.events.VideoEventに変換できません。flash.events :: EventDispatcher / dispatchEventFunction()at flash.events :: EventDispatcher / dispatchEvent()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: :httpDoStopAtEnd() at fl.video :: VideoPlayer / http://www.adobe.com/2007/flash/flvplayback/internal::httpNetStatus()

ロニーのおかげで修正!乾杯。これは私のために働きます。

            import fl.video.VideoEvent;

            comp.addEventListener(Event.COMPLETE, videoComplete);

            function videoComplete(event:Event):void {
                trace("videoComplete");
            }
4

5 に答える 5

4

lostPixelsは、エラーの意味を説明する上でほとんどの部分で正しかったのですが、そうではありませんVideoEventEvent

 comp.addEventListener(Event.COMPLETE, videoComplete);

 function videoComplete(event:Event):void //event:Event not event:VideoEvent
 {
     trace("videoComplete");
 }
于 2012-11-01T21:30:09.457 に答える
2

そこにコメントをしましたが、ここで完全な説明をしたいと思います。あなたが言ったとき:

addEventListener(Event.COMPLETE, videoComplete);

それは実際にあなたの関数を呼び出します...しかしあなたが期待するのとは異なるイベントで。これは、実際には、COMPLETEと呼ばれる定数を持つfl.video.VideoEventを起動しているためです。Event.COMPLETEとVideoEvent.COMPLETEの両方=文字列値「complete」なので、関数を呼び出します。

2番目の問題は関数です:

function videoComplete(event:VideoEvent):void {

flash.events.VideoEventをリッスンしています。これは、コードを完全に使用したときの事故である可能性があります。しかし、関数が呼び出されると、fl.video.VideoEvent ...を受信して​​いるため、エラーが発生します。

これらを行います:

import fl.video.VideoEvent;

addEventListener(VideoEvent.COMPLETE, videoComplete);

function videoComplete(event:VideoEvent):void {

そして、あなたはすべて準備ができています!

于 2012-11-01T22:02:50.547 に答える
1

これは、ターゲットにしているFlashPlayerのバージョンと関係があると思います。FP9またはFP10をターゲットにできますか?(Flash Professionalのプロパティパネル内)

于 2012-11-01T15:40:45.610 に答える
1

型強制の失敗は、厳密に型指定された変数を別の変数に変換しようとした結果です。それが意味すること(それは簡単に理解できるように書かれていません)はこれです:

2つの変数があり、1つは数値で、もう1つは文字列であるとします。number = stringとしようとすると、文字列を数値にすることはできないため、Flashはそのエラーを吐き出します。

これがコードと関係しているのは、イベントVideoEventに変換しようとしているということです。

これを修正するには、コードを次の行に変更します。

  comp.addEventListener(VideoEvent.COMPLETE, videoComplete);
于 2012-11-01T15:52:05.847 に答える
1

ビデオの最後にキューポイントを追加して、それを聞くことができます。

compがflvPlaybackコンポーネントのインスタンス名であると仮定します...

import fl.video.FLVPlayback;
import fl.video.MetadataEvent;

comp.addEventListener(MetadataEvent.CUE_POINT, video_cp_listener, false, 0, true);

function video_cp_listener(eventObject:MetadataEvent):void {

//run code here when a cue point is found
trace(eventObject.info.name);

}
于 2012-11-01T21:05:19.750 に答える