我正在使用带有load
的{{1}}将JPEG加载到Flash演示文稿中,并且效果很好。 JPEG正在调整其原始分辨率(这是完美的)。但是,如果我最大化Flash演示文稿(在Flash Player中),则JPG不会利用更大的屏幕。
例如,演示文稿为1024x768,图像为1280x400。通常情况下,图像会在Flash演示文稿中显示部分屏幕外。但是,如果我将Flash演示文稿扩展为1680x1200,则新加载的图像仍然会脱离屏幕。 有没有办法加载jpg(或png,或其他)以利用Flash演示文稿的显示分辨率?
编辑:我意识到这个问题很难阅读,所以任何帮助都会受到赞赏。
答案 0 :(得分:4)
确保您的内容未缩放:
stage.scaleMode = StageScaleMode.NO_SCALE;
这会使Flash将其显示区域视为绝对大小,因此当您展开其容器时,它将有更多像素可供使用。阅读有关scalemodes here的信息。
附录:根据您的意见,快速了解缩放比例。 (仅有!)有三个因素会影响Flash内容的缩放:
如果比例模式设置为“无比例”,则Flash会完全忽略舞台大小,只显示未缩放的内容。如果缩放模式不是“无缩放”,则Flash会缩放您的内容,以使舞台大小与容器大小相匹配。 (不同的比例模式设置仅控制Flash是否更改宽高比,以及当舞台和容器具有不同方面时它是否与内部或外部尺寸匹配。)
现在这里是棘手的一点。如果您希望您的内容在容器更改大小时表现不同(这是您全屏时会发生的情况),则需要使用“无比例”。原因是,当Flash处理缩放时,您的内容始终“认为”Container大小等于舞台大小。也就是说,如果您的舞台大小为800x600,并且您的容器大小扩大到1024x768,则Flash会告诉您的内容容器仍然是800x600,并且可以扩展您的内容所显示的内容。如果您使用“无比例”,则Flash会告诉您的内容真正的容器大小,并假设您将进行自己的缩放。
这些是基础知识。现在继续解决您的问题,这是您可能需要做的事情。
stage.stageHeight
和stage.stageWidth
以查找当前的容器大小。以下是让您开始第三点的示例代码:
stage.addEventListener( Event.RESIZE, onStageResize );
// ...
function onStageResize( e:Event ) {
myImg.width = stage.stageWidth;
myImg.height = stage.stageHeight;
// or whatever
}
希望有所帮助!
答案 1 :(得分:0)
所以代码看起来像这样:
if (contentLoader.content.width > MAX_WIDTH) {
var bitmap:Bitmap = Bitmap(contentLoader.content);
bitmap.smoothing = true; // the whole point of the exercise, really
var oldW = bitmap.width;
bitmap.width = MAX_WIDTH;
bitmap.height = MAX_WIDTH / oldW * bitmap.height;
}