2013-04-22 36 views
0

喜(原谅我,如果有语法错误,我是法国人),使用的FLVPlayback在FlashDevelop中,加雪碧类的世界在AS3

我在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扩展雪碧,但我不知道如何添加它们,并显示他们...这里是我的代码:

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类等...但如果你知道我可以使用其他更好的代码,并且可以向我解释,我将非常感激。

在此先感谢!

编辑: gosh对不起,如果我在我问这个时候看到你的答案,我会很抱歉。事情是,我在学校的一位同事给我写了一段非常好的代码,这些代码完全回答了我需要做的事情,因为这有点棘手。我可以把它交给任何可能需要它的人,但我不确定它是否适合任何“平常”的情况,因为它非常个性化,并解释了irl。无论如何,谢谢你的答案。

回答

0

为什么你的基类是一个世界?在纯粹的AS3项目中,它应该是一个Sprite。 然后,一旦你的播放器(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);  
    } 

} 

很简单,你并不需要所有这些类;)

0

这是棘手,因为FlashPunk用自定义的基于位图的渲染器替换显示列表。

Your World对象不是普通的显示对象,它不能容纳FLVPlayback组件。

您最好的选择是将视频播放器附加到舞台上。您的主类(扩展引擎)是一个显示对象,因此它具有对舞台的引用。

首先你需要一个全局引用您的主实例,以便您可以找到阶段:

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:我没有真正运行此代码