Saya sedang mengerjakan aplikasi seluler udara di Flash CS5.5 dan saya cukup baru dalam hal ini.
Jadi inilah masalah saya: Saya menempatkan semua konten saya di dalam movieClip yang disebut base. Saya telah menulis kode untuk mengubah ukuran movieClip saya berdasarkan perangkat yang menjalankannya dan orientasi perangkat. Bagian itu berfungsi dengan baik, masalahnya adalah ketika saya mencoba membuat fungsi zoom.
MovieClip dasar berskala tetapi saya mengalami kesulitan dalam menerapkan batas minimum sehingga konten saya tidak pernah berskala kurang dari lebar perangkat. Saya yakin ini mengacu pada lebar dasar asli, bukan lebar dasar yang diubah ukurannya. Adakah ide tentang cara memanggil lebar dasar baru setelah fungsi pengubahan ukuran? Lihat kode saya di bawah ini dan terima kasih sebelumnya atas bantuan apa pun :)
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;}
}
}