ডাইনামিক ক্যাটাগরি হল সেই ক্যাটাগরি যা প্রতিবার খোলার সময় একটি ফাংশনের উপর ভিত্তি করে ডাইনামিকভাবে পুনরুদ্ধার করা হয়।
ব্লকলি আপনাকে একটি নিবন্ধিত স্ট্রিং কী এর মাধ্যমে একটি ফাংশনের সাথে একটি বিভাগ সংযুক্ত করার অনুমতি দিয়ে এটি সমর্থন করে। ফাংশনটি একটি বিভাগের বিষয়বস্তুর (ব্লক, বোতাম, লেবেল, ইত্যাদি সহ) একটি সংজ্ঞা প্রদান করবে। বিষয়বস্তু JSON বা XML হিসাবে নির্দিষ্ট করা যেতে পারে, যদিও JSON সুপারিশ করা হয়।
এছাড়াও লক্ষ্য করুন যে ফাংশনটি একটি পরামিতি হিসাবে টার্গেট ওয়ার্কস্পেস প্রদান করা হয়েছে, তাই আপনার গতিশীল বিভাগের ব্লকগুলি কর্মক্ষেত্রের অবস্থার উপর ভিত্তি করে হতে পারে।
JSON
// Returns an array of objects.
var coloursFlyoutCallback = function(workspace) {
// Returns an array of hex colours, e.g. ['#4286f4', '#ef0447']
var colourList = getPalette();
var blockList = [];
for (var i = 0; i < colourList.length; i++) {
blockList.push({
'kind': 'block',
'type': 'colour_picker',
'fields': {
'COLOUR': colourList[i]
}
});
}
return blockList;
};
// Associates the function with the string 'COLOUR_PALETTE'
myWorkspace.registerToolboxCategoryCallback(
'COLOUR_PALETTE', coloursFlyoutCallback);
এক্সএমএল
// Returns an arry of XML nodes.
var coloursFlyoutCallback = function(workspace) {
// Returns an array of hex colours, e.g. ['#4286f4', '#ef0447']
var colourList = getPalette();
var blockList = [];
for (var i = 0; i < colourList.length; i++) {
var block = document.createElement('block');
block.setAttribute('type', 'colour_picker');
var field = document.createElement('field');
field.setAttribute('name', 'COLOUR');
field.innerText = colourList[i];
block.appendChild(field);
blockList.push(block);
}
return blockList;
};
// Associates the function with the string 'COLOUR_PALETTE'
myWorkspace.registerToolboxCategoryCallback(
'COLOUR_PALETTE', coloursFlyoutCallback);
ডায়নামিক ক্যাটাগরি ফাংশনগুলি একটি স্ট্রিং কী (ওরফে নিবন্ধিত) এর সাথে যুক্ত হওয়ার পরে আপনি বিভাগটিকে গতিশীল করতে আপনার বিভাগের সংজ্ঞার custom
সম্পত্তিতে এই স্ট্রিং কীটি বরাদ্দ করতে পারেন।
JSON
{
"kind": "category",
"name": "Colours",
"custom": "COLOUR_PALETTE"
}
এক্সএমএল
<category name="Colours" custom="COLOUR_PALETTE"></category>
অন্তর্নির্মিত গতিশীল বিভাগ
ব্লকলি তিনটি অন্তর্নির্মিত গতিশীল বিভাগ সরবরাহ করে।
-
'VARIABLE'
টাইপ না করা ভেরিয়েবলের জন্য একটি বিভাগ তৈরি করে। -
'VARIABLE_DYNAMIC'
টাইপ করা ভেরিয়েবলের জন্য একটি বিভাগ তৈরি করে। এটিতে স্ট্রিং, সংখ্যা এবং রঙ তৈরি করার জন্য বোতাম রয়েছে। 'PROCEDURE'
ফাংশন ব্লকের জন্য একটি বিভাগ তৈরি করে।
JSON
{
"kind": "category",
"name": "Variables",
"custom": "VARIABLE"
},
{
"kind": "category",
"name": "Variables",
"custom": "VARIABLE_DYNAMIC"
},
{
"kind": "category",
"name": "Functions",
"custom": "PROCEDURE"
}
এক্সএমএল
<category name="Variables" custom="VARIABLE"></category>
<category name="Variables" custom="VARIABLE_DYNAMIC"></category>
<category name="Functions" custom="PROCEDURE"></category>
দ্রষ্টব্য: 'প্রক্রিয়া' শব্দটি ব্লকলি কোডবেস জুড়ে ব্যবহৃত হয়েছে, কিন্তু 'ফাংশন' শব্দটি ছাত্রদের দ্বারা আরও বোধগম্য বলে মনে হয়েছে। অমিলের জন্য দুঃখিত।