Bu belgede, bir bloğun farklı bölümleri ele alınmaktadır.
Bağlantılar
Bağlantılar, blokların nereye ve ne tür bloklara bağlanabileceğini tanımlar.
Dört tür bağlantı vardır:
Bağlantı türü | Resim |
---|---|
Çıkış bağlantısı | ![]() |
Giriş bağlantısı | ![]() |
Önceki bağlantı | ![]() |
Sonraki bağlantı | ![]() |
Çıkış bağlantıları ve giriş bağlantıları birbirine bağlanabilir. Ayrıca sonraki bağlantılar ve önceki bağlantılar da birbirine bağlanabilir. Bağlantı kontrolleri ile bağlantıları daha da kısıtlayabilirsiniz.
Özel bir oluşturucu kullanarak bağlantıların şekillerini özelleştirebilirsiniz.
Üst düzey bağlantılar
Bloklarda, kullanımı isteğe bağlı olan üç bağlantı bulunur.
Bir blokta, blokun ön kenarında erkek yapboz bağlayıcı olarak gösterilen tek bir çıkış bağlantısı olabilir. Çıkış bağlantısı, bir bloğun değerini (ifade) başka bir bloğa aktarır. Çıkış bağlantısı olan bir bloğa değer bloğu denir.
Bir blok, üst kısmında önceki bağlantıyı (çentik olarak gösterilir) ve alt kısmında sonraki bağlantıyı (sekme olarak gösterilir) içerebilir. Bu bloklar, bir ifade dizisini temsil edecek şekilde dikey olarak üst üste yerleştirilebilir. Çıkış bağlantısı olmayan bir bloğa ifade bloğu denir ve genellikle hem önceki hem de sonraki bağlantıları vardır.
Daha fazla bilgi için Üst düzey bağlantılar başlıklı makaleyi inceleyin.
Alanlar
Alanlar, bir bloktaki kullanıcı arayüzü öğelerinin çoğunu tanımlar. Bunlar arasında dizeler ve sayılar gibi değişmez veriler için dize etiketleri, açılır listeler, onay kutuları, resimler ve girişler yer alır. Örneğin, bu döngü bloğunda etiket alanları, bir açılır liste alanı ve sayı alanları kullanılmaktadır.
Blockly, metin girişleri, renk seçiciler ve resimler gibi çeşitli yerleşik alanlar sağlar. Kendi alanlarınızı da oluşturabilirsiniz.
Daha fazla bilgi için Alanlar konusuna bakın.
Girişler
Girişler, alanlar ve bağlantılar için kapsayıcılardır. Bloklar, girişleri tuğla gibi bir veya daha fazla satırda oluşturularak oluşturulur.
Dört farklı giriş türü vardır. Bunların tümü alan (etiketler dahil) içerebilir ve ikisi tek bir bağlantı içerir. Ayrıca, özel oluşturmayı destekleyen özel girişler de oluşturabilirsiniz.
Giriş türü | Bağlantı türü | Resim |
---|---|---|
Sahte giriş | Yok | ![]() |
Satır sonu girişi | Yok | ![]() |
Değer girişi | Giriş bağlantısı | ![]() |
Ekstre girişi | Sonraki bağlantı | ![]() |
Bu girişleri bir dizi örnekle açıklayacağız. Bir bloğu oluşturan girişleri, bağlantıları ve alanları tanımlama hakkında bilgi edinmek için JSON'da blok yapısı ve JavaScript'te blok yapısı başlıklı makaleleri inceleyin.
Sahte girişler
Doldurma girişi yalnızca alanların kapsayıcısıdır ve bağlantısı yoktur. Örneğin, aşağıdaki sayı bloğunda tek bir sayı alanı içeren tek bir sahte giriş vardır.
Daha karmaşık bir örnek olarak, iki sayıyı toplayan bir bloğu ele alalım. Bu, üç alanlı (sayı, etiket, sayı) tek bir sahte girişten oluşturulabilir:
veya her biri tek bir alan içeren üç sahte giriş:
Satır sonu girişleri
Blockly, tüm girişleri tek bir satırda mı yoksa her girişi kendi satırında mı oluşturacağına karar vermek için sezgisel yöntemler kullanır. Bir girişin yeni bir satır başlatmasını istiyorsanız önceki giriş olarak satır sonu girişi kullanın.
Sahte girişler gibi, satır sonu girişleri de alan içerebilir ancak bağlantısı yoktur. Örneğin, burada iki alanlı bir satır sonu girişi ve bir alanlı bir sahte girişten oluşturulmuş toplama bloğu yer almaktadır. Satır sonu girişi, sahte girişin yeni bir satırda oluşturulmasını zorlar.
Değer girişleri
Alanlar, kabul edebilecekleri değerler açısından sınırlıdır. Örneğin, sayı alanlarına yalnızca sayı girilebilir. Peki iki değişkeni birlikte eklemek isterseniz ne yapmanız gerekir? Veya bir prosedür çağrısının sonucunu farklı bir hesaplamanın sonucuna mı eklemek istiyorsunuz? Bu sorunu çözmek için alanlar yerine giriş bağlantılarını kullanın. Bu sayede kullanıcılar, değer bloklarını giriş değeri olarak kullanabilir.
Değer girişi, sıfır veya daha fazla alan içerir ve giriş bağlantısıyla sona erer. Aşağıdaki blok, toplama bloğundaki sayı alanlarını giriş bağlantılarıyla değiştirir. İki değer girişinden oluşturulur. Birincisi herhangi bir alan içermez, ikincisi ise bir etiket alanı içerir. Her ikisi de giriş bağlantılarıyla sonlanır.
Ekstre girişleri
Son giriş türü, sıfır veya daha fazla alan içeren ve bir sonraki bağlantıyla sona eren ifade girişidir. Bir sonraki bağlantı, ifade bloklarından oluşan bir yığını bloğunuzun içine yerleştirmenize olanak tanır. Örneğin, aşağıdaki tekrar bloğunu ele alalım. Bu bloğun ikinci satırı, tek etiket alanına ve sonraki bağlantıya sahip bir ifade girişinden oluşur.
İfade girişleri her zaman kendi satırlarında oluşturulur. Bunu, ilk satırında değer girişi, sonraki iki satırında ise ifade girişleri bulunan aşağıdaki if-then-else bloğunda görebilirsiniz.
Satır içi ve harici girişler
Girişler satır içi veya harici olarak oluşturulabilir. Bu, değer girişleri için bağlayıcıların blok içinde (satır içi) mi yoksa dış kenarda (harici) mi oluşturulacağını ve girişlerin aynı satırda mı yoksa farklı satırlarda mı oluşturulacağını kontrol eder.
Özel bir blok oluşturduğunuzda hangisini kullanacağınızı belirtebilir veya Blockly'nin sizin için karar vermesine izin verebilirsiniz. Daha fazla bilgi için Satır içi ve harici girişler başlıklı makaleyi inceleyin.
Oynamaya başlayın.
Girişler, alanlar ve bağlantılar hakkında bilgi edinmenin en iyi yolu, Blockly Geliştirici Araçları'nda bloklar oluşturmak ve inputs
açılır listesi için farklı ayarlar seçmektir (automatic
, external
, inline
).
Simgeler
Girişler, bağlantılar ve alanlara ek olarak bloklar bir veya daha fazla simgeye sahip olabilir. Bunlar, uyarıları gösterme, blok düzeyinde yorumlar girme veya mutasyon aracı kullanıcı arayüzünü gösterme gibi çeşitli amaçlarla kullanılır. Örneğin, burada yorum simgesi ve ilişkili düzenleyicisi olan bir blok gösterilmektedir.
Daha fazla bilgi için Icons konusuna bakın.
Bloklar ve JavaScript nesneleri
Bloklar, girişler, bağlantılar, alanlar ve simgeler JavaScript nesneleridir.
Blockly bileşeni | Temel sınıf | Alt sınıflar |
---|---|---|
Engelle | Block |
BlockSvg |
Giriş | Input |
DummyInput |
EndRowInput |
||
ValueInput |
||
StatementInput |
||
özel giriş | ||
Bağlantı | Connection |
RenderedConnection |
Alan | Field |
FieldTextInput |
FieldNumber |
||
FieldLabel |
||
özel alan | ||
vb. | ||
Simge | Icon |
CommentIcon |
MutatorIcon |
||
WarningIcon |
||
özel simge |
Bir bloktaki nesneler, ağaç şekilli bir nesne oluşturur. Bir bloğun grafiksel gösteriminin bu ağaca nasıl karşılık geldiğini anlamak, blokları programatik olarak değiştirmek için kod yazarken faydalıdır. Örneğin, bir controls_for
bloğu:
JavaScript nesnelerinin aşağıdaki ağacına karşılık gelir.
// <Object> means an instance of an Object.
{ // Block
nextConnection: <Connection>, // ConnectionType NEXT_STATEMENT
outputConnection: null,
previousConnection: <Connection>, // ConnectionType PREVIOUS_STATEMENT
inputList: [ // Array of Inputs in block
{ // ValueInput
connection: <Connection>, // ConnectionType INPUT_VALUE
fieldRow: [ // Array of fields in Input
<FieldLabel>, // 'count with'
<FieldVariable>, // i
<FieldLabel>, // 'from'
],
},
{ // ValueInput
connection: <Connection>, // ConnectionType INPUT_VALUE
fieldRow: [
<FieldLabel>, // 'to'
],
},
{ // ValueInput
connection: <Connection>, // ConnectionType INPUT_VALUE
fieldRow: [
<FieldLabel>, // 'by'
],
},
{ // StatementInput
connection: <Connection>, // ConnectionType NEXT_STATEMENT
fieldRow: [
<FieldLabel>, // 'do'
],
},
]
}