私は Flash CS5.5 でエア モバイル アプリを開発していますが、これはかなり新しいものです。
ここに私の問題があります: base と呼ばれる movieClip 内にすべてのコンテンツを配置しました。movieClip が実行されているデバイスとデバイスの向きに基づいて、movieClip のサイズを変更するコードを作成しました。その部分は問題なく動作しますが、問題はズーム機能を作成しようとしたときです。
ベースの 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;}
}
}