1

我有几个不同的视图和屏幕,它们都使用了 Group、VGroup 或 HGroup 的一些变体,并且要正确布置它们,我发现自己不得不再次编写和重写

gap="0"

或使用 TileLayout

horizontalGap="0" verticalGap="0"

让它们全部正确布局,以及我想要的方式。目前,我看到的能够将它们全局设置为零的唯一选择是设置一个重型全局监听器,即。

protected function globalListener():void
{
    addEventListener(Event.ADDED_TO_STAGE, onAddedToStage, true);
}

protected function onAddedToStage(event:Event):void
{
    var g:Group = event.target as Group; 
    if(g)
    {
        if( g.layout.hasOwnProperty('gap') )
        {
            g.layout['gap'] = 0;
        }
        else
        {
            var l:TileLayout = g.layout as TileLayout;
            if(l)
            {
                l.verticalGap = l.horizontalGap = 0;
            }
        }
    }
}

或使用这些布局创建一个新包,并在其中添加 gap=0,

package overrides.gapless
{
    import spark.components.HGroup;

    public class HGroup extends spark.components.HGroup
    {
        public function HGroup()
        {
            gap = 0;
        }
    }
}

package overrides.gapless
{
    import spark.layouts.TileLayout;

    public class TileLayout extends spark.layouts.TileLayout
    {
        public function TileLayout()
        {
            horizontalGap = 0;
            verticalGap = 0;
        }
    }
}

之类的。我检查了相关文件的源代码(主要是 VerticalLayout、Horizo​​ntalLayout 和 TileLayout)并且可以看到硬编码的值,但仍然不能完全相信没有其他方法可以做到这一点。

我最近才开始研究 Flex,并且喜欢它的蒙皮选项,但对这个有点迷惑。

感谢您提供有关如何执行此操作的所有帮助。

4

0 回答 0