Apache flex 在画布中拟合Flex图像
如何在Flex中缩放图像以适合画布?我的代码如下:Apache flex 在画布中拟合Flex图像,apache-flex,actionscript-3,Apache Flex,Actionscript 3,如何在Flex中缩放图像以适合画布?我的代码如下: <?xml version="1.0" encoding="utf-8"?> <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" horizontalAlign="center" width="100" height="100" verticalGap="0" borderStyle="solid" ini
<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
horizontalAlign="center"
width="100" height="100"
verticalGap="0" borderStyle="solid"
initialize="onLoad()"
horizontalScrollPolicy="off"
verticalScrollPolicy="off">
<mx:Canvas width="100%" height="100%" id="PictureBox" horizontalScrollPolicy="off"
verticalScrollPolicy="off" />
<mx:Label id="NameLabel" height="20%" width="100%"/>
<mx:Script>
<![CDATA[
private function onLoad():void
{
var image:SmoothImage = data.thumbnail;
image.percentHeight = 100;
image.percentWidth = 100;
this.PictureBox.addChild(image);
var sizeString:String = new String();
if ((data.fr.size / 1024) >= 512)
sizeString = "" + int((data.fr.size / 1024 / 1024) * 100)/100 + " MB";
else
sizeString = "" + int((data.fr.size / 1024) * 100)/100 + " KB";
this.NameLabel.text = data.name + " \n" + sizeString;
}
]]>
</mx:Script>
</mx:VBox>
= 512)
sizeString=“”+int((data.fr.size/1024/1024)*100)/100+“MB”;
其他的
sizeString=“”+int((data.fr.size/1024)*100)/100+“KB”;
this.namelab.text=data.name+“\n”+sizeString;
}
]]>
我正在尝试将图像:SmoothImage放入PictureBox并将其缩小
注意SmoothImage源于图像。您需要确保已设置
image.scaleContent = true;
image.maintainAspectRatio = false;
这应该将内容缩放到swf加载程序的大小,并对其进行扭曲,使其填充图像组件的整个区域
这里有一个快速版本的工作
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
horizontalAlign="center"
width="100" height="100"
verticalGap="0" borderStyle="solid"
initialize="onLoad()"
horizontalScrollPolicy="off"
verticalScrollPolicy="off">
<mx:Canvas width="100%" height="100%" id="PictureBox" horizontalScrollPolicy="off"
verticalScrollPolicy="off" />
<mx:Label id="NameLabel" height="20%" width="100%"/>
<mx:Script>
<![CDATA[
import mx.controls.Image;
private function onLoad():void
{
var image : Image = new Image()
image.source = "http://i.stackoverflow.com/Content/Img/stackoverflow-logo-250.png";
image.scaleContent = true;
image.maintainAspectRatio =false;
image.percentWidth = 100;
image.percentHeight = 100;
PictureBox.addChild(image);
}
]]>
</mx:Script>
</mx:VBox>
您需要确保已设置
image.scaleContent = true;
image.maintainAspectRatio = false;
这应该将内容缩放到swf加载程序的大小,并对其进行扭曲,使其填充图像组件的整个区域
这里有一个快速版本的工作
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
horizontalAlign="center"
width="100" height="100"
verticalGap="0" borderStyle="solid"
initialize="onLoad()"
horizontalScrollPolicy="off"
verticalScrollPolicy="off">
<mx:Canvas width="100%" height="100%" id="PictureBox" horizontalScrollPolicy="off"
verticalScrollPolicy="off" />
<mx:Label id="NameLabel" height="20%" width="100%"/>
<mx:Script>
<![CDATA[
import mx.controls.Image;
private function onLoad():void
{
var image : Image = new Image()
image.source = "http://i.stackoverflow.com/Content/Img/stackoverflow-logo-250.png";
image.scaleContent = true;
image.maintainAspectRatio =false;
image.percentWidth = 100;
image.percentHeight = 100;
PictureBox.addChild(image);
}
]]>
</mx:Script>
</mx:VBox>
SmoothImage的来源是什么?图像?是的,它只是设置了平滑属性。scalex和scaley的一些工作原理。我不知道我现在需要的数学。SmoothImage从何而来?图像?是的,它只是设置了平滑属性。scalex和scaley的一些工作原理。我不知道我现在需要的数学知识。