1

サイズが 500x400 のムービー クリップがあります。インスタンス名は「main」です。次のコードがあります。

import flash.display.StageScaleMode;
import flash.display.StageAlign;
import flash.events.Event;

stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.addEventListener (Event.RESIZE, resizeHandler);

// initialize sizing
resizeHandler (null);

function resizeHandler (event:Event):void {
var sw:Number = stage.stageWidth;
var sh:Number = stage.stageHeight;

  main.height = sh;
  main.width = sw;

}

MovieClip のサイズ変更と最大サイズの比率を 500x400 に保つにはどうすればよいですか?

4

3 に答える 3

0

これは私の頭の中から外れているので、100% 正しい構文ではありませんが、アイデアは得られるはずです:

import flash.display.StageScaleMode;
import flash.display.StageAlign;
import flash.events.Event;

var ratio:Number = Number(stage.stageWidth)/stage.stageWidth;//you need to check if stage isn't null and this ratio is valid

stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.addEventListener (Event.RESIZE, resizeHandler);


// initialize sizing
resizeHandler (null);

function resizeHandler (event:Event):void {
var sw:Number = stage.stageWidth;
var sh:Number = stage.stageHeight;
  //make with width same as stage
  main.width = sw;
  main.height = sh/ratio;//keep height proprtional
  //or you can try the other way around if you want - make main.height = sh and main.width =  sh * ratio;

}
于 2012-07-11T00:23:58.340 に答える
0

次のコードは、ムービー クリップの比率に関係なく、トリックを実行する必要があります。500 × 400 の比率を強制したい場合は、movieClipRatio を 500 / 400 として割り当てることができます。

import flash.display.StageScaleMode;
import flash.display.StageAlign;
import flash.events.Event;

stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.addEventListener (Event.RESIZE, resizeHandler);
var movieClipRatio:Number = main.width / main.height;

// initialize sizing
resizeHandler (null);

function resizeHandler (event:Event):void {
    var sw:Number = stage.stageWidth;
    var sh:Number = stage.stageHeight;

    if ( sw == 0 || sh == 0 ) {
        return; // special case to avoid
    }

    var stageRatio:Number = sw / sh;

    if ( stageRatio > movieClipRatio )  {
        // stage is proportionally wider than movieClip
        // resize by height
        main.width *= sh / main.height;
        main.height = sh;
    } else {
        // stage is proportionally taller than movieClip
        // resize by width
        main.height *= sw / main.width;
        main.width = sw;
    }

}
于 2012-07-11T02:19:58.190 に答える