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