0

我正在使用 ActionScript 3 和 UILoader 组件来显示 .jpg 图像。

我想要一个“覆盖背景”的结果,比如 css 属性:

background-size : cover;

我测试了参数 scaleContent (真或假):

uilBackground.scaleContent = true; 

但结果并不是真正的“覆盖背景”。

我认为将 scaleContent 设置为 false 并进行比率计算以修改 UILoader 组件的大小。

这是一个好方法吗?还有其他解决方案吗?

谢谢。朱利安

4

1 回答 1

0

基于 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);  
}

这似乎工作。

于 2015-02-03T22:09:30.697 回答