Blockly'deki oluşturucu; yükseklik, dolgu, kenarlık kalınlığı ve bağlantı şekli dahil olmak üzere bir bloğun şeklini kontrol eder.
Özel oluşturucular
Blokların şeklini özelleştirmek istiyorsanız özel bir oluşturucu oluşturmanız gerekir. codelab'i tamamlayarak veya referans belgelerini okuyarak bu süreç hakkında daha fazla bilgi edinebilirsiniz. Blokly'nin yerleşik oluşturucularının kodunu okumak, bunların nasıl çalıştığını anlamak için yararlı olabilir.
Özel oluşturucu oluşturmak için yapmanız gerekenler:
- Yeni bir oluşturucu tanımlayın. Nereden başlamak istediğinize bağlı olarak temel oluşturucu sınıfını veya mevcut oluşturuculardan herhangi birini alt sınıflandırma yapabilirsiniz.
- Değiştirmek istediğiniz bölümleri geçersiz kılın.
- Örneğin, bloklara daha fazla dolgu eklemek için bir
ConstantProvider
öğesini (yine temel veya mevcut herhangi bir oluşturucu) alt sınıflandırabilir ve ilgili sabit değeri geçersiz kılabilirsiniz. Diğer tüm değerler, seçtiğiniz temel sınıfla aynı kalır. - Özel
Renderer
alt sınıfınızda yeniConstantProvider
sınıfını bağlamanız gerekir. Temel sınıf yerine özelConstantProvider
öğenizin yeni bir örneğini döndürmek içinmakeConstants_
işlevini geçersiz kılın. PathObject
veyaDrawer
gibi diğer sınıfları geçersiz kılarken de aynı süreci uygulayın.
- Örneğin, bloklara daha fazla dolgu eklemek için bir
Oluşturucunuzu kaydedin:
Blockly.blockRendering.register('custom_renderer', CustomRenderer);
Uygulamanızda oluşturucunuzu kullanın:
Blockly.inject('blocklyDiv', { renderer: 'custom_renderer' });
Yerleşik oluşturucular
Blockly, önceden oluşturulmuş birçok oluşturucu sağlar. Bunları olduğu gibi kullanabilir veya özel bir oluşturucunun temeli olarak kullanabilirsiniz.
- geras (varsayılan)
- thrasos (gera'ların daha modern bir yorumu)
- zelos (Çizik gibi)
- minimalist (temel oluşturucu sınıfları)
Bu oluşturuculardan birini kullanmak için adı ekleme seçeneklerine geçirin:
Blockly.inject('blocklyDiv', {
renderer: 'thrasos'
});
Bunları alt sınıflandırmak için uygun sınıfları genişletin:
class CustomRenderer extends Blockly.geras.Renderer {}
class CustomConstantProvider extends Blockly.geras.ConstantProvider {}