الأتمتة
ثلاث أدوات في Scissor تؤدي العمل المتكرر عنك: الإجراءات تسجّل سلسلة من الأوامر وتعيد تشغيلها، والمتغيرات تبدّل النص والظهور من جدول بيانات فيصبح التصميم الواحد تصاميم كثيرة، والبرامج النصية تتحكم في المحرر كله من JavaScript. لا يحتاج أي منها إلى حساب أو خادم — فهي مثل بقية Scissor تعمل على جهازك أنت.
الإجراءات: سجّل مرة، وأعد التشغيل في أي مكان
تسجّل لوحة الإجراءات (نافذة › الإجراءات) ما تفعله وتعيد تشغيله على تحديد جديد. اضغط تسجيل، ونفّذ الأوامر التي تريد التقاطها — محاذاة، إزاحة، إضافة ظل، أيًّا كانت السلسلة — ثم اضغط إيقاف وأعطِ الإجراء اسمًا. ينضم إلى القائمة، مبيّنًا عدد الخطوات التي يحتويها.
انقر إجراءً لتشغيله على ما هو محدد الآن؛ وانقر مع ⌥ على إجراء لحذفه. ولأن الإجراء مجرد قائمة أوامر، فإنه يكرر روتينًا محددًا على كائنات كثيرة دون أن تضطر إلى النقر خلاله في كل مرة.
المتغيرات: تصميم واحد، إصدارات كثيرة
تحوّل لوحة المتغيرات (نافذة › المتغيرات) التصميم الثابت إلى قالب تقوده البيانات. يمكن جعل شيئين في الكائن ديناميكيين:
- جعل النص ديناميكيًا
- يربط كلمات كائن نصي بمتغير، فتستطيع مجموعات البيانات المختلفة وضع نصوص مختلفة في المكان نفسه.
- جعل الظهور ديناميكيًا
- يربط ظهور الكائن من عدمه، فتستطيع المجموعة تشغيل أجزاء من التصميم أو إيقافها.
يعيد فك الربط الكائن المربوط ثابتًا من جديد.
مجموعات البيانات
مجموعة البيانات صف واحد من القيم لتلك المتغيرات — شارة واحدة، بطاقة واحدة، إطار واحد. يحفظ التقاط القيم الحالية مجموعةً جديدة؛ وتنتقل الأسهم من مجموعة إلى التالية ويتحدّث التصميم ليطابقها. يقرأ استيراد CSV… دفعة كاملة مرة واحدة — عمود لكل متغير، وصف لكل مجموعة — ويكتب تصدير CSV المجموعات مجددًا لتحريرها في جدول بيانات.
تصدير كل المجموعات دفعة واحدة
يعرض تصدير مجموعات البيانات… اللوح النشط مرة لكل مجموعة بيانات ويكتبها كلها في مرور واحد، بصيغة PNG أو JPEG أو WebP أو SVG. فتخرج ورقة من شارات الأسماء، أو مجموعة من اللافتات المترجمة، أو سلسلة من بطاقات التواصل الاجتماعي دفعةً مرتبة من الملفات، كل منها ببياناته الخاصة.
البرامج النصية: تحكّم في Scissor من JavaScript
لكل ما لا تستطيع القائمة التعبير عنه، يستطيع البرنامج النصي. يفتح ملف › البرامج النصية › وحدة تحكم البرامج النصية… محررًا تكتب فيه JavaScript وتشغّله على المستند المفتوح؛ ويشغّل نظام كتابة آخر… (⌘F12) ملف .js من القرص. يعمل البرنامج النصي في Web Worker، بعيدًا عن الصفحة، فلا يستطيع لمس الواجهة أو ملفاتك إلا عبر الكائن scissor الذي يُعطى له — وكل استدعاء يُنفَّذ على المحرك ويُرَدّ عليه.
يغطي الكائن scissor الاستخدامات الشائعة:
- إنشاء الأشكال والنصوص
scissor.rectوroundedRectوellipseوpolygonوstarوpathوtextترسم العمل الفني؛ ويأخذ كل منها موضعًا وحجمًا وكائن خيارات لـfillوstrokeوstrokeWidth(والألوان أي لون CSS).- قراءة المستند
await scissor.document()يعيد التطبيق والتحديد والطبقات وألواح الرسم كما تراها اللوحات؛ وscissor.selection()يعيد ما هو محدد فقط.- العمل عليه
scissor.selectوgroupوundo، وscissor.run(command)لأي أمر من أوامر المحرك على الإطلاق — الأوامر نفسها التي ترسلها القوائم.- الرد
scissor.logيطبع في وحدة التحكم؛ وscissor.alertيعرض رسالة.
مثال قصير — حلقة من النقاط الملونة وتعليق:
const doc = await scissor.document();
scissor.log('Boards:', doc.artboards.length);
for (let i = 0; i < 12; i++) {
const a = (i / 12) * Math.PI * 2;
await scissor.ellipse(300 + Math.cos(a) * 120, 260 + Math.sin(a) * 120, 36, 36,
{ fill: `hsl(${i * 30} 80% 60%)` });
}
await scissor.text(230, 270, 'Hello, Scissor', { size: 24 });
تحتفظ وحدة تحكم البرامج النصية بآخر شيفرة شغّلتها، فيكون البرنامج النصي العامل هناك حين تعود إليه.