Laya FairyGui系列十 關(guān)聯(lián)系統(tǒng)

游戲開發(fā)過程做自適應(yīng)時需要UI實現(xiàn)自動布局而不用我們通過代碼一一控制。FGUI的關(guān)聯(lián)系統(tǒng)實現(xiàn)了自動布局。它的自動布局比LayaIDE中的自動布局要強大的多。使用過LayaIDE應(yīng)該知道它的做法是通過設(shè)置節(jié)點的錨點和父節(jié)點的距離,且只有上下左右救巷,水平居中,垂直居中這幾種布局方式句柠。
FGUI的關(guān)聯(lián)系統(tǒng)可以設(shè)置一個節(jié)點相對于任意節(jié)點的相對位置,且布局方式也更加多樣化棒假。

關(guān)聯(lián)系統(tǒng)

  • 我們在舞臺中點擊選中需要設(shè)置布局的節(jié)點溯职,在右側(cè)屬性欄可以看到關(guān)聯(lián)屬性面板
  • 點擊輸入框打開如下窗口設(shè)置相對的節(jié)點,然后點擊舞臺中的任意一個節(jié)點帽哑,再點擊“完成”就設(shè)置完成了谜酒。如果點擊舞臺空白區(qū)域,設(shè)置成父節(jié)點(容器本身)妻枕。


  • 設(shè)置完相對節(jié)點后可以選擇布局方式
//  左->左
static Left_Left: number;
//  左->中
static Left_Center: number;
//  左->右
static Left_Right: number;
//  左右居中
static Center_Center: number;
//  右->左
static Right_Left: number;
//  右->中
static Right_Center: number;
//  右->右
static Right_Right: number;
//  頂->頂
static Top_Top: number;
//  頂->中
static Top_Middle: number;
//  頂->底
static Top_Bottom: number;
//上下居中
static Middle_Middle: number;
// 底->頂
static Bottom_Top: number;
// 底->中
static Bottom_Middle: number;
// 底->底
static Bottom_Bottom: number;
// 寬->寬
static Width: number;
// 高->高
static Height: number;
// 左延展->左
static LeftExt_Left: number;
// 左延展->右
static LeftExt_Right: number;
// 右延展->左
static RightExt_Left: number;
// 右延展->右
static RightExt_Right: number;
// 頂延展->頂
static TopExt_Top: number;
// 頂延展->底
static TopExt_Bottom: number;
// 底延展->頂
static BottomExt_Top: number;
// 底延展->底
static BottomExt_Bottom: number;
// 寬->寬,高->高
static Size: number;
  • 當(dāng)我們再動態(tài)創(chuàng)建UI時可能需要動態(tài)添加布局信息
        // 訪問節(jié)點的布局信息
        console.log(aObject_0.relations);
        // 添加布局信息
        // 參數(shù): 相對節(jié)點僻族,布局方式
        aObject_0.addRelation(aObject_1,fairygui.RelationType.Left_Left);
        aObject_0.addRelation(aObject_1,fairygui.RelationType.Top_Top,false);
        // 刪除布局信息
        // 刪除與指定節(jié)點的指定布局信息
        aObject_0.removeRelation(aObject_1,fairygui.RelationType.Top_Top);
        // 默認刪除與指定節(jié)點的第一種布局信息
        aObject_0.removeRelation(aObject_1);
        // 刪除與指定節(jié)點的所有布局信息
        aObject_0.relations.clearFor(aObject_1);
        // 刪除與所有節(jié)點的布局信息
        aObject_0.relations.clearAll();
        // 賦值指定節(jié)點的所有布局信息
        aObject_0.relations.copyFrom(aObject_1.relations);

布局信息

布局信息進行分類說明,每一類中也只說明一種屡谐,其他的效果類似述么,使用的時候做下實驗即可。

  • 左->左 左->中 左->右 左右居中 右->左 右->中 右->右 頂->頂 頂->中 頂->底 上下居中 底->頂 底->中 底->底
    這幾種布局方式很相似也很好理解愕掏,假如A的指定位置(比如左)距離B的指定位置(比如左)的距離為X度秘。當(dāng)A的位置移動時關(guān)聯(lián)系統(tǒng)為了保持A的指定位置與B的指定位置的距離保持一致會動態(tài)調(diào)整B的位置。

  • 左延展->左 左延展->右 右延展->左 右延展->右 頂延展->頂 頂延展->底 底延展->頂 底延展->底



    假設(shè)綠色方塊和和白色方塊設(shè)置左延展->左饵撑,當(dāng)白色的方塊向左移動時綠色的方塊右側(cè)保持不動剑梳,左側(cè)依然保持和白色方塊左側(cè)固定距離(綠色方塊被拉伸)。


    關(guān)聯(lián)4.gif
  • 寬->寬,高->高


假設(shè)白色圖形和文本框設(shè)置寬->寬滑潘,高->高垢乙。文本設(shè)置自動大小為寬度和高度。隨著文本內(nèi)容的增加白色圖形的寬高會自動增加



我們再設(shè)計全屏界面時背景圖通常會設(shè)置相對父節(jié)點寬->寬语卤,高->高追逮。但是有時我們的背景圖尺寸時小于設(shè)計的屏幕尺寸酪刀,這時我們需要先將背景圖尺寸調(diào)整為設(shè)計屏幕尺寸再設(shè)置布局。因為寬->寬羊壹,高->高的布局信息不管圖片大小蓖宦,只是上下左右變化時保持固定距離。

  • 百分比

    上面我們說到的距離都是絕對的像素距離油猫,某些情況下我們需要設(shè)置百分比稠茂,再設(shè)置布局信息時可以勾選使用百分比
    使用代碼動態(tài)設(shè)置布局信息時,第三個參數(shù)可以設(shè)置使用百分比
// 添加布局信息
// 參數(shù): 相對節(jié)點情妖,布局方式睬关,是否使用百分比
    aObject_0.addRelation(aObject_1,fairygui.RelationType.Left_Left,true);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市毡证,隨后出現(xiàn)的幾起案子电爹,更是在濱河造成了極大的恐慌,老刑警劉巖料睛,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丐箩,死亡現(xiàn)場離奇詭異,居然都是意外死亡恤煞,警方通過查閱死者的電腦和手機屎勘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來居扒,“玉大人概漱,你說我怎么就攤上這事∠参梗” “怎么了瓤摧?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長玉吁。 經(jīng)常有香客問我照弥,道長,這世上最難降的妖魔是什么诈茧? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任产喉,我火速辦了婚禮,結(jié)果婚禮上敢会,老公的妹妹穿的比我還像新娘曾沈。我一直安慰自己,他們只是感情好鸥昏,可當(dāng)我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布塞俱。 她就那樣靜靜地躺著,像睡著了一般吏垮。 火紅的嫁衣襯著肌膚如雪障涯。 梳的紋絲不亂的頭發(fā)上罐旗,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天,我揣著相機與錄音唯蝶,去河邊找鬼九秀。 笑死,一個胖子當(dāng)著我的面吹牛粘我,可吹牛的內(nèi)容都是我干的鼓蜒。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼征字,長吁一口氣:“原來是場噩夢啊……” “哼都弹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起匙姜,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤畅厢,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后氮昧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體框杜,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年袖肥,在試婚紗的時候發(fā)現(xiàn)自己被綠了霸琴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡昭伸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出澎迎,到底是詐尸還是另有隱情庐杨,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布夹供,位于F島的核電站灵份,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏哮洽。R本人自食惡果不足惜填渠,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鸟辅。 院中可真熱鬧氛什,春花似錦、人聲如沸匪凉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽再层。三九已至贸铜,卻和暖如春堡纬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蒿秦。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工烤镐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人棍鳖。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓炮叶,卻偏偏與公主長得像,于是被迫代替她去往敵國和親鹊杖。 傳聞我的和親對象是個殘疾皇子悴灵,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,834評論 2 345