我想把一张图片加载到我的Flex应用程序的背景中。然而,我想知道一些事情,并有一些限制。
我想让它更像用CSS做的那样。请参阅此fullscreen background images with CSS示例。
非常重要的一点是,图像后面没有显示空白(背景颜色),并且图像没有拉伸。这将意味着一些图像将被切断。这绝对是好的。实际上,上面链接页面上项目符号列表中的前五点都是我想要的。
我是Flex框架的新手,但有很强的AS3背景。因此,我可以使用actionscript,使用掩码、stage.width/height、stages调整大小事件和一些Math代码轻松完成此操作。但是我想知道做这个的"Flex“方式是什么?
我不想缩小答案的范围,但我会创建自己的组件,扩展canvas,放在所有其他内容的后面吗?还是要我设置应用程序的某些属性?不然呢?
谢谢。
发布于 2010-02-04 18:52:04
虽然这是一个纯粹的as3解决方案,它可能会让你在正确的方向上,这是从它的点0,0缩放图像,但不会很难改变它从中心缩放。代码如下:
stage.align = "TL";
stage.scaleMode = "noScale";
// store original image size
var imgW:Number = img.width;
var imgH:Number = img.height;
// stage dimensions
var sW:Number = stage.stageWidth;
var sH:Number = stage.stageHeight;
resizer(null);
stage.addEventListener(Event.RESIZE, resizer);
private function resizer(e:Event):void
{
// current stage dimension
sW = stage.stageWidth;
sH = stage.stageHeight;
// check for proportions to make the resize based on right axis
if ((sW / imgW) > (sH / imgH)) {
img.width = sW;
img.height = imgH * (img.width / imgW);
} else {
img.height = sH;
img.width = imgW * (img.height / imgH);
}
// here you may want to deal with resize from center
img.x = 0;
img.y = 0;
}https://stackoverflow.com/questions/2198537
复制相似问题