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

اللينجو  هي لغة سكريبت ترافق برنامج أدوبي ديركتر
صاحب اللغة ومطورها هو جون هنري تومسون ، طورته عدة شركات قامت بتطوير مكتبات من نوع إكسترا تستعمل في أدوبي ديركتر منها إنتل

أصل الاسم 

كلمة لينجو يعني في اللغة الإنجليزية العامية، بالمعنى المقصود في اللغة العامية أو اللغة المتخصصة الانتماء إلى مجموعة معينة (على سبيل المثال الطابعون عامية).

وخلافا لمعظم اللغات المشتركة (أساسي، وجافا سكريبت ...) مستوى 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، والنسبة المئوية) بإرجاع الاستيفاء بين تحولين

مصفوفة الجبر 

 array1 array2 أي ما يعادل مضاعفة
 إرجاع مصفوفة ناقلات ناقلات تحويلها من قبل المصفوفة

يجمع بين الجبر مصفوفة أيضا مع الجداول:

[Array1، array2] * [vector1، vector2] بإرجاع مجموعة من ناقلات معالجتها
[Array1، array2] * [matrice3، matrice4] بإرجاع مجموعة من المصفوفات المصنعة

دروس محرك 3D
فئة المشهد

فئة فرعية من «الأعضاء» أن يظهر على شكل شبح ويمكن أن تجعل مرحلة 3D مع DirectX أو برنامج OpenGL

يتبع نمطا نوع «مصنع»: يتم إنشاء مثيل جميع عناصر المرحلة 3D ودمرت باستخدام أساليب الفئة المرحلة. وهنا لا الحصر:
فئة ModelResource

مخازن vertexbuffers («تنسجم») وتظليل إشارة افتراضيا.

ملاحظة: أساليب البناء لا يتبع هيكل vertexbuffer، يتم تعبئة كل مثلث بشكل مستقل. مرة واحدة تسمى بناء () يتم تصنيف طريقة ناقلات من قبل المجموعة باستخدام نفس تظليل، والتي تم الحصول عليها VertexBuffer يمكن الوصول إليها عن طريق التعديل # meshDeform من النماذج باستخدام الموارد.
نموذج فئة

مصفوفة مرجعية، قائمة تظليل وmodelResource. تلقائيا بإنشاء boundingSphere. فئة النموذج المستخدم لعرض modelResource. يوفر له معدل # meshDeform الوصول إلى modelResource VertexBuffer.
فئة فسإكس

يسمح لك للسيطرة على مرحلة 3D مع محرك فسإكس NVIDIA. يتم التحكم فئة فرعية عضو إكسترا، كبرنامج نصي إكسترا الكلاسيكية.

يتبع نمط مصنع التي يمكن أن تخلق مختلف الأشياء المادية: محدب، مقعر، والقماش، والطابع، الخ. يتطلب معدل # meshDeform لقراءة التراكيب المتعددة الأضلاع.
أنواع من البرامج النصية

هناك أربعة أنواع من البرامج النصية في الرطانة، سواء الإجرائية النوع الثاني نوع الكائن:
النصوص الإجرائية

استخدام المتغيرات والوظائف العالمية الوحيدة. استخدامها ينبغي أن يقتصر بسبب المتغيرات العالمية تستهلك وحدة المعالجة المركزية وذاكرة الوصول العشوائي: يتم تكرار أنهم في مترجم جافا سكريبت.

قدر ممكن الأشياء النصي، يتم استخدام البرنامج النصي الإجرائية إلا عند الضرورة.
«سيناريو فيلم»

هذه هي النصوص المستخدمة لقانون الإجراءات.

هذه البرامج النصية تلقي بعض الوظائف ما قبل الحدث التي تتوافق مع افتتاح التطبيق، إغلاق Image تحديث.

الأحداث الافتتاح والختام:

على prepareMovie يعمل قبل عرض الصورة الأولى. هذا هو المكان الذي نحن نستعد شاشة البداية.
على startMovie يركض وراء عرض الصورة الأولى. هذا هو المكان الذي تهيئة التطبيق.
نحن stopMovie يقام في نهاية التطبيق، وهذا هو المكان الذي دمرت محتوياته.

أحداث تحديث الصورة:

على prepareFrame يتم تشغيلها قبل تقديم الصورة، وهذا هو المكان الذي وضعنا الجداول الزمنية.
على enterFrame تدير للمرة المتبقية قبل إصدار الإطار التالي، حيث ان نضع كل الحسابات.
على enterFrame يعمل فقط قبل أن ينتقل بالقياس الي، فمن هنا أن يقول لها انها يجب جعل الصورة (للذهاب إلى)

حدث مستقل:

على ويدير الراكد في مجموعة متعددة من 16 ميلي ثانية (60 لقطة في الثانية الواحدة). هذا هو المكان الذي وضعت رمز مستقلة عن تطبيق فراميراتي.

أحداث الماوس:

على mouseDown وmouseUp يسمى عند الضغط على الماوس أو الإفراج عنهم.

دعا البرامج النصية تعمل

هذه هي النصوص التي هي مباشرة داخل فاعل. لم يتم تعريف نوع الخاصة بهم، لكنها تعمل مثل «سيناريو الفيلم».

التي يتلقونها أحداث الماوس وتحديث عندما مثيل من الفاعل مرئيا.
البرمجة كائن
ودعا «الآباء» النصي

محاكاة فئات الكائن. بناء جملة أسلوب إجرائي: من الضروري أن «لي» كوسيطة الأول لتمرير مرجع إلى كائن.
فئة instantiable

مثال على البرنامج النصي الأم مثيل:

- العقارات

الملكية pNombre

- طرق منشئ والمدمر

على الجديد لي، N، obj
الكائنات = pObject
ن = pNombre
عودة لي
نهاية

قمت بحذف البيانات
pObject = باطل
نهاية

- طرق العضو

يتم زيادة لي
pNombre pNombre = 1
نهاية

إذا كان يتم استدعاء هذا البرنامج النصي «عدد»، ونحن مثيل على سبيل المثال بهذه الطريقة:

monNouveauNombre = جديد (النصي «رقم»، 10، obj)

واستدعاء وظيفة «مقدار» بهذه الطريقة:

monNouveauNombre.incremente ()

فئة ثابتة

وهناك سيناريو الأم يمكن أن تخدم فئة ثابتة.

يمكنك الوصول إلى إشارة من هذا القبيل:

myStaticClass = السيناريو ("SCRIPT_NAME")

توليد 

لا يعمل لغة إرث كما هو الحال في اللغات التقليدية وجوه المنحى، لأنه يقوم على «سلف» مخطوطات الوالد الممتلكات، والتي تتطابق مع مثيل من الفئة الأصل. ولذلك ليست هناك وراثة لكن الزائد.

المدير يذهب تلقائيا إلى خصائص الكائن سلف من الفتاة المرجعية التي يمكن العثور على أثر لفئة موروثة. فالحذر الحذر الوسيطة قيمة «لي»: يجب أن تتوافق دائما إلى مثيل من الجيل الأخير.

أنها لا تعمل لجميع خصائص وأساليب مدير الطبقات الأصلي (في هذه الحالة يجب أن يشير سلف).

المثال محاكاة لفئة فرعية من قائمة

الملكية سلف

على جديد (بالنسبة لي) - فئة فرعية من قائمة كائن
سلف = [1,10,20,30]
عودة لي - تحذير: فإنه لا يرجع «سلف» ولكن «لي»
نهاية

الكائنات = جديد السيناريو ("TestClass")
يمكن الكائنات [1] - نجد خصائص سلف

البرامج النصية أو تطبيق «السلوكيات»

هذه هي كائنات المعقدة التي النصي لا يمكن الوصول إليه مباشرة. أنها تحتوي على العديد من الفعاليات للتفاعل مع العفاريت، والماوس، لوحة المفاتيح، وعلى سبيل المثال لإنشاء أزرار أو برامج تحرير النصوص.

وغالبا ما وضعت البرامج النصية من السلوك لإعادة استخدامها من قبل المصممين أو تكامل. ببساطة عن طريق سحب وإسقاط هذه النصوص تعلق على الكائنات في المشهد: صورة، العفريت، والممثل، والإطار ... هذه البرامج النصية لها وظائف محددة مسبقا لتعيين الهيئات فضلا عن مكونات فلاش يدويا.
تطبيقات

لغة هي لغة الملكية، فإنه يفعل ذلك هناك تطبيق واحد فقط.
اللينجو وجافا سكريبت الأوامر بناء الجملة

منذ الإصدار MX2004 لها، ومدير البرنامج يدعم استخدام لغتين مختلفتين: الرطانة، وتنفيذ جافا سكريبت / ECMAScript التي تدير جزءا كبيرا من عمليات رطانة.

لغات برمجة نصية