因此,我正在构建一个出现在嵌套(显示)层次结构中的视频播放器,我非常希望找到一种简单的方法来保存背景。我有一个Loader,它包含一个bg,另一个SWF (它包含视频播放器)在StageVideo和视频之间切换,每个最终用户的环境。我有StageVideo工作,但它总是显示在下面的其他内容。
现在我知道这是StageVideo想要的行为,因为它允许GPU将内容直接呈现到屏幕上,而不必将视频提要与显示列表内容(http://help.adobe.com/en_US/as3/dev/WSe9ecd9e6b89aefd2-68d5ef8f12cc8511f6c-7fff.html)组合在一起,但我真的希望能够在视频播放器后面显示我的背景(如果只是“画框”)。在播放器周围画一个简单的矩形框架,这样的话,它似乎有一个bg将无法工作;我需要也能够显示图像和其他DisplayObjects背后的视频播放器本身。
有可能出现这种情况吗?有人发现了解决这个问题的任何潜在的解决办法(甚至没有文档)?
发布于 2011-10-06 08:16:02
好的-明白了。事实证明,将所有的背景内容放在一个容器中,并用框架形状的掩码掩蔽容器实际上将允许StageVideo有效地呈现在顶部。
例如:
bg_container.x = video_container.x;
bg_container.y = video_container.y;
set_frame_mask(video_width, video_height, frame_width, bg_container);
// Helper function.
protected function setFrameMask(width:Number, height:Number, frame_width:Number, container:Sprite):void
{
var frame:Sprite = new Sprite();
frame.graphics.beginFill(0xFF0000);
frame.graphics.drawRect(0, 0, width, frame_width);
frame.graphics.drawRect(0, frame_width, frame_width, width - frame_width);
frame.graphics.drawRect(width - frame_width, frame_width, frame_width, height - frame_width);
frame.graphics.drawRect(frame_width, height - frame_width, width - 2 * frame_width, frame_width);
frame.graphics.endFill();
frame.x = container.x;
frame.y = container.y;
container.mask = frame;
}发布于 2011-10-05 08:36:02
如果你所需要的只是视频播放器周围的一个框架,试着用一个与视频屏幕大小一样的矩形来掩盖背景,并把它放在上面。
否则,您可能不得不使用常规的视频播放器而不是StageVideo播放器。
https://stackoverflow.com/questions/7658077
复制相似问题