2016-05-09 21 views
-2

私はこのコードを見つけましたが、このコードを見つけましたが、実行しようとすると "可能な未定義プロパティの完全なアクセスが静的型クラスの参照を介して"Adob​​e Flash - 可能な未定義プロパティへのアクセスCOMPLETE

video.source="video.flv"; 
import fl.video.*; 
function onFLVCOMPLETE(event:VideoEvent):void{ 
      event.target.play(); 
} 
video.addEventListener(VideoEvent.COMPLETE, onFLVCOMPLETE); 

で何が起こっているのか見当もつかないので、任意のヘルプは素晴らしい

+0

@FabriceBacquartうわー、あなたのコメントに少し外れましたか?他の人がそうでないことを理解しているからといって、前にflash/actionscriptを使ったことはありません。私は学びたいと思っています。 –

+0

@AaronOwen - あなたはそれを把握しましたか?上記のコメントを無視すると 'import fl.video。*;'は目的のクラスをインポートするので、 'import fl.video.VideoEvent'を追加する必要はありません(より具体的な方が良いですが)。ここでは、何が尋ねられているのか、何が問題なのかを正しく理解することなく、批判的でdownvoteするのが好きです。 – BadFeelingAboutThis

+0

@FabriceBacquart - OPがそのクラスをインポートしています: 'import fl.video。*'ワイルドカード '*'そのパッケージには、fl.video.VideoEventが含まれます。問題は私の答えの2番目の部分にある問題です。実際には明らかに明らかではないあいまいな解決策で、実際には非常に良い質問です。 – BadFeelingAboutThis

答えて

2

EDITだろう

これは何が起こっているかである。

FLASHPRO/Adob​​eAnimate IDEが自動的にflash.eventsパッケージをインポート(明示的に指示しているかどうかに関わらず)。これを行うと、VideoEventを使用したときに参照されるものとして、flash.events.VideoEventクラスがインポートされたfl.video.VideoEventクラスを置き換えます。

この問題を解決するには、完全修飾クラス名を使用するだけです。だからではなく、使用する:

あなたが使用
VideoEvent 

を:

fl.video.VideoEvent 

だからあなたのコードは次のようになります。この動作をテストするには

function onFLVCOMPLETE(event:fl.video.VideoEvent):void{ 
      event.target.play(); 
} 
video.addEventListener(fl.video.VideoEvent.COMPLETE, onFLVCOMPLETE); 

、新しいFLASHPROを作成しますタイムライン上の次のコードでプロジェクトを作成します(ライブラリにビデオコンポーネントを追加する必要もあります)

import fl.video.VideoEvent; 
trace(flash.utils.getQualifiedClassName(VideoEvent)); 

出力ウィンドウに期待される結果がfl.video::VideoEventですが、実際の結果は次のとおりです。だから、

flash.events::VideoEvent

あなただけVideoEventがあり、fl.video.VideoEventを輸入していてもflash.events.VideoEvent(インポートされていない)を参照してください。

+2

OPが探している正しい「VideoEvent」は、['fl.video.VideoEvent']です(http://help.adobe.com/jp/en_US/)。 [COMPLETE](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl/video/)を持つクラス(FlashPlatform/reference/actionscript/3/fl/video/VideoEvent.html) VideoEvent.html#COMPLETE)定数... – akmozo

+0

@Aaron Owen - 上記の@akmozoのコメントを考慮すると、VideoEventクラス( 'flash.events'パッケージのものと' fl.video'パッケージのもの)が衝突している可能性があります。これを試して見てください'video.addEventListener(fl.video.VideoEvent.COMPLETE、onFLVCOMPLETE);'これらの完全なイベントはすべて同じ文字列なので、 'Event.COMPLETE'だけでなく' fl.video .VideoEvent.COMPLETE' – BadFeelingAboutThis

+0

@akmozo、良いキャッチ、私はパッケージ/コンポーネントを使用せず、別のVideoEventクラスがあることに気付かなかった。 – BadFeelingAboutThis

関連する問題