Actionscript 3 空间中的最佳瓷砖尺寸/布局

Actionscript 3 空间中的最佳瓷砖尺寸/布局,actionscript-3,math,Actionscript 3,Math,这是一个air应用程序,但我相信这是其他东西的常见问题 我一直在努力找出在网格中调整瓷砖大小的最佳方法。我有一些类似下面的代码,这类代码可以工作,但我遇到的问题是,整个东西在小屏幕上的比例太小了 我正试图找到一种最佳的方法来缩放一些瓷砖,使它们适合屏幕,并保持尽可能大的尺寸。我可以实现滚动,但我想避免 是否有一种不那么有效/更有效的方式来排列和缩放瓷砖以适应空间 var scaleFactor:Number = Model.appScale * this.scaleX;

这是一个air应用程序,但我相信这是其他东西的常见问题

我一直在努力找出在网格中调整瓷砖大小的最佳方法。我有一些类似下面的代码,这类代码可以工作,但我遇到的问题是,整个东西在小屏幕上的比例太小了

我正试图找到一种最佳的方法来缩放一些瓷砖,使它们适合屏幕,并保持尽可能大的尺寸。我可以实现滚动,但我想避免

是否有一种不那么有效/更有效的方式来排列和缩放瓷砖以适应空间

        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;
            }

        }

请把你的要求说清楚。最好用文字描述您的算法,并添加图像,这样我们才能真正了解您所写的内容