0

こんにちは (文法の間違いがあればすみません。私はフランス語です)。

私は AS3 の初心者ですが、Flashpunk の方が少し詳しいです。とにかく、AS3 でコーディングするのが本当に難しく、FlashDevelop を使用して AS3 プロジェクトにビデオを挿入する方法がわかりません。

さて、探しているコードをいくつか見つけました。ここに flv ビデオを挿入してください: http://www.flashdevelop.org/community/viewtopic.php?f=9&t=6407

しかし、このコードを機能させるにはいくつかの問題があります... 前に言ったように、私は Flashpunk をよく知っているので、基本的な AS3 を Flashpunk の知識とリンクさせるのは難しいです。

クラスで整理しようとしましたが、これらが間違っていることはわかっていますが、コードを機能させるにはどうすればよいか教えてください。「addChild」はSpriteまたはMovieclip関数にすぎないと思うので、FLVplaybackとPlayerGfxはSpriteを拡張しますが、それらを追加して表示する方法がわかりません...これが私のコードです:

public class testMyWorld extends World
{
    public var player:PlayerGfx;
    public var _FLV:testFLV;

    public function testMyWorld() 
    {

        _FLV = new testFLV;
        player = new PlayerGfx();

    }

}  


public class testFLV extends Sprite
{
    public var flvPlayback:FLVPlayback;
    public var player:PlayerGfx;

    public function testFLV() 
    {
        flvPlayback = new FLVPlayback(); 
        flvPlayback.skin = "none" 
        flvPlayback.autoPlay = false;
        flvPlayback.source = "FLVSkyrim.flv"    
        player.addChild(flvPlayback);
    }

}

何を入れればいいのかわかりませんでしたが、リンクの前に「プレーヤークラス」があるので...

    public class PlayerGfx extends Sprite
{

    public function PlayerGfx() 
    {

    }

}

私は必死に助けを求めています。私が何をすべきかを説明できる人が見つかりません :/ 学校の AS3 プロジェクトとしてビデオを表示する必要があるだけで、FlashProfessional を使用したくありません... しかし、 addChild、Sprite クラスの表示など、多くのことを理解していません...しかし、私が使用できる他のコードをよりよく知っていて、説明していただければ、とても感謝しています。

前もって感謝します !

編集:まあ、私がこれを尋ねたときにあなたの答えを見たなら、申し訳ありません。問題は、学校の同僚の 1 人が、私がしなければならないことを正確に答えてくれるとても素敵なコードを書いてくれたということです。私はそれを必要とする人なら誰にでも与えることができますが、それがかなりパーソナライズされ、説明されていたので、「通常の」状況に合うかどうかはわかりません. とにかく、あなたの答えに感謝します。

4

2 に答える 2

0

なぜあなたの基本クラスは世界ですか? 純粋な AS3 プロジェクトでは、スプライトにする必要があります。次に、プレーヤー ( FLVPlayback) が作成されたら、それを表示リストに追加するだけです。

import fl.video.FLVPlayback;

public class Main extends Sprite
{
    private var flvPlayback:FLVPlayback;

    public function testMyWorld() 
    {    
        flvPlayback = new FLVPlayback(); 
        flvPlayback.skin = "none" 
        flvPlayback.autoPlay = false;
        flvPlayback.source = "FLVSkyrim.flv"    
        addChild(flvPlayback);    
    }

}

簡単にしてください。これらすべてのクラスは必要ありません;)

于 2013-04-24T09:14:14.497 に答える
0

FlashPunk は表示リストをカスタムのビットマップ ベースのレンダラーに置き換えるため、これは注意が必要です。

World オブジェクトは通常の表示オブジェクトではなく、FLVPlayback コンポーネントを保持できません。

最適なオプションは、ビデオ プレーヤーをステージに接続することです。Main クラス (拡張エンジン) は表示オブジェクトであるため、ステージへの参照があります。

まず、ステージを見つけることができるように、メイン インスタンスへのグローバル参照が必要です。

public class Main extends Engine
{
    static public instance:Main; // global static reference

    public function Main():void
    {
         instance = this;
         ...
    }
}

これで、ステージ上 (FlashPunk ステージ上) に表示オブジェクトをアタッチできるようになりました。

public class testMyWorld extends World
{
    private var player:MyPlayer; // your FLV player class extending Sprite

    public function testMyWorld() 
    {
        player = new MyPlayer();
    }

    // when the world is shown
    override public function begin():void 
    {
         Main.instance.stage.addChild(player);
    }

    // when the world is hidden
    override public function end():void 
    {
         if (player.parent) Main.instance.stage.removeChild(player);
    }
}

PS: 私は実際にこのコードを実行しませんでした

于 2013-04-24T14:24:56.767 に答える