Actionscript 3 空间中的最佳瓷砖尺寸/布局
这是一个air应用程序,但我相信这是其他东西的常见问题 我一直在努力找出在网格中调整瓷砖大小的最佳方法。我有一些类似下面的代码,这类代码可以工作,但我遇到的问题是,整个东西在小屏幕上的比例太小了 我正试图找到一种最佳的方法来缩放一些瓷砖,使它们适合屏幕,并保持尽可能大的尺寸。我可以实现滚动,但我想避免 是否有一种不那么有效/更有效的方式来排列和缩放瓷砖以适应空间Actionscript 3 空间中的最佳瓷砖尺寸/布局,actionscript-3,math,Actionscript 3,Math,这是一个air应用程序,但我相信这是其他东西的常见问题 我一直在努力找出在网格中调整瓷砖大小的最佳方法。我有一些类似下面的代码,这类代码可以工作,但我遇到的问题是,整个东西在小屏幕上的比例太小了 我正试图找到一种最佳的方法来缩放一些瓷砖,使它们适合屏幕,并保持尽可能大的尺寸。我可以实现滚动,但我想避免 是否有一种不那么有效/更有效的方式来排列和缩放瓷砖以适应空间 var scaleFactor:Number = Model.appScale * this.scaleX;
var scaleFactor:Number = Model.appScale * this.scaleX;
var gap:Number = 10 /scaleFactor;
var _width:Number = stage.fullScreenWidth / scaleFactor;
var sampleWidth:Number = sample.width;
var sampleHeight:Number = sample.height;
var _scale:Number = 1;
var colWidth:Number = sampleWidth + gap;
var totalWidth:Number;
var columns:Number = 0;
var rows:Number = 0;
do{
rows ++;
columns = Math.ceil(_children.length/rows);
totalWidth = columns * colWidth;
if(rows > Math.sqrt(_children.length) && totalWidth > _width)
_scale = (_width/totalWidth) * _scale;
totalWidth = columns * colWidth * _scale;
}
while(totalWidth > _width)
var top:Number = - ((rows * (sampleHeight + gap)) + (gap *2)) * _scale;
// if it's too big scale it down
var pt:Point = localToGlobal(new Point(0, 0));
if(Math.abs(top) > pt.y/scaleFactor){
_scale = (((pt.y - (bg.height + gap))/scaleFactor)/Math.abs(top)) * _scale;
top = -pt.y/scaleFactor;
}
var col:int = 0;
var row:int = 0;
for each(var button:MenuRenderer in _children)
{
Tweener.addTween(button,{
x : _0x + (((sampleWidth + gap) * _scale) * col),
y : top + (((sampleHeight + gap) * _scale) * row),
scaleX: _scale,
scaleY: _scale,
time: 0.05 * button.order,
transition: "easeInOut"
});
col ++;
if(col == columns)
{
row ++;
col = 0;
}
}
请把你的要求说清楚。最好用文字描述您的算法,并添加图像,这样我们才能真正了解您所写的内容