0

我制作了一个全屏运行的 Flash 演示文稿,有几秒钟的动画,然后视频开始播放,当视频结束时,它进入主菜单。

视频是 720x1080 (16:9) 但我在 Flash 中的文档是 768x576 (4:3)。我根据 768x576 重新调整了视频的大小,因此顶部和底部出现了黑条。当我的 Flash 演示文稿在 Square 显示器上运行时没关系,如果显示器是宽的会怎样。我想要“动作脚本”来检测监视器的类型(宽或正方形),如果它是正方形,那么它会保持视频相同,但如果监视器很宽,那么它会以全屏模式启动视频。

4

2 回答 2

2

您可以使用Capabilities类,它有两个属性,screenResolutionXscreenResolutionY,它将为您提供此信息。这为您提供了主屏幕的分辨率。

您可能需要重新考虑您的假设,即显示器是方形的。屏幕分辨率要么是 4:3(640x480、800x600、1024x768、1280x1024),要么是在我的宽屏显示器上,其他比例既不是 4:3 也不是正方形(1920x1080)。您可能想对宽屏显示器使用的比率进行一些研究(笔记本电脑可能有一系列值)。

您的代码应向 Flash Player 查询屏幕分辨率:

var screenWidth:Number = Capabilities.screenResolutionX;
var screenHeight:Number = Capabilities.screenResolutionY;

然后,您可以决定切换到全屏或以常规尺寸 (768x576) 渲染视频的适当时间。我可以想出几种方法来决定这一点,我相信你也可以。

以下是伪代码中的一些想法,可让您为您的应用考虑合适的解决方案:

if screen is not 4:3, assume wide screen and use full screen
if screenWidth >= actual width of video (1080), use full screen
于 2012-07-12T07:32:12.067 回答
0

不完全是在 ActionScript 中,但以下是您的代码应该是什么样子的记录。

var nScreenWidth:Number =  Capabilities.screenResolutionX,
    nScreenHeight:Number = Capanilities.screenResolutionY;

var nVideoWidth:Number = video.source.getWidth(), //assuming you are using video class, this should be video native size and not video component size.
    nVideoHeight:Number = video.source.getHeight();

var nRatioX:Number = nVideoWidth / nScreenWidth,  //Calculating X and Y ratio of video source and screen.
    nRatioY:Number = nVideoHeight / nScreenHeight;

var nRatio:Number = Math.min(nRatioX, nRatioY); //Picking up smaller ratio so that we can fit video in screen.

video.width = Math.round(nScreenWidth * nRatio); //Set video component width and height, this should make it fit to screen keeping aspect ratio.
video.height = Math.round(nScreenHeight * nRatio);
于 2012-07-12T08:13:09.733 回答