嗨(对不起,如果有语法错误,我是法国人),
我是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 Class等等......但是如果你知道其他代码更好我可以使用并且你可以向我解释,我将非常感激。
提前致谢!
编辑: gosh如果在我问这个问题时看到你的回答,我很抱歉。问题是,我在学校的一位同事给我写了一个相当不错的代码,完全回答了我需要做的事情,因为它有点棘手。我可以把它交给任何可能需要它的人,但我不确定它是否适合任何“通常”情况,因为它非常个性化并且解释了irl。无论如何,谢谢你的回答。
答案 0 :(得分: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);
}
}
简单来说,你不需要所有这些课程;)
答案 1 :(得分: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:我实际上没有运行此代码