Blockly, ilgili Blockly sınıflarını değiştirerek belirli işlevleri özelleştirmenize olanak tanır.
Değiştirilebilir sınıflar
Aşağıdaki Blockly sınıfları değiştirilebilir:
Blockly sınıfı | Arayüz | Kayıt türü adı |
---|---|---|
Blockly.dragging.Dragger |
Blockly.IDragger |
blockDragger |
Blockly.ConnectionChecker |
Blockly.IConnectionChecker |
connectionChecker |
Blockly.InsertionMarkerPreviewer |
Blockly.IConnectionPreviewer |
connectionPreviewer |
Blockly.HorizontalFlyout |
Blockly.IFlyout |
flyoutsHorizontalToolbox |
Blockly.VerticalFlyout |
Blockly.IFlyout |
flyoutsVerticalToolbox |
Blockly.MetricsManager |
Blockly.IMetricsManager |
metricsManager |
Blockly.Toolbox |
Blockly.IToolbox |
toolbox |
Blockly.VariableMap |
Blockly.IVariableMap |
variableMap |
Blockly.VariableModel |
Blockly.IVariableModel |
-- |
Bir oluşturucuyu değiştirme hakkında bilgi edinmek için Özel oluşturucular oluşturma başlıklı makaleyi inceleyin.
Alternatif sınıf oluşturma
Bir yedek sınıf oluşturmak için ilgili arayüzdeki işlevleri uygulayın. Bu işlevlerin tümünü yeni bir sınıfta uygulayabilir veya Blockly sınıfını genişletebilir ve yalnızca değiştirmek istediğiniz işlevleri geçersiz kılabilirsiniz. Tek şart, arayüzdeki tüm işlevleri uygulamanız (veya temel sınıf) ve arayüzdeki yorumlarda açıklanan tüm şartlara uymanızdır.
Yazım denetleyicisine belirli bir arayüzü uyguladığınızı belirtmek için sınıfınızı @implements {InterfaceName}
JSDoc etiketi (JavaScript'te) veya implements
anahtar kelimesi (TypeScript'te) ile açıklama ekleyin.
Blockly'ye yedek sınıfınız hakkında bilgi verme
Değiştirme sınıfınız hakkında Blockly'ye bilgi vermenin iki yolu vardır: sınıfı türünün varsayılan sınıfı olarak kaydetme (tercih edilen yöntem) veya plugins
yapılandırma seçeneğini kullanarak sınıfı yerleştirme.
Değiştirilen sınıfınızı varsayılan olarak kaydetme
Blockly'ye yedek sınıfınız hakkında bilgi vermenin tercih edilen yolu, bu sınıfı türü için varsayılan olarak kaydetmektir. Bunu yapmak için Blockly.registry.register
işlevini Blockly.registry.DEFAULT
adıyla çağırın ve opt_allowOverrides
parametresini true
olarak ayarlayın.
Blockly.registry.register(
Blockly.registry.Type.VARIABLE_MODEL,
Blockly.registry.DEFAULT,
CustomVariableModel,
true,
);
Değiştirme sınıfınızı yerleştirin
Ayrıca plugins
yapılandırma seçeneğini kullanarak da değiştirme sınıfları ekleyebilirsiniz.
Bu, kayıt türü adlarını özellik adları, yedek sınıfları veya kayıtlı adları da özellik değerleri olarak kullanan bir nesnedir.
(plugins
özelliğinin adına rağmen sınıfınızın, Blockly'yı genişletmek için kullanılan eklentiler gibi npm üzerinden paketlenip dağıtılması gerekmez.)
Değiştirilen sınıfınızı Blockly.inject
'ya aktarın:
Blockly.inject('blocklyDiv', {
plugins: {
'metricsManager': CustomMetricsManagerClass
}
}
Alternatif olarak, sınıfınızı Blockly.registry.register
kullanarak kaydedebilir ve kaydedilen adı Blockly.inject
'ye iletebilirsiniz. Yapılandırma seçeneklerinizi saf JSON olarak depoluyorsanız bu özellik kullanışlıdır.
Blockly.registry.register(Blockly.registry.Type.METRICS_MANAGER, 'YOUR_NAME', CustomMetricsManagerClass);
Blockly.inject('blocklyDiv', {
plugins: {
'metricsManager': 'YOUR_NAME'
}
}