我是一个完整的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函数的签名与Flash Sprite类的签名相同。
所以基本上问题是:为什么我似乎无法将Video对象作为子项添加到Starling Sprite类(但成功地添加到Flash Sprite类)?
我确定答案非常简单......如果我需要添加更多代码或任何内容,请告诉我。或者,如果我正在做的事情完全是错误的。
答案 0 :(得分:3)
这是因为Starling框架被设计为模仿常规Flash DisplayList(尽管没有完全重新创建所有功能)。具体来说,您试图将引用传递给starling.display.DisplayObject
类型的对象而不是flash.display.DisplayObject
,这会产生相应的错误。
为了使用Starling播放视频,您可以将电影的每个帧上传到纹理。看看this topic on Starling's forum.
答案 1 :(得分:3)
或者您可以将视频添加到位于Starling上方的Flash图层:
Starling.current.nativeOverlay.addChild(V);
和
Starling.current.nativeOverlay.removeChild(V);
请记住,你并没有使用Starling GPU绘图。