我试图在我使用相同的元素之前缩放模式元素
_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我没有像我想要的那样在整个scree中得到2行时,我得到5行(它们的大小完全适合stage.stageWidth或Height - 我想要的但是不是总是五)。更糟糕的是,当我将图案元素的ScaleY或X更改为任何数字,如.5或51或501时,它只是不关心>>我总是得到5排。
可以修复吗?
舞台的尺寸为550x400 并且元素具有63x83维度
编辑:
好吧,它需要在var ScaleY:Number = 3
这样的
var ScaleY:Number = 2
这样的时候
答案 0 :(得分: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 );