【问题标题】:as3 Using resized information to scale my movieclipas3 使用调整大小的信息来缩放我的电影剪辑
【发布时间】:2012-12-10 22:18:14
【问题描述】:

我正在使用 Flash CS5.5 开发一个空中移动应用程序,并且在这方面还很陌生。

所以这是我的问题:我将所有内容放在名为 base 的影片剪辑中。我已经编写了代码来根据正在运行的设备和设备方向调整我的电影剪辑的大小。那部分工作正常,问题是当我尝试创建缩放功能时。

基本的movieClip 可缩放,但我无法让最小边界正常工作,因此我的内容的缩放比例永远不会小于设备的宽度。我相信它指的是原始基础宽度而不是调整大小的基础宽度。关于如何在调整大小函数后调用新的基本宽度有什么想法吗?请参阅下面的代码,并提前感谢您的帮助:)

import flash.geom.Rectangle;

stop();

base.play();

stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;

var guiSize:Rectangle = new Rectangle(0, 0, 480, 800);
var appScale:Number = 1;


stage.addEventListener(Event.RESIZE, handleResize);
function handleResize(e:Event):void {
     var deviceSize:Rectangle = new Rectangle(0, 0,  stage.stageWidth, 
     stage.stageHeight);
appScale = deviceSize.width / guiSize.width;
base.width = appScale * guiSize.width; 
base.height = appScale * guiSize.height;

Multitouch.inputMode = MultitouchInputMode.GESTURE;
base.addEventListener(TransformGestureEvent.GESTURE_ZOOM , onZoom); 
function onZoom (e:TransformGestureEvent):void{ 

if (base.scaleX * e.scaleX < 1)
{}
else if (base.scaleX * e.scaleX > 5) 
{}
else {
base.scaleX *= (e.scaleX+e.scaleY)/2; 
       base.scaleY *= (e.scaleX+e.scaleY)/2;}
}
}

【问题讨论】:

    标签: actionscript-3 flash resize scaling


    【解决方案1】:

    在玩弄了代码并尝试了许多不同的解决方案后,我想出了下面的代码,它似乎工作正常。问题是我的基本movieClip 在resize 函数为我的缩放函数抛出base.scaleX 变量之后被放大了。这是因为 base.scaleX 大于一。你可以在这里看到问题:

    if (base.scaleX * e.scaleX < 1)
    

    代码导致我的基本电影剪辑缩小到小于我的设备窗口。我的解决方案是使用新的 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;}
    }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-28
      • 2023-03-30
      • 1970-01-01
      • 2011-10-17
      • 1970-01-01
      • 2013-01-15
      相关资源
      最近更新 更多