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 函数的签名与 Flash Sprite 类的签名相同。

所以基本上问题是:为什么我似乎无法将 Video 对象作为孩子添加到 Starling Sprite 类(但成功添加到 Flash Sprite 类)?

我确信答案非常简单......如果我需要添加更多代码或任何东西,请告诉我。或者,如果我正在做的是完全错误的方式。

4

2 回答 2

3

或者您可以将视频添加到 Starling 上方的 Flash 层:

Starling.current.nativeOverlay.addChild(v);

Starling.current.nativeOverlay.removeChild(v);

请记住,您并没有使用 Starling GPU 绘图。

于 2013-01-07T23:14:18.300 回答
3

这是因为 Starling 框架旨在模仿常规的 Flash DisplayList(虽然没有完全重新创建所有功能)。具体来说,您试图传递对类型对象的引用starling.display.DisplayObject而不是flash.display.DisplayObject,这会给出适当的错误。

为了使用 Starling 播放视频,您可以将电影的每一帧上传到纹理。在 Starling 的论坛上查看此主题。

于 2013-01-07T21:00:11.583 回答