【发布时间】:2011-07-11 18:34:25
【问题描述】:
我有一个在 Adobe Flex (Flash Builder 4) 中创建的移动应用程序,我正在尝试创建一个缩放功能。我有一个作品,但重点是能够更轻松地阅读图像中的单词(图像是 .jpg 文件)。这些图像最初是 2550x3300,但是一旦您放大,图像质量就会急剧下降,并且无法读取任何内容。
我的缩放功能代码如下。
protected function onZoom(e:TransformGestureEvent, img:Image):void
{
img.transformAround(new Vector3D(e.localX, e.localY, 0), new Vector3D(img.scaleX*e.scaleX, img.scaleY*e.scaleY, 0));
}
这是图像对象的代码:
<s:Image id="titlepage" includeIn="title_page" x="0" y="0" width="320" height="415"
gesturePan="onPan(event, titlepage)"
gestureSwipe="onSwipe(event)"
gestureZoom="onZoom(event, titlepage)"
source="@Embed('assets/myImage.jpg')"/>
【问题讨论】:
-
围绕 Image 对象显示更多代码。另外,为什么要进行变换而不只是缩放图像?
-
添加了图像对象的代码。而在此之前,缩放只是简单地增加和减少大小,transformAround() 方法允许您将动作锚定到您正在放大的点。你能用另一种方式做到这一点吗?
-
使用
img.scaleX *= e.scaleX; img.scaleY *= e.scaleY;放大图片而没有太大的质量损失,但仍会放大到左上角。有没有办法让它锚定在你的手指实际缩放的地方?
标签: apache-flex mobile flash-builder zooming