これで同じ要素を使用する前にパターン要素をスケーリングしようとしています
_mesh.graphics.beginBitmapFill(_box, matrix, true, true);
が、それを考慮せず、パターン要素をスケーリングしません>背景のみ。これは、「 Box」という名前で背景を塗りつぶすために使用されるパターン要素です。
これは、私が望む効果を作成するためにこれまでに持っているクラスのコードです
private var _mesh:Shape = new Shape();
private var _box:BitmapData = new Box();
public function CreateRow_Col() {
addEventListener(Event.ADDED_TO_STAGE, zzz);
}
private function zzz(e:Event):void {
removeEventListener(Event.ADDED_TO_STAGE, zzz);
var stageW:Number = stage.stageWidth
var stageH:Number = stage.stageHeight
var elementW = _box.width
var elementH = _box.height
var numberElements_W = Math.ceil(stageW / elementW)
var numberElements_H = Math.ceil(stageH / elementH)
var ScaleX:Number = 1
var ScaleY:Number = 51
var background_W = numberElements_W * elementW * ScaleX
var background_H = numberElements_H * elementH * ScaleY
//trace(background_W + " = "+ numberElements_W + " * " + elementW)
var matrix:Matrix = new Matrix()
matrix.scale(ScaleX,ScaleY);
_mesh.graphics.beginBitmapFill(_box, matrix, true, true);
_mesh.graphics.drawRect(0, 0, background_W, background_H);
_mesh.graphics.endFill();
_mesh.x = _mesh.y = 0;
_mesh.scaleX = stageW / background_W;
_mesh.scaleY = stageH / background_H;
trace(stageH / background_H)
addChild(_mesh);
}
}
}
つまり、コメントする/*_mesh.scaleX = stageW / background_W;
_mesh.scaleY = stageH / background_H;*/
と、必要なように2行あります。これは、いくつかのイベントに応じて異なるscaleXとYが変化するためです(要素が大きくなったり小さくなったりします)
しかし、_mesh.ScaleX と Y のコメントを外すと、必要なように 2 行がスクリー全体に収まらず、5 行になります (ステージに合わせて完全にサイズ設定されています)。さらに悪いことに、パターン要素の ScaleY または X を .5、51、または 501 などの任意の数値に変更すると、気にしません >> 常に 5 行になります。
これは修正できますか?
ステージの寸法は 550x400 で、要素の寸法は 63x83 です
var ScaleY:Number = 3
編集:まあ、このように見える必要があります
var ScaleY:Number = 2
こんなとき