diff --git a/README.md b/README.md index c5063d4..a59442e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ![](https://github.com/HaxeFlixel/haxeflixel.com/blob/dev/content/_static/images/flixel-logos/flixel-ui.png?raw=true) -[flixel](https://github.com/HaxeFlixel/flixel) | [addons](https://github.com/HaxeFlixel/flixel-addons) | [ui](https://github.com/HaxeFlixel/flixel-ui) | [demos](https://github.com/HaxeFlixel/flixel-demos) | [tools](https://github.com/HaxeFlixel/flixel-tools) | [templates](https://github.com/HaxeFlixel/flixel-templates) | [docs](https://github.com/HaxeFlixel/flixel-docs) | [haxeflixel.com](https://github.com/HaxeFlixel/haxeflixel.com) +[flixel](https://github.com/HaxeFlixel/flixel) | [addons](https://github.com/HaxeFlixel/flixel-addons) | [ui](https://github.com/HaxeFlixel/flixel-ui) | [demos](https://github.com/HaxeFlixel/flixel-demos) | [tools](https://github.com/HaxeFlixel/flixel-tools) | [templates](https://github.com/HaxeFlixel/flixel-templates) | [docs](https://github.com/HaxeFlixel/flixel-docs) | [haxeflixel.com](https://github.com/HaxeFlixel/haxeflixel.com) | [türkçe](README_TR.md) [![CI](https://img.shields.io/github/actions/workflow/status/HaxeFlixel/flixel-ui/main.yml?branch=dev&logo=github)](https://github.com/HaxeFlixel/flixel-ui/actions?query=workflow%3ACI) [![Discord](https://img.shields.io/discord/162395145352904705.svg?logo=discord)](https://discordapp.com/invite/rqEBAgF) diff --git a/README_TR.md b/README_TR.md new file mode 100644 index 0000000..78c7284 --- /dev/null +++ b/README_TR.md @@ -0,0 +1,1182 @@ +![](https://github.com/HaxeFlixel/haxeflixel.com/blob/dev/content/_static/images/flixel-logos/flixel-ui.png?raw=true) + +[flixel](https://github.com/HaxeFlixel/flixel) | [eklentiler](https://github.com/HaxeFlixel/flixel-addons) | [ui](https://github.com/HaxeFlixel/flixel-ui) | [demolar](https://github.com/HaxeFlixel/flixel-demos) | [tools](https://github.com/HaxeFlixel/flixel-tools) | [templates](https://github.com/HaxeFlixel/flixel-templates) | [docs](https://github.com/HaxeFlixel/flixel-docs) | [haxeflixel.com](https://github.com/HaxeFlixel/haxeflixel.com) + +[![CI](https://img.shields.io/github/actions/workflow/status/HaxeFlixel/flixel-ui/main.yml?branch=dev&logo=github)](https://github.com/HaxeFlixel/flixel-ui/actions?query=workflow%3ACI) +[![Discord](https://img.shields.io/discord/162395145352904705.svg?logo=discord)](https://discordapp.com/invite/rqEBAgF) +[![Haxelib Sürümü](https://badgen.net/haxelib/v/flixel-ui)](https://lib.haxe.org/p/flixel-ui) +[![Haxelib İndirmeleri](https://badgen.net/haxelib/d/flixel-ui?color=blue)](https://lib.haxe.org/p/flixel-ui) +[![Haxelib Lisansı](https://badgen.net/haxelib/license/flixel-ui)](LICENSE.md) +[![Patreon](https://img.shields.io/badge/donate-patreon-blue.svg)](https://www.patreon.com/haxeflixel) + +---- +# Artık Kullanılmıyor +Flixel-UI için artık özellik geliştirilmeyecek, bakımsa en azda tutulacak. Flixel oyun ve uygulamalarınızın UI ihtiyaçları için [haxeui-flixel](https://github.com/haxeui/haxeui-flixel)'ı kullanmanızı öneriyoruz. + +# Hakkında + +[HaxeFlixel](https://github.com/HaxeFlixel/flixel)'de UI bileşenlerini oluşturmaya ve UI etkinliklerini yönetmeye yarayan bir dizi araç. + +# Başlarken + +## flixel-ui'ı kur: +haxelib'den en son kararlı sürümünü indirin: + + haxelib install flixel-ui + +haxelib'den en son bıçak-kenarı geliştirici sürümünü indirin: + + haxelib install flixel-ui + +## Demo Projesi! + [flixel-demos](http://github.com/HaxeFlixel/flixel-demos) adresinde bir [test projesi](https://haxeflixel.com/demos/RPGInterface/) mevcuttur. Bu projeyi mutlaka inceleyin. XML dosyalarında çok sayıda satır içi dokümantasyon bulunmakta ve bazı karmaşık ve ince özellikler sergilenmektedir. + +flixel-demos'daki test projesinin **[fireTongue](https://github.com/larsiusprime/firetongue)** yerelleştirme kütüphanesini gerektirdiğini lütfen unutmayın. Bu kütüphane şu şekilde yüklenebilir: + + haxelib install firetongue + +Veya github'dan en son geliştirme sürümü için: + + haxelib git firetongue https://github.com/larsiusprime/firetongue + +## Hızlı proje kurulumu +1. openfl varlıklar klasörünüzde bir "xml" yolu oluşturun +2. Her bir durum için bir xml görünüm dosyası oluşturun +3. UI odaklı durumlarınıza flixel.addons.ui.FlxUIState'i genişlettirin. +4. create()'in içinde: + +```` +_xml_id = "state_battle"; //looks for "state_battle.xml" +```` +kısmını ayarlayın. +XML görünümünü doğru ayarladıysanız, flixel-ui o xml dosyasını alacak ve bir _ui:FlxUI üye değişkenini otomatik olarak üretecek. +FlxUI, temel olarak devasa, kalite FLXGroup'tır, o yüzden bu yöntemi kullanmak size bir UI kapsayıcısı ve içindeki tüm UI wigetlerini ayarlayacaktır. + +## El ile widget oluşturma + +XML kurulumu kullanmak yerine doğrudan Haxe kodu ile FlxUI widgetları oluşturabilirsiniz. + +Çalışırken görmek için, [demo projeye](https://github.com/HaxeFlixel/flixel-demos/tree/master/UserInterface/RPGInterface), özellikle [State_CodeTest](https://github.com/HaxeFlixel/flixel-demos/blob/master/UserInterface/RPGInterface/source/State_CodeTest.hx)'e bakın (derlenmiş demoda çalışırken görmek için "Code Test"e tıklayın.) + +Bunu, görsel olarak aynı UI çıktısını veren ancak o sonuçları başarmak için [bu xml görünümünü](https://github.com/HaxeFlixel/flixel-demos/blob/master/UserInterface/RPGInterface/assets/xml/state_default.xml) kullanan [State_DefaultTest](https://github.com/HaxeFlixel/flixel-demos/blob/master/UserInterface/RPGInterface/source/State_DefaultTest.hx) ile karşılaştırabilirsiniz. + +## Widgetlar için görsel varlıklar +### Öntanımlı Varlıklar + +Flixel-UI, temel giydirme için varsayılan bir varlık seti ([FlxUIAssets](https://github.com/HaxeFlixel/flixel-ui/blob/master/flixel/addons/ui/FlxUIAssets.hx)'e ve [varlıklar klasörü](https://github.com/HaxeFlixel/flixel-ui/tree/master/assets)'ne bakın) bulundurur. Eksik veri ve/ya tanımlamalar verirseniz, FlxUI otomatikmen varsayılan varlıklara dönmeyi deneyecektir. + +### Özel Varlıklar + +Kendi varlıklarınızı sunmak isterseniz, [demo projesinde](https://github.com/HaxeFlixel/flixel-demos/tree/master/UserInterface/RPGInterface) gördüğünüz aynı yapıyı kullanarak, kendi projenizin "varlıklar" klasörüne koymanız gerekmektedir. + +---- + +# FlxUI public fonksiyonları + +Genelde FlxUI sınıfında en çok kullanılan public fonksiyonları: + +```haxe +//Initiate from XML Fast object: +//(This is handled automatically in the recommended setup) +load(data:Fast):Void + +//Get some widget: +getAsset(key:String,recursive:Bool=true):FlxBasic + +//Get some group: +getGroup(key:String,recursive:Bool=true):FlxUIGroup + +//Get a text object: +getFlxText(key:String,recursive:Bool=true):FlxText + +//Get a mode definition (xml list of things to show/hide): +getMode(Key:String,recursive:Bool=true):Fast + +//Get a widget definition: +getDefinition(key:String,recursive:Bool=true):Fast +``` +`recursive`in yukarı özyinelemeye referans verdiğini, görünümlere doğru delmeye referans vermediği unutmayın. Eğer bir görünüm etiketi kullanırsanız, `cast getAsset("mylayoutname")`ı ve sonra `getAsset()`i aşağı özyineleme gerçekleştirmek için çağırmalısınız. + +Daha az kullanılan public fonksiyonları: + +```haxe +//These implement the IEventGetter interface for lightweight events +getEvent(name:String, sender:Dynamic, data:Dynamic, ?params:Array):Void +getRequest(name:String, sender:Dynamic, data:Dynamic):Dynamic +//Both are empty - to be defined by the user in extended classes + +//Get, Remove, and Replace assets: +removeAsset(key:String,destroy:Bool=true):FlxBasic +replaceAsset(key:String,replace:FlxBasic,center_x:Bool=true,center_y:Bool=true,destroy_old:Bool=true):FlxBasic + +//Set a mode for the UI: +// mode_id is the mode you want +// target_id is the FlxUI object to target - +// "" for this FlxUI, something else for a child +setMode(mode_id:String,target_id:String=""):Void +``` + +---- + +# XML görünüm temelleri +flixel-ui'daki herşey xml görünüm dosyaları ile hallonulur. İşte çok basit bir örnek: + +```xml + + + + +``` + +Bu, tek çocuğu tek bir sprite olan bir FlxUI nesnesi yaratacaktır. “src” parametresi görüntünün yolunu belirtir - FlxUI bunu OpenFL aracılığıyla nesneyi dahili olarak yüklemek için kullanacaktır: + + +```haxe +Assets.getBitmapData("assets/gfx/ui/title_back.png") +``` + +Gördüğünüz gibi, tüm görüntü kaynağı girişleri iki şeyi varsaymaktadır: +* Format PNG'dir (daha sonra JPG/GIF/etc desteği eklenebilir) +* Belirtilen dizin “assets/gfx/” içindedir + * Farklı bir dizin istiyorsanız, başına aşağıdaki gibi “RAW:” ekleyin: + * ````"RAW:path/to/my/assets/image"```` will resolve as ````"path/to/my/assets/image.png"```` instead of ```"assets/gfx/path/to/my/assets/image.png"``` + +## Etiket türleri +Bir Flixel-UI görünüm dosyasında birkaç basit xml etiket tipleri vardır. + +**Widget**, ``````, ``````, ``````, ``````, ``````, ``````, ``````, ``````, and ``````. + +Hepsinin üzerinden tek tek geçelim. + +-- + +### 1. Widget +Bu, ``````, ``` +``` + +\* Anchor ve Size etiketleri hakkında daha fazla bilgi “Dinamik Konum ve Boyut” bölümünde aşağıya doğru görünür. + +\*\* Parametreler hakkında daha fazla bilgi “Pencere Araçları Listesi ”ndeki Düğme girişi altında bulunabilir. Yalnızca bazı pencere öğeleri parametre kullanır. + +\*\*\* Araç İpuçları hakkında daha fazla bilgi “Araç İpuçları” bölümünde aşağıya doğru görünür. + +-- + +### 2. `````` + +Bu, çok sayıda yeniden kullanılabilir ayrıntıyı benzersiz bir ada sahip ayrı bir etikete yüklemenize ve ardından use_def=“definition_id” niteliğini kullanarak bunları başka bir etikete çağırmanıza olanak tanır. Tanım etiketi, etiket adının “tanım” olması dışında normal bir widget etiketi gibidir. + +Widget etiketinde ayrıntılar sağlarsanız ve aynı zamanda bir tanım kullanırsanız, çakıştıkları her yerde tanımdaki bilgileri geçersiz kılacaktır. Daha fazla ayrıntı için RPG Arayüzü demosuna bakın. + +**Örnek:** + +Çok yaygın bir kullanım, metin widget'ları için yazı tipi tanımlarıdır. Bunu yazmak yerine: +```xml + + +``` + +Bunu yapabilirsiniz: + +```xml + + + +``` + +Bu durumda, her zaman kalın, beyaz ve siyah anahatlı bir metin tanımı oluşturduğumuza dikkat edin. Diyelim ki bunun yerine italik bir metin istiyoruz, ancak yeni bir tanım oluşturmak istemiyoruz: +```xml + +``` + +Yazmak ile aynı şeydir + +```xml + +``` + +“sans10“ tanımındaki tüm değerler devralınır ve ardından ‘italic_text’ etiketinin tüm yerel ayarları uygulanır ve style=”bold“ yerine style=”italic” kullanılır. + +### 3. `````` +Varsayılan etiket, birkaç istisna dışında tıpkı bir tanım gibidir: + +1. Her widget türü için yalnızca bir tane olabilir +2. “name” özelliği, bu varsayılan tanımın ait olduğu widget'ın adı olmalıdır +3. Bu tanımları “use_def” etiketleri ile kullanmazsınız + +Bir widget her yüklendiğinde, o widget türü için ayarlanmış varsayılan bir tanım olup olmadığını kontrol eder. Eğer varsa, varsayılan tanımdaki tüm özellikleri otomatik olarak uygulayacaktır. Bu, “use_def ”ten kullanıcı tarafından sağlanan bir tanım etiketinin herhangi bir özelliğinin ayarlanmasından ÖNCE ve sonuçta EK olarak yapılır. + +Varsayılan etiketlere ``FlxUI.getDefinition`` fonksiyonu aracılığıyla diğer etiketler gibi erişilebilir, bunlar “default:X” anahtarı altında saklanır, burada X tanımladıkları widget'ın adıdır. Yani “default:text” veya “default:button” vb. + +Bunun gibi bir varsayılan tanımlarsınız: + +```xml + +``` + +Bu da yerel ayarlar veya bir use_def bunu geçersiz kılmadığı sürece tüm ````` nesnelerinizi kırmızı yapacaktır. + +### 4. `````` +Include etiketleri, başka bir xml dosyasında saklanan tanımlara referans vermenizi sağlar. Bu, dosya şişkinliğini azaltmak ve organizasyona yardımcı olmak için kolaylık sağlayan bir özelliktir: + +Bu çağırma “some_other_file.xml” dosyasında bulunan tüm tanımları içerecektir: + +```xml + +``` + +*Yalnızca* tanım ve varsayılan etiketler dahil edilecektir. Ayrıca projenize biraz kapsam ekler - dahil edilen bir tanımın yerel olarak tanımlanmış bir tanımla aynı ada sahip olması durumunda, yerel tanım kullanılacaktır. Yalnızca FlxUI'nin tanımınızı yerel olarak bulamaması durumunda, dahil edilenleri kontrol edecektir. + +Bu özyineleme sadece bir seviye derinliktedir. Eğer dahil dosyanıza \ etiketleri koyarsanız, bunlar göz ardı edilecektir. +### 5. `````` +Inject etiketleri ````` etiketlerinden daha doğrudan bir çözümdür. Diğer xml dosyasının adını ```` etiketinde olduğu gibi belirtirsiniz, ancak yalnızca tanımları dahil etmek yerine, ```` etiketini diğer dosyanın içeriğiyle tam anlamıyla değiştirir, tabii ki ```` ve ```` sarmalayıcı etiketleri hariç. Bu adım herhangi bir işlem yapılmadan önce gerçekleşir. + +Bu çağırma “some_other_file.xml” içinde bulunan tüm içeriği enjekte edecektir: +```xml + +``` + +### 6. `````` +Widget'ları atayabileceğiniz bir FlxGroup (özellikle bir FlxUIGroup) oluşturur. Widget etiketlerini \ etiketinin alt xml düğümleri haline getirerek değil, widget etiketindeki “group” niteliğini grubun adına ayarlayarak bir gruba bir şeyler eklediğinizi unutmayın. + +Gruplar, onları tanımladığınız sıraya göre yığılır; dosyanın en üstünde olanlar önce oluşturulur ve böylece daha sonra gelenlerin “altında” yığılır. + +Bir grup etiketi tek bir özellik alır - isim. Gruplarınızı istediğiniz sırada bir yerde tanımlayın, ardından grup niteliğini istediğiniz kimliklere ayarlayarak bunlara widget ekleyin. + +### 7. `````` +Nesneleri dinamik olarak hizalar, ortalar ve/veya birbirlerine göre boşluk bırakır. +Bu, aşağıda kendi bölümünü hak edecek kadar karmaşıktır, belgenin ilerleyen bölümlerinde “Dinamik Konum ve Boyut” altındaki “Hizalama Etiketleri ”ne bakın. + +### 8. `````` +Bu, mevcut bir varlığı daha sonra belgede yeniden konumlandırmanıza olanak tanır. Bu, karmaşık göreli konumlandırma ve diğer kullanımlar için yararlıdır ve aşağıda kendi bölümünü hak edecek kadar karmaşıktır, belgenin ilerleyen bölümlerinde “Dinamik Konum ve Boyut” altındaki “Konum Etiketleri ”ne bakın. + +### 9. `````` +Ana FlxUI içinde bir alt FlxUI nesnesi oluşturur ve içindeki tüm widget'ları ona alt nesne olarak ekler. Bu, örneğin farklı cihazlar ve ekran boyutları için birden fazla düzen oluşturmak istediğinizde özellikle kullanışlıdır. Hata etiketleriyle birleştirildiğinde, ekran boyutuna bağlı olarak en iyi düzeni otomatik olarak hesaplamanıza olanak tanır. + +Bir düzenin yalnızca bir özniteliği, adı ve alt düğümleri vardır. öğesini xml dosyanızın kendi alt bölümü olarak düşünün. Tam teşekküllü bir FlxUI olduğu için, normal dosyaya koyabileceğiniz her şeyin kendi sürümlerine sahip olabilir - yani tanımlar, gruplar, widget'lar, modlar, muhtemelen diğer düzen etiketleri bile (bu test edilmemiştir). + +Bir düzen içinde, kimliklere başvururken kapsamın devreye girdiğini unutmayın. Tanımlar ve nesne başvuruları önce düzenin kapsamına (yani FlxUI nesnesine) bakar ve hiçbir şey bulamazsa, üst FlxUI'da bulmaya çalışır. + +### 10. `````` +Belirli bir düzen için “başarısızlık” koşullarını belirtir, böylece FlxUI, birinin diğerinden daha iyi çalışması durumunda birden fazla düzenden hangisinin seçileceğini belirleyebilir. Örneğin, değişken çözünürlüklü PC'leri ve mobil cihazları aynı anda hedeflemek için kullanışlıdır. + +İşte bir örnek: +```xml + +``` + +“wave_bar.height toplam flixel tuval yüksekliğinin %15'inden büyükse başarısız olur.” + +Nitelikler için yasal değerler: + +* değer - bir yüzde (toplam genişlik/yüksekliğin %'sini çıkarma) veya mutlak bir sayı ile sınırlandırılmıştır. +* özelliği - ``“genişlik”`` ve ``“yükseklik”`` +* karşılaştırma - ```<```,```>```,```<=```,```>=```,```=```,```==``` (```=``` ve ```==``` bu bağlamda eş anlamlıdır) + +FlxUI'niz yüklendikten sonra, getAsset() kullanarak tek tek düzenlerinizi getirebilir ve ardından size başarısızlık kontrollerinin sonucunu veren bu genel özellikleri kontrol edebilirsiniz: + +* **failed:Bool** - bu FlxUI belirtilen kurallara göre “başarısız” mı oldu? +* **failed_by:Float** - eğer öyleyse, ne kadar? + +Bazen birden fazla düzen kurallarınıza göre “başarısız” olur ve en az başarısız olanı seçmek istersiniz. Başarısızlık koşulu “some_thing'in genişliği 100 pikselden büyük” ise, some_thing.width = 176 ise, failed_by 76 olur. + +Başarısızlık koşullarına *yanıt* vermek için kendi kodunuzu yazmanız gerekir. RPG Arayüzü demosunda, biri 4:3 çözünürlükler için daha uygun olan ve diğeri 16:9'da daha iyi çalışan iki savaş düzeni vardır. Bu durum için özel FlxUIState, yükleme sırasında hata koşullarını kontrol edecek ve hangi düzenin en iyi çalıştığına bağlı olarak modu ayarlayacaktır. Modlardan bahsetmişken... + +### 11. `````` +Aralarında geçiş yapabileceğiniz kullanıcı arayüzü “modlarını” belirtir. Örneğin, Defender's Quest'te kayıt yuvalarımız için dört durumumuz vardı - boş, play, new_game+ (Yeni Oyun+ uygun) ve play+ (Yeni Oyun+ başladı). Bu, hangi düğmelerin görünür olduğunu belirlerdi (“Yeni Oyun”, “Oyna”, “Oyna+”, “İçe Aktar”, “Dışa Aktar”). + +“empty” ve ‘play’ modları şu şekilde görünebilir: + +```xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` + +Bir **\** öğesinde çeşitli etiketler mevcuttur. En temel olanları ````` ve ````` etiketleridir ve her biri yalnızca name özelliğini alır. Bunlar sadece “name” niteliğiyle eşleşen widget için “visible” özelliğini açar ve kapatır. Tam liste şu şekildedir: + +* **show** -- öğeyi görünür hale getirir +* **hide** -- öğeyi görünmez yapar +* **align** -- bir pencere öğesi listesinin yerleşimini hizalamanızı sağlar, belgenin ilerleyen bölümlerinde “Hizalama Etiketleri” başlığına bakın. +* **change** -- bir pencere aracının özelliğini değiştirmenizi sağlar, belgenin ilerleyen bölümlerinde “Etiketleri Değiştir” başlığına bakın. +* **position** -- bir pencere öğesini yeniden konumlandırmanızı sağlar, belgenin ilerleyen bölümlerinde “Konum Etiketleri ”ne bakın. +### 12. `````` + +Değiştir etiketi, bir widget oluşturulduktan sonra çeşitli özelliklerini değiştirmenize olanak tanır. “name” niteliğiyle eşleşen widget hedeflenecektir. Aşağıdaki nitelikler kullanılabilir: + +* **text** -- Widget'ın ```text``` özelliğini değiştirin (FlxUIText veya FlxUIInputText). Metin ve/veya etiket içeren nesneler için “bağlam” ve “kod” niteliklerini de ayarlayabilir. \* +* **label** -- Widget'ın ``label`` özelliğini değiştirin (Düğmeler veya metin etiketi olan başka herhangi bir şey için). Ayrıca “context” ve “code” niteliklerini de ayarlayabilir. +* **width** -- Genişliği değiştirin, orijinal widget etiketinde kullandığınızla aynıdır +* **height** -- Yüksekliği değiştirin, orijinal widget etiketinde kullandığınızla aynıdır +* **** (alt düğüm) -- ``params`` özelliğini bu liste olarak değiştirin.\*\* + +\* “Bağlam” ve “kod” özellikleri hakkında daha fazla bilgi için “Pencere Araçları Listesi” altındaki “Düğme” girişine bakın. +---- + +# Widgetların Listesi + +| Name | Class | Tag | +|------|-------|-----| +|**Image**, vanilla|FlxUISprite|``````| +|**Image**, 9-slice/chrome|FlxUI9SliceSprite|```<9slicesprite>``` or ``````| +|**Region**|FlxUIRegion|``````| +|**Button**, vanilla|FlxUIButton|``` +``` + +İstediğiniz kadar ````` etiketi ekleyebilirsiniz. Bu düğmeye tıkladığınızda, varsayılan olarak FlxUI'nin dahili genel statik olay geri çağrısını çağıracaktır: + +```haxe +FlxUI.event(CLICK_EVENT, this, null, params); +``` + +Bu da, bu ``FlxUI`` nesnesinin “sahibi” olan ``IEventGetter`` üzerinde ``getEvent()`` işlevini çağıracaktır. Varsayılan kurulumda, bu sizin ``FlxUIState`` nesnenizdir. Bu yüzden bu fonksiyonu ``FlxUIState`` nesnenizde genişletin: + +```haxe +getEvent(name:String, sender:Dynamic, data:Dynamic, ?params:Array):Void +``` + +“Gönderen” parametresi, olayı başlatan widget olacaktır - bu durumda düğme. Bir ``FlxUIButton`` tıklandığında, diğer parametreler şöyle olacaktır: + +* **event name**: "click\_button" (ieörneğin, ```FlxUITypedButton.CLICK_EVENT```) +* **data**: ```null``` +* **params**: bir ```Array``` tanımladığınız tüm parametreleri içerir. + +Diğer bazı interaktif widget'lar parametre alabilir ve temelde aynı şekilde çalışırlar. + +### 4.2 Düğme Grafikleri +Düğmeler için grafikler biraz karmaşık olabilir. Belirtmek istediğiniz her düğme durumu için bir tane olmak üzere birden fazla grafik etiketi koyabilir veya tüm durumları dikey olarak yığılmış tek bir görüntüde birleştiren ve FlxUIButton'dan tek tek kareleri kendisinin sıralamasını isteyen “all” adında bir tane koyabilirsiniz. + +Sistem bazen görüntüye göre çerçeve boyutunun ne olması gerektiğini çıkarabilir ve genişlik/yükseklik ayarlanmamıştır, ancak statik olarak boyutlandırılmışlarsa ve 9 dilimli ölçekleme kullanmıyorsanız genişlik/yükseklik ile açık olmak yardımcı olur. + +Statik, bireysel çerçeveler: + +```xml + + + + + +``` + +9 dilimli ölçeklendirme, ayrı kareler: + +```xml + + + + + +``` + +9 dilimli ölçeklendirme, hepsi bir arada çerçeve: + +```xml + + + +``` + +Çerçeveleri tek tek yaparsanız ve birini atlarsanız ne olacağından %100 emin değilim, ancak sanırım diğerlerinden birini bir tür “akıllı” şekilde kopyalayacak şekilde ayarladım. Yine, muğlak olmak ve sistemin tahmin etmesini sağlamak yerine ne istediğiniz konusunda açık olmak her zaman en iyisidir. + +### 4.3 Düğme Metni +Bir düğmedeki metnin neye benzediğini belirtmek için bir ```` alt düğümü oluşturursunuz. +Tüm özellikleri burada belirtebilir veya bir tanım kullanabilirsiniz. Bir düğmenin içindeki `````` düğümleri için birkaç özel husus vardır. + +Ana “color” özelliği (onaltılık biçim, “0xffffff”) ana etiket rengidir + +Diğer durumlar için renk belirtmek isterseniz, her durum için `````` etiketinin içine ```` etiketlerini eklersiniz: + +```xml + +```` + + +## 5. Button, Toggle (FlxUIButton) `````` + +Geçiş düğmeleri normal düğmelerle aynı sınıftan yapılır, ``FlxUIButton``. + +Geçiş düğmeleri, geçiş yapıldığında yukarı/aşağı/aşağı için 3 ve geçiş yapılmadığında yukarı/aşağı/aşağı için 3 olmak üzere 6 duruma sahip olmaları bakımından farklıdır. Varsayılan olarak, yeni yüklenmiş bir geçiş düğmesinin “toggle” değeri yanlıştır. + +Geçiş düğmeleri normal bir düğmeden daha fazla grafiğe ihtiyaç duyar. Bunu yapmak için, hem normal hem de değiştirilmemiş durumlar için grafik etiketleri sağlamanız gerekir. Geçişli `````` etiketleri aynıdır, sadece ek bir toggle=“true” niteliğine ihtiyaç duyarlar: + +```xml + + + + + + + + + + + + + + + +``` + +Elbette, dikey olarak istiflenmiş 6 görüntü içeren tek bir varlık oluşturursanız, kendinize biraz yer kazandırabilirsiniz: + +```xml + + + + + + + +``` + +Dikey bir 9 dilimli varlık yığını veya normal statik boyutlu varlıklar oluşturabileceğinizi unutmayın; sistem bunlardan birini kullanabilir. + +## 6. Onay kutusu (FlxUICheckBox) `````` + +Onay Kutusu, üç nesne içeren bir FlxUIGroup'tur: bir “kutu” görüntüsü, bir “onay” görüntüsü ve bir etiket. + +Öznitelikler: +* ```x```/```y```, ```use_def```, ```group``` +* ```check_src``` - onay işareti için kaynak görüntü (9-bölünemez, boyutlandırılamaz) +* ```box_src``` - kutu için kaynak görüntü (9-bölünemez, boyutlandırılamaz) +* ```text_x``` / ```text_y``` - etiket ofsetleri +* ```label``` - gösterecek yazılar +* ```context``` - FireTongue bağlamı (bkz. Button) +* ```code``` - Kod formatlama (bkz. Button) +* ```checked``` - (boolean) dolu mu, değil mi? +* ```label_width``` - etiket genişliği + +Child tags: +* `````` - ``` +``` + +Bu araç ipucu her iki metin alanını da kullanır: + +```xml +