我制作了一个全屏运行的Flash演示文稿,其中有几秒钟的动画,然后是视频开始播放,当视频结束时,它会进入主菜单。
视频使用720x1080(16:9),但我在Flash中的文档是768x576(4:3)。 我根据768x576调整了视频大小,所以在顶部和底部都是黑条。当我的Flash演示文稿在Square监视器上运行时,这是好的,如果监视器是宽的话。 我希望“动作脚本”能够检测到显示器的类型(广角或方形),如果它是Square,那么它会保持视频相同,但如果显示器很宽则会以全屏方式启动视频。
答案 0 :(得分:2)
您可以使用Capabilities类,它有两个属性screenResolutionX
和screenResolutionY
,它们会为您提供此信息。这为您提供了主屏幕的分辨率。
您可能想重新考虑一下监视器是正方形的假设。屏幕分辨率为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
答案 1 :(得分: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);