ActionScript 3 中的 UILoader 封面背景
UILoader cover background in ActionScript 3
我正在使用 ActionScript 3 和 UILoader 组件来显示 .jpg 图像。
我想要一个 "covered background" 结果,例如 css 属性 :
background-size : cover;
我测试了参数scaleContent(真或假):
uilBackground.scaleContent = true;
但结果并非如此 "covered background"。
我想把scaleContent设置为false,做一个比率计算来修改UILoader组件的大小。
这样好吗?还有其他解决方案吗?
谢谢。
朱利安
基于 Alsacrations jQuery 解决方案 (http://www.alsacreations.com/astuce/lire/1216-arriere-plan-background-extensible.html) :
function backgroundCover(){
var image_width:Number = uilBackground.content.width;
var image_height:Number = uilBackground.content.height;
var over = image_width / image_height;
var under = image_height / image_width;
var body_width = uilBackground.width;
var body_height = uilBackground.height;
if (body_width / body_height >= over) {
uilBackground.content.width = body_width;
uilBackground.content.height = Math.ceil(under * body_width);
uilBackground.move(0,(Math.abs((under * body_width) - body_height) / -2));
}else{
uilBackground.content.width = Math.ceil(over * body_height);
uilBackground.content.height = body_height;
uilBackground.move((Math.abs((over * body_height) - body_width) / -2),0);
}
//trace(uilBackground.content.width);
//trace(uilBackground.content.height);
}
看来可行。
我正在使用 ActionScript 3 和 UILoader 组件来显示 .jpg 图像。
我想要一个 "covered background" 结果,例如 css 属性 :
background-size : cover;
我测试了参数scaleContent(真或假):
uilBackground.scaleContent = true;
但结果并非如此 "covered background"。
我想把scaleContent设置为false,做一个比率计算来修改UILoader组件的大小。
这样好吗?还有其他解决方案吗?
谢谢。 朱利安
基于 Alsacrations jQuery 解决方案 (http://www.alsacreations.com/astuce/lire/1216-arriere-plan-background-extensible.html) :
function backgroundCover(){
var image_width:Number = uilBackground.content.width;
var image_height:Number = uilBackground.content.height;
var over = image_width / image_height;
var under = image_height / image_width;
var body_width = uilBackground.width;
var body_height = uilBackground.height;
if (body_width / body_height >= over) {
uilBackground.content.width = body_width;
uilBackground.content.height = Math.ceil(under * body_width);
uilBackground.move(0,(Math.abs((under * body_width) - body_height) / -2));
}else{
uilBackground.content.width = Math.ceil(over * body_height);
uilBackground.content.height = body_height;
uilBackground.move((Math.abs((over * body_height) - body_width) / -2),0);
}
//trace(uilBackground.content.width);
//trace(uilBackground.content.height);
}
看来可行。