Açı alanında değer olarak sayı, metin olarak ise dize depolanır. Değeri 0 ile 360 arasında bir sayıdır (bu aralık değiştirilebilir), metni ise düzenleyicisine girilen herhangi bir dize olabilir.
Açı alanı
Düzenleyicili açı alanı
Daraltılmış açı alanı
içerik üretimi
JSON
{
"type": "example_angle",
"message0": "angle: %1",
"args0": [
{
"type": "field_angle",
"name": "FIELDNAME",
"angle": 90
}
]
}
JavaScript
Blockly.Blocks['example_angle'] = {
init: function() {
this.appendDummyInput()
.appendField('angle:')
.appendField(new Blockly.FieldAngle(90), 'FIELDNAME');
}
};
Açı oluşturucu, isteğe bağlı bir değer ve isteğe bağlı bir validator alır. Herhangi bir değer verilmezse veya belirtilen değer bir sayıya dönüştürülmezse varsayılan değer olarak sıfır kullanılır.
Serileştirme
JSON
Bir açı alanı için JSON şöyle görünür:
{
"fields": {
"FIELDNAME": 0
}
}
Burada FIELDNAME
, bir açı alanına referans veren bir dizedir. Değer ise alana uygulanacak değerdir. Değer, oluşturucu değeriyle aynı kuralları izler.
XML
Bir açı alanı için XML şöyle görünür:
<field name="FIELDNAME">0</field>
Burada name
özelliği, bir açı alanına referans veren bir dize içerir ve iç metin alana uygulanacak değerdir. İç metin değeri, yapıcı değeriyle aynı kuralları izler.
Özelleştirme
Tutturma
Blockly.FieldAngle.ROUND
özelliği, fare kullanırken açı seçicinin "tutacağı" değeri değiştirir.
ROUND
değeri 70 olan bir örnek:
ROUND
özelliğinin varsayılan değeri 15'tir. Yapışmayı devre dışı bırakmak istiyorsanız
bu değeri 0 olarak ayarlayın.
Bu global bir özellik olduğu için ayarlandığında tüm açı alanlarını değiştirir.
Yön belirleme
Blockly.FieldAngle.CLOCKWISE
özelliği, açı değerinin artmasına neden olacak yönü değiştirir. Bu değerin true
olarak ayarlanması, seçici saat yönünde hareket ettirilirken açının artmasını sağlar. false
olarak ayarlanması, saat yönünün tersine hareket ettirildiğinde açının artmasını sağlar.
CLOCKWISE doğru değerine ayarlandı
CLOCKWISE yanlış değerine ayarlandı
CLOCKWISE
özelliği varsayılan olarak false
değerine ayarlanır. Bu da saat yönünün tersine hareket etmenin açıyı artıracağı anlamına gelir.
Bu global bir özellik olduğu için ayarlandığında tüm açı alanlarını değiştirir.
Sıfır konum
Blockly.FieldAngle.OFFSET
özelliği, 0 derecenin bulunduğu yeri ayarlar. Varsayılan olarak sıfır derece, pozitif x ekseniyle (sağa doğru) hizalanır ve daha sonra bu özellik, bu konum için belirli bir ölçüde "değişiklikler" yapar.
OFFSET
özelliği varsayılan olarak 0 değerine ayarlanır. Diğer bir deyişle, sıfır derece pozitif x ekseniyle hizalanır.
Bu global bir özellik olduğu için ayarlandığında tüm açı alanlarını değiştirir.
Aralık
Blockly.FieldAngle.WRAP
özelliği, değer aralığını ayarlar.
Değer aralığı (-360 + WRAP, WRAP)
değerine eşit. Buna göre, WRAP
değeri 360 olarak (0, 359.9)
, WRAP
değeri 180 olduğunda (-179.9, 180)
aralığı verilir.
WRAP
özelliği varsayılan olarak 360 değerine ayarlanır, yani alan aralığı (0,
359.9)
olur.
Bu global bir özellik olduğu için ayarlandığında tüm açı alanlarını değiştirir.
Açı seçici boyutu
Blockly.FieldAngle.HALF
özelliği, açı seçicinin boyutunu değiştirir. Bu değer, dış dairenin yarıçapını piksel cinsinden tanımlar.
HALF
özelliğinin varsayılan değeri 50'dir.
Bu global bir özellik olduğu için ayarlandığında tüm açı alanlarını değiştirir.
Ortak modlar
Yön ve sıfır konum, bazı eğlenceli kombinasyonlar oluşturmak için birlikte kullanılabilir. Sık karşılaşılan iki durum şunlardır:
Açıölçer
0 derece sağ, 90 derece yukarı.
Blockly.FieldAngle.CLOCKWISE = false;
Blockly.FieldAngle.OFFSET = 0;
Pusula
0 derece yukarı, 90 derece sağ.
Blockly.FieldAngle.CLOCKWISE = true;
Blockly.FieldAngle.OFFSET = 90;
Açı doğrulayıcı oluşturma
Açı alanının değeri sayıdır. Bu nedenle, tüm doğrulayıcılar bir sayı kabul etmeli ve bir sayı (null
veya undefined
) döndürmelidir.
Değeri 30'un katı olmaya zorlayan bir doğrulayıcı örneğini burada bulabilirsiniz:
function(newValue) {
return Math.round(newValue / 30) * 30;
}
Açı alanının [ROUND](#snapping)
özelliğinin hâlâ 15'e ayarlandığına, dolayısıyla alanın grafik öğelerinde 30 yerine 15'in katlarını gösterdiğine dikkat edin.