曾經(jīng)非常推崇starling宣决,后來因為沒有一套完成的工作流(主要是沒有UI設(shè)計器)蘸劈,平臺sdk接入困難(蛋疼的ane),又缺少第三方強(qiáng)有力的支持(至少天朝這樣)而果斷放棄了尊沸。威沫。
adobe官方各種頹廢消沉的今天,看到starling依然在堅持更新(2.0 final)洼专,看到開源社區(qū)(github)里不斷出現(xiàn)的starling三方產(chǎn)品棒掠,尤其是看到starlingbuilder這記重彈,突然又燃起了新的希望屁商。
廣大開發(fā)者的智慧是無窮的句柠,萬一哪天starling完整的解決方案成型了呢^_^
description:
User Interface Editor for Starling (Chinese Guide)
tag:
GUI, editor, user interface
作者:
Johann Huang
描述:
Starling用戶界面編輯器
依賴:
Adobe AIR, Starling Framework
編輯器下載:
http://starlingbuilder.github.io/download.html
編輯器演示:
http://v.youku.com/v_show/id_XMTQ3MzA0MDYwNA==.html?from=s1.8-1-1.2
引擎源碼:
https://github.com/yuhengh/starling-builder-engine
編輯器源碼:
https://github.com/yuhengh/starling-builder-editor
API參考:
http://starlingbuilder.github.io/api
QQ群:
387362873
概述
Starling Builder是基于Starling的開源用戶界面編輯器
它建立在Starling/Feathers UI框架之上. 你可以在Starling Builder編輯你的用戶界面,然后導(dǎo)出成JSON的布局文件,最后直接在游戲中創(chuàng)建starling顯示對象。它提供了一個通過所見即所得的方式快速創(chuàng)建你的游戲界面。
Starling Builder分兩部分:引擎和編輯器溯职。引擎模塊負(fù)責(zé)將布局文件轉(zhuǎn)換成顯示對象精盅。游戲和編輯器依賴于它。編輯器是一個創(chuàng)建UI布局的獨立程序谜酒。
Starling Builder支持以下特性:
創(chuàng)建和編輯 Starling/Feathers/自定義 UI元素
通過編輯配置文件來定制組件和屬性
支持嵌套組件(通過Sprite/ LayoutGroup ScrollContainer等等)叹俏。
支持嵌套布局(布局包含另一個布局)
支持自定義類(在編輯器里創(chuàng)建一個通用的類,在游戲創(chuàng)建另一個自定義類)
支持本地化和切換語言
如何創(chuàng)建UI
當(dāng)你第一次編輯器運行,你需要選擇一個工作區(qū)僻族。默認(rèn)情況下,編輯器將從工作區(qū)的textures和fonts文件夾中加載所有資源粘驰。你可以把一些預(yù)定義的swf運行時庫放在libs文件夾。(更多信息) 選擇工作區(qū)后,如果這些文件夾不存在,編輯器將為你創(chuàng)建空的文件夾述么。
你可以從http://starlingbuilder.github.io/download.html下載最新的編輯器安裝文件(starling-builder.air)和演示工作空間(demo_workspace.zip)蝌数。編輯器有兩個版本(Starling 1.x和Starling 2.x),你需要確保下載的版本和項目使用的Starling版本一致度秘。
如果要運行演示顶伞,你可以將其設(shè)置為你的工作區(qū)文件夾。演示布局文件位于layout 文件夾剑梳,你可以把布局文件保存在任意位置唆貌。
當(dāng)你完成編輯一個布局文件,您可以點擊測試按鈕來測試ui。您測試的ui是一個根據(jù)布局文件重新創(chuàng)建的顯示對象列表垢乙。你可以在編輯模式和游戲模式下測試它锨咙,兩種模式的運行效果可能會根據(jù)你的設(shè)置略顯不同。(更多信息)
如何在游戲中使用它
為了在游戲中使用Starling Builder追逮,你只需要復(fù)制引擎代碼(starlingbuilder.engine.*) 資產(chǎn)和布局文件到你的游戲里酪刀。
建立一個UIBuilder實例,在構(gòu)造函數(shù)里傳進(jìn)AssetMediator钮孵。 (AssetMediator是一個實現(xiàn)了IAssetMediator接口的類骂倘,它定義了所有UIBuilder需要從游戲里獲取的接口,你可以使用默認(rèn)的DefaultAssetMediator或者擴(kuò)展它)油猫。
然后,調(diào)用UIBuilder.create方法讀取布局文件柠偶。這個方法會為你生成Starling顯示對象情妖,就這么簡單!
你可以通過getChildByName獲取你想要的用戶界面元素并作相應(yīng)改變诱担。
uiBuilder =newUIBuilder(newDefaultAssetMediator(assetManager));
vardata:Object= JSON.parse(newEmbeddedLayouts.mail_popup());
varsprite:Sprite= uiBuilder.create(data)asSprite;
addChild(sprite);
你還可以在調(diào)用create方法時傳入可選的binder對象, 這樣布局文件里所有以下劃線開頭的UI組件將會自動綁定到binder對象的同名屬性上毡证。 這樣你就可以移除所有類似這樣獲取引用的代碼 _okButton = _root.getChildByName(“_okButton”) as Button;
public class MailPopup extends?Sprite{//auto-bind variables
????public var _root:Sprite;
????public var _okButton:Button;
????public function ExamplePopup(){
????????vardata:Object= JSON.parse(newEmbeddedLayouts.mail_popup());
????????addChild(uiBuilder.create(data,true,this));
????}
}
入門篇
進(jìn)階篇
Starling Builder 移植到 Haxe/OpenFL
擴(kuò)展篇
更多信息
官方Starling網(wǎng)站博客文章Introducing Starling Builder
Flash Online Conference 13講座Extending Starling Builder