0

我试图在我使用相同的元素之前缩放图案元素 _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 行(它们的大小完全适合 stage.stageWidth 或 Height - 我想要但并不总是五个)。更糟糕的是,当我将模式元素的 ScaleY 或 X 更改为 0.5 或 51 或 501 之类的任何数字时,它根本不在乎 >> 我总是得到 5 行。

在此处输入图像描述

这可以解决吗?

舞台尺寸为 550x400,元素尺寸为 63x83

编辑:好吧,它需要看起来var ScaleY:Number = 3像这样在此处输入图像描述

var ScaleY:Number = 2像这样的时候

在此处输入图像描述

4

1 回答 1

0
var stageW : Number = stage.stageWidth;
var stageH : Number = stage.stageHeight;

var container : Sprite = new Sprite();

var tileN : Number = 3;
var tileM : Number = 7;

var tileW : Number = stageW / tileM;
var tileH : Number = stageH / tileN;
for (var i:int = 0; i < tileN; i++) 
{
    for (var j:int = 0; j < tileM; j++) 
    {
        var tile : Sprite = new Sprite();
        tile.graphics.lineStyle( 1, 0xFF0000 );
        tile.graphics.beginFill( 0x0000FF, 1 );
        tile.graphics.drawRect( 0, 0, tileW, tileH );
        tile.graphics.endFill();
        tile.x = j * tileW;
        tile.y = i * tileH;

        container.addChild( tile );
    }               
}
container.width = stageW;
container.height = stageH;

addChild( container );
于 2013-09-04T21:38:21.523 回答