لينجو (لغة برمجة)

اللينجو (بالإنجليزية: lingo) هي لغة سكريبت ترافق برنامج أدوبي ديركتر
صاحب اللغة و مطورها هو جون هنري تومسون (بالإنجليزية: John Henry Thompson)، طورته عدة شركات قامت بتطوير مكتبات من نوع إكسترا تستعمل في أدوبي ديركتر  منها إنتل

أصل الاسم

كلمة لينجو يعني في اللغة الإنجليزية العامية، بالمعنى المقصود في اللغة العامية أو اللغة المتخصصة الانتماء إلى مجموعة معينة (على سبيل المثال الطابعون عامية).
وخلافا لمعظم اللغات المشتركة (أساسي، وجافا سكريبت ...) مستوى 4، والنصي لغة لا يتم إنتاج مفاهيم البرمجة في نفس الطريق ولكن تنقيح طريقها إلى التطبيق بسيطة وفعالة. بمناسبة التمييز انه يستخدم مصطلحات مختلفة، مثل "جدول" تتم إعادة تسمية "قائمة"، ويسمى فئة "السيناريو الرئيسي" ...

ميزات اللغة

لينجو حاليا باستخدام بناء جملة بسيطة.
تم اشتقاق لغة أصلا من بناء جملة مطول اللغة HyperTalk المستخدمة في البرنامج هيبيركارد المؤلف موزعة على ماكنتوش في عام 1986. وكان من المقرر أصلا أن تكون قابلة للقراءة وقت ممكن لالمتحدثين باللغة الإنجليزية.
تعيين myvar إلى 10
انتقل إلى الإطار 20
مجموعة من أربعة mytext كلمة إلى "مرحبا"

بناء الجملة

هنا هي وظيفة سبيل المثال:
ضرب (أ، ب)
إرجاع * ب
نهاية يضاعف
وظائف تبدأ في كل تأثير على [اسم الدالة] [(الحجج)] ونهاية نهاية [اسم وظيفة]. لغة هي لغة متساهلة جدا، وعلى سبيل المثال لا يجوز وضع أقواس بعد اسم الدالة (ضرب أ، ب).
ملاحظة يتم كتابتها بشكل حيوي المتغيرات وليس هناك تمايز بين "=" الاحالة و"=" المقارنة.
إذا A = 1 ثم
ب = 2
آخر
إذا كان = "السلسلة" ثم
ب = 3
نهاية إذا
نهاية إذا
بعد سنوات من التغيير النحوية، أصبحت  لينجو وموحدة إلى حد ما "لاحظ" اللغة، ويمكن قراءتها جدا.
المدير هو برنامج مخصص لالتفاعل. ولذلك، لينجو يسمح اعتراض سهلة لعدد كبير من الأحداث مثل: prepareMovie (قبل العرض) startmovie (في وقت نشرها)، mousedown (انقر فوق لأسفل) mouseup (صدر نقرة) الخ. بعض الأحداث اعتراضية مخطوطات تؤثر على البرنامج بأكمله، قد تنطبق الآخرين فقط إلى كائنات معينة مثل العفاريت (مثيل كائن - على سبيل المثال جرافيك - على خشبة المسرح).
على mouseup
- عند النقر على الكائن التي ينطبق عليها النصي
إذا كان mouseH <320 ثم
- الوضع الأفقي لوحة أقل من 320
puppetsound (1، "بينغ")
- ويطلق صوت يسمى "بنج" على المسار الصحيح 1.
نهاية إذا
نهاية

المتغيرات

يتم تبسيط المتغيرات العددية لغة. يتم تعريف المتغيرات أو كائنات عمومية ووظائف خارج. يتم تعريف المتغيرات المحلية ضمنيا.
الكتابة ضمنا، على النحو التالي:
A = 10 عدد صحيح يخلق
على 10.0 = يخلق عشري.
ليس هناك متغيرات منطقية، يستخدم لغة الأعداد الصحيحة 0 و 1، والتي لتوخيا للوضوح، ومع ذلك، يمكن أن يكتب الصواب والخطأ.
يمكن قراءة سلاسل مثل اللوحات باستخدام متغير عمومي "في itemDelimiter" وحقوق التأليف والنشر. أطقم البند، أو خصائص. الخط و. كلمة السلسلة.
يمكن أن تحتوي أسماء المتغيرات الحروف والأرقام، أو علامة تسطير. أنها لا يمكن أن تبدأ مع أرقام.
رموز
يمكنك إنشاء الرموز مع علامة الجنيه (#). A الرمز غير متغير، ولكن اسم متغير أو وظيفة.
على سبيل المثال، في mycolor = # أحمر، كلمة # أحمر لا يعني شيئا بالنسبة الرطانة، ومع ذلك، mycolor = الألوان [أحمر #] للعودة إلى اللون الأحمر للممتلكات الموضوع، واستدعاء دالة (# أحمر، obj، الحجج ...) ويمكن استدعاء الأسلوب الحمراء من الكائنات كائن.
بعض المشغلين وظائف
ويتم تخصيص مع علامة =
المقارنة هي كما يلي:
= (يساوي)
<(أقل من)
> (أكبر من)
<= (أقل من أو يساوي)
> = (أكبر أو يساوي)
مشغلي هي نفسها التي نحن ينبغي أن تقارن الأعداد الصحيحة، سلاسل، أو أي شيء آخر.
هناك نوعان من الانقسام، يتم ترميز مع كل من حرف /. إذا كانت كل الأرقام هي أعداد صحيحة ثم  لينجو ينفذ قسمة عدد صحيح. يتم الحصول على بقية الشعبة مع المشغل وزارة الدفاع.
يتم استخدام bitAnd () وظائف، bitOr () BITXOR () وBITNOT () لتنفيذ عمليات على الأعداد الصحيحة ثنائي تعامل على أنها مصفوفة من 32 بت. هذه الوظائف هي ثقيلة لأنها تذهب من خلال التحويلات لقراءة بسرعة مجموعة بت بدلا من استخدام عدد صحيح الانقسام ونمطية، ولكن يتم فقدان بت 32.

الفئات الأساسية

لينجو لديه قائمة من الدرجة المقابلة لهياكل البيانات، مع أتمتة كبيرة.
فئة البيانات المناظرة لغة
قائمة مجموعة خطية
propList مجموعة النقابي / البنية
مصفوفة مجموعة 2 الأبعاد
نقاط ناقلات 2D
المستطيل المستطيل 2D
ناقلات ناقلات 3D
3D تحويل مصفوفة
دروس إدارة الجداول
فئة قائمة
يحتوي على فئة قائمة على الذاكرة الديناميكية صفيف. هذه الجداول هي "المستندة إلى واحد"، المؤشر الأول هو 1. هذا يسمح باستخدام الصفر لاغيا عند تحديد مؤشرات مرجعية.
Y كتابة أو قراءة محتويات خلية ثقيل مثل مشيرا عملية بناء جملة (أبطأ على القوائم الكبيرة من الصغيرة). لتحسين يجب استخدام العمليات على المصفوفات قدر ممكن الجداول الجبر، الذي يتجنب العديد من الخلايا القراءات.
يتم إنشاء القوائم كما يلي:
myArray = [] أو myArray = [1،2، "أ"، 0، "ب"]
يمكن الجداول تحتوي على أي نوع من البيانات:
myArray = 1، ناقلات (1،2،3)، model1، image12

بعض الأساليب

List.Sort () يسمح التلقائي الفرز التصاعدي.
list.add () لإدراج البيانات في قائمة الناتج الحفاظ على ترتيب الفرز.
list.append () ويضيف عنصر إلى نهاية الجدول يكسر ترتيب الفرز
list.getOne (القيمة) هو البحث التلقائي في الجدول للعثور على مؤشر القيمة
list.deleteOne (قيمة) بحث قيمة المؤشر ثم مسح الخلية
list.deleteAt (رقم قياسي) يزيل قيمة في فهرس محدد
نقدر list.addAt (فهرس، قيمة) إدراج للمؤشر المطلوب

الجداول الجبر

يمكن استخدام جميع أنواع الجداول من مشغلي متوافق مع محتويات الخلايا. وهذا يسمح تسارع كبير من حساب حلقات نظرا لأنها ثم تشغيل أصلا.
أمثلة مع عدد صحيح وعشري:
[1،2،3] + [4،5،6] العائدات [5،7،9]
[1،2،3] - [1،1،1] العائدات [0،1،2]
[1،2،3] * [1،2،3] العائدات [1،4،9]
[1.1] / [2،2.0] العائدات [0،0.5]
[1،1] وزارة الدفاع [2،2.0] العائدات [1،1]
[1،2]> [2،1] وإرجاع FALSE (0)
للحصول على أمثلة مع صفائف النواقل ومصفوفات، انظر الطبقات وتحويل ناقلات.

فئة PropList

يحتوي على مجموعة النقابي. يمكن معرفات تكون إما:
الرموز: myArray = [# العمر: 24 # الجنس: "ذكر"، # الحجم: 1.80]
سلاسل حرف (ملاحظة القراءة بطيئة جدا): myArray = ["عمر": 10، "الجنس": "M"]
الجبر لانه مطابق للقوائم الخطية.

فئة مصفوفة

بترميز صفيف ثنائي الأبعاد. يضاف إلى V11 بالنسبة للأراضي محرك فسإكس.
دروس الهندسة 2D

فئة نقطة

يشفر ناقلات 2D. وتسمى إحداثياتها "لوخ" و "locV". ويمكن أن تكون كلها أو عشرية.
P = نقطة (أ، ب)
قراءة البيانات من قبل locV / بحيرة لوخ خصائص أو ك صفيف:
p.locH أو P [1] بإرجاع
p. أو ع [2] يعود ب
الجبر ناقلات 2D يتصرف تماما مثل الجبر ويمكن الجمع بين الجداول مع:
(1،1) + الفترة (2.2) بإرجاع النقطة (3،3)
[P1، P2] + [P3، P4] العائدات [P1 + P3، P4 P3 +]

فئة احداثيات

بترميز مستطيل. يمكن أن تكون القيم عدد صحيح أو عشري.
R = احداثيات (يسار، أعلى، يمين، أسفل): r.left، r.top، r.right، r.bottom أو r [1]، ص [2]، ص [3]، ص [4] راجع إحداثياتها: r.width r.height والعودة العرض والارتفاع

بعض الأساليب

r1.intersects (R2) إرجاع تقاطع المستطيل بين اثنين من المستطيلات
point.inside (R1) بإرجاع true إذا كانت نقطة داخل المستطيل
خريطة (targetRect، sourceRect destinationRect) يجعل homotétie نقطة
خريطة (Targetpoint، sourceRect destinationRect) ينفذ homotétie المستطيل
rect1.union (rect2) بإرجاع اثنين من المستطيلات ثاب
الجبر من المستطيلات لانه مطابق للنقاط 2D.

فئة رباعية

ترميز الرباعي. مفيدة بشكل خاص للتلاعب الصورة.
دروس الهندسة 3D
ناقلات فئة
ترميز ناقلات 3D. عشرية فقط.
V = متجه (10،20،30)
إحداثياتها يمكن الوصول إليها بطريقتين: إما مع Z X، Y،، أو مع حجم الفهرس:
v.x أو الخامس [1] عوائد 10

بعض الأساليب

vector.magnitude بإرجاع طول
vector.normalize () يعين طول يساوي 1 دون تغيير اتجاهه
vector1.cross (vector2) بإرجاع نتاج لاثنين من ناقلات
الجبر ناقلات 3D يختلف من القوائم وناقلات 2D:
لا يسمح الانقسام ونمطية
ضرب إرجاع المنتج نقطة
ناقلات (1،0،0) * النواقل (0،1،0) بإرجاع 0.0
الجبر ناقلات يمكن دمجها مع الجداول.
[[[المتجهات]] (1،0،0)، متجه (0،1،0)] + [النواقل (0،1،0)، متجه (1،0،0)] عودة [النواقل (1،1،0) ناقلات (1،1،0)]
[المتجهات (1،0،0)، متجه (0،1،0)] * [النواقل (0،1،0)، متجه (1،0،0)] عودة [0،0]
فئة التحويل
بترميز تتكون مصفوفة التحول 3D من 16 منازل عشرية.
= مصفوفة التحويل ()
المجموعات الثلاث الأولى من أربعة أرقام ترميز نواقل ثلاثة من العلامة. المجموعة الأخيرة بترميز المنشأ. (الرقم الرابع من المجموعات المستخدمة في الحسابات الداخلية).
مثال: اختيار النواقل (0،0،1) للمحور X:
مجموعة [1] = 1
مجموعة [2] = 0
مصفوفة [3] = 0

بعض الأساليب

matrice.invert () يقلب مصفوفة
matrice.inverse () إرجاع معكوس المصفوفة
matrice.rotate () matrice.translate () ينفذ التحول المطلق
matrice.preRotate () matrice.preTranslate () ينفذ هذا التحول على
matrice1.multiply (array2) بإرجاع مصفوفة 2 تغيروا عن ماتريكس 2
matrice1.preMultiply (array2) بإرجاع مصفوفة 2 تجنيدك من قبل المصفوفة 1 على
matrice1.interpolate (array2، والنسبة المئوية) بإرجاع الاستيفاء بين تحولين