3

私は完全なAS3/Starling初心者ですが、本質的にスプラッシュ画面であるものの「背景」にFLVビデオファイルを(プログラムで)追加しようとしています。

私がオンラインで見つけたサンプルコードは、基本的に次のようになります... var v:Video = new Video(100、100); this.addChild(v);

これはflash.display.Spriteを拡張するトップレベルのクラスで機能しますが、私のGameクラス(starling.display.Spiteを拡張する)は失敗し、「Videoタイプの値を無関係なタイプDisplayObjectに強制的に強制する」と文句を言います。

不思議なことに、Starling SpriteクラスのaddChild関数のシグネチャは、FlashSpriteクラスのシグネチャと同じです。

つまり、基本的に問題は、ビデオオブジェクトを子としてStarling Spriteクラスに追加できないように見えるのはなぜですか(ただし、Flash Spriteクラスには正常に追加できるのですか?)

答えはばかばかしいほど単純だと確信しています...コードなどを追加する必要がある場合はお知らせください。または、私がしていることが完全に間違った方法である場合。

4

2 に答える 2

3

これは、Starlingフレームワークが通常のFlash DisplayListを模倣するように設計されているためです(ただし、すべての機能を完全に再現しているわけではありません)。starling.display.DisplayObject具体的には、の代わりに型のオブジェクトへの参照を渡そうとしているためflash.display.DisplayObject、適切なエラーが発生します。

Starlingでビデオを再生するために、ムービーの各フレームをテクスチャにアップロードできます。Starlingのフォーラムでこのトピックをご覧ください。

于 2013-01-07T21:00:11.583 に答える
3

または、Starlingの上にあるFlashレイヤーにビデオを追加することもできます。

Starling.current.nativeOverlay.addChild(v);

Starling.current.nativeOverlay.removeChild(v);

ただし、これでStarlingGPU描画を使用していないことを覚えておいてください。

于 2013-01-07T23:14:18.300 に答える