Actionscript 3 as3使用调整大小的信息缩放我的movieclip

Actionscript 3 as3使用调整大小的信息缩放我的movieclip,actionscript-3,flash,resize,scaling,Actionscript 3,Flash,Resize,Scaling,我正在用Flash CS5.5开发一款空中移动应用程序,在这方面我还是个新手 所以我的问题是:我把我所有的内容都放在一个叫做base的movieClip中。我已经编写了代码,根据movieClip运行的设备和设备方向调整movieClip的大小。这部分工作正常,问题是当我尝试创建缩放功能时 基本movieClip可以缩放,但我在设置最小边界时遇到了问题,因此我的内容缩放范围永远不会小于设备的宽度。我相信它指的是原始基底宽度,而不是调整大小的基底宽度。关于如何在调整大小功能后调用新的基准宽度,有什

我正在用Flash CS5.5开发一款空中移动应用程序,在这方面我还是个新手

所以我的问题是:我把我所有的内容都放在一个叫做base的movieClip中。我已经编写了代码,根据movieClip运行的设备和设备方向调整movieClip的大小。这部分工作正常,问题是当我尝试创建缩放功能时

基本movieClip可以缩放,但我在设置最小边界时遇到了问题,因此我的内容缩放范围永远不会小于设备的宽度。我相信它指的是原始基底宽度,而不是调整大小的基底宽度。关于如何在调整大小功能后调用新的基准宽度,有什么想法吗?请参阅下面的代码,并提前感谢您的帮助:)

导入flash.geom.Rectangle;
停止();
base.play();
stage.align=StageAlign.TOP\u左;
stage.scaleMode=StageScaleMode.NO_SCALE;
var guiSize:Rectangle=新矩形(0,0480800);
var appScale:数字=1;
stage.addEventListener(Event.RESIZE,handleResize);
函数handleResize(e:事件):void{
var deviceSize:Rectangle=新矩形(0,0,stage.stageWidth,
舞台重量);
appScale=deviceSize.width/guiSize.width;
base.width=appScale*guiSize.width;
base.height=appScale*guiSize.height;
Multitouch.inputMode=MultitouchInputMode.手势;
base.addEventListener(TransformGestureEvent.signature\u ZOOM,onZoom);
函数onZoom(e:TransformGestureEvent):void{
if(base.scaleX*e.scaleX<1)
{}
else if(base.scaleX*e.scaleX>5)
{}
否则{
base.scaleX*=(e.scaleX+e.scaleY)/2;
base.scaleY*=(e.scaleX+e.scaleY)/2;}
}
}

在反复使用代码并尝试了许多不同的解决方案后,我想出了下面的代码,它似乎工作得很好。问题是,我的基本movieClip在resize函数之后被放大,该函数为我的缩放函数丢弃了base.scaleX变量。这是因为base.scaleX等于多个。您可以在这里看到问题:

if (base.scaleX * e.scaleX < 1)
if(base.scaleX*e.scaleX<1)
该代码导致我的基本movieClip的缩放比例小于我的设备窗口。我的解决方案是使用新的base.width来确定缩放函数的最小和最大缩放。如下文所述

function onZoom (e:TransformGestureEvent):void{ 
       if (base.width * e.scaleX < deviceSize.width )
       {}
else if (base.width * e.scaleX > deviceSize.width * 2 ) 
{}
else {
base.scaleX *= (e.scaleX+e.scaleY)/2; 
       base.scaleY *= (e.scaleX+e.scaleY)/2;}
}
}
缩放函数(e:TransformGestureEvent):void{ if(base.width*e.scaleXdeviceSize.width*2) {} 否则{ base.scaleX*=(e.scaleX+e.scaleY)/2; base.scaleY*=(e.scaleX+e.scaleY)/2;} } }
function onZoom (e:TransformGestureEvent):void{ 
       if (base.width * e.scaleX < deviceSize.width )
       {}
else if (base.width * e.scaleX > deviceSize.width * 2 ) 
{}
else {
base.scaleX *= (e.scaleX+e.scaleY)/2; 
       base.scaleY *= (e.scaleX+e.scaleY)/2;}
}
}