1. مقدمة
يتم الآن استخدام برنامج Macromedia Flash على نطاق واسع على الإنترنت لتحسين وصف محتوى مواقع الويب. لقد أوضحت إصدارات Macromedia الأخيرة من Flash (Flash 6 وFlash MX) أن Macromedia تفكر بجدية في Flash كواجهة مفضلة لتطوير تطبيقات الويب. بالنسبة للواجهة، قد يكون Flash خيارًا رائعًا، ومع ذلك، لا يعني هذا الاختيار استخدامه ليحل محل منطق الأعمال وإدارة الاستعلامات والأمان؛ بالنسبة لمطور الويب، لتحقيق أداء قوي حقًا وإمكانيات على مستوى المؤسسات، فأنت بحاجة إلى دعم طبقة .NET وFlash وطبقة الوصف الغنية، جنبًا إلى جنب مع تقنية .NET من Microsoft.
يتضمن Flash ActionScript - وهي لغة برمجة نصية تُستخدم لإضافة التفاعل إلى الرسوم المتحركة. منذ تقديم ActionScript في Flash 5، واصلت Macromedia تحسينها من لغة برمجة بسيطة إلى ميزة برمجة قوية إلى حد ما والتي لا تزال تعاني من العديد من القيود. في Flash MX 2004، قدمت Macromedia الإصدار ActionScript 2.0 - الذي يدعم ميزات جديدة وطرقًا جديدة لتنظيم التعليمات البرمجية. لتسهيل فهم هذه المقالة، يجب عليك أولاً قراءة بعض المعلومات الأساسية حول إنشاء مواقع Flash باستخدام ActionScript.
قدمت Macromedia طرقًا لدمج البيانات الخارجية بسهولة في تطبيقات Flash للسماح بتطبيقات تعتمد على البيانات أكثر تعقيدًا وقوة. يعمل كل من Flash و.NET على الترويج لأنفسهما كحلول متعددة المنصات وبالتالي يصبحان شريكين طبيعيين. ومع ذلك، فإن الربط بين التقنيتين ليس بالمهمة السهلة. ستناقش هذه المقالة معك عدة طرق لدمج تطبيقات Flash و.NET.
2. دمج Flash وASP.NET
وتضمين رسوم Flash المتحركة في صفحات ASP.NET.
يتم وضع رسوم Flash المتحركة في صفحات بتنسيق aspx باستخدام علامتي OBJECT وEMBED معًا. تم تطوير علامة EMBED في الأصل بواسطة Netscape للعمل مع Netscape 2.0 أو أعلى. لاحقًا، تم اعتماد هذه العلامة بواسطة Microsoft Internet Explorer (MSIE). من أجل توافق المستعرض، يمكن استخدام علامة OBJECT الخاصة بـ MSIE وعلامة EMBED معًا. يوضح كود HTML التالي استخدام علامات OBJECT وعلامات EMBED لتضمين رسوم Flash المتحركة (ملف *.swf):
3. قم بتوصيل Flash بالبيانات الخارجية
هناك ثلاث طرق لدمج رسوم Flash المتحركة مع البيانات الخارجية: FlashVars وLoadVars وتقنية FlashRemoting الجديدة. إحدى أبسط الطرق هي تمرير البيانات الخارجية من صفحة aspx. إلى حركة Flash المضمنة في صفحة ويب باستخدام FlashVars لتمرير المتغيرات في جزء HTML من التعليمات البرمجية. يمكن الوصول إلى قيم هذه المتغيرات التي تم تعيينها باستخدام FlashVars على المستوى الجذري لرسوم Flash المتحركة. للتشغيل في جميع بيئات المتصفح، يجب تعيين قيمة لسمة FlashVars في علامتي OBJECT وEMBED.
فيما يلي FlashVars المستخدمة مع علامة كائن:
<PARAM Name="FlashVars" Value="init=yes&check=true">
فيما يلي FlashVars المستخدمة مع علامة EMBED:
<EMBED src="test.swf" FlashVars=" init =yes&check=true"></EMBED>
4. لماذا تستخدم FlashVars؟
بدلاً من استعارة FlashVars، يمكنك أيضًا وضع المتغيرات في علامات HTML - قم بإضافتها إلى نهاية عنوان URL لملف .SWF من خلال سلسلة استعلام، ثم قم بتمريرها إلى رسم Flash المتحرك. قد تكون هناك مشكلة في هذا الأسلوب - إذا كان هذا المتغير مطلوبًا عند تحميل ملف .SWF، حيث يجب تنزيل ملف .SWF وتشغيله قبل طلب البيانات من الخادم. يمكن أيضًا تعيين القيم المتغيرة في Flash عبر طريقة "تحميل المتغيرات" وJavaScript. كل من هذه الطرق لها عيوب أوقات الاستجابة البطيئة والمتأخرة، ولهذا السبب يجب على المطورين استخدام FlashVars لتمرير البيانات من ASP.NET إلى الرسوم المتحركة Flash. يوضح الشكل التالي الكود الخاص بتمرير المتغيرات كسلسلة استعلام:
يمكن الوصول إلى أي متغيرات تم تمريرها باستخدام FlashVars على المستوى الجذري لرسوم Flash المتحركة (_level0). لاسترداد هذه القيم ضمن الرسوم المتحركة فلاش، يمكنك إنشاء متغير ديناميكي. ينفذ كود ActionScript التالي تعيين "initvalue" في Flash:
_level0.initvalue = init
5. الاتصال بين Flash وقاعدة البيانات
لا يمكن لرسوم Flash المتحركة الوصول مباشرة إلى قاعدة البيانات. ومع ذلك، يمكن لـ Flash الاتصال بقاعدة البيانات عبر أي تقنية من جانب الخادم مثل ASP أو ASP.NET. هناك عدة طرق لإنجاز هذه المهمة. في هذه المقالة، سنشرح طريقة LoadVariables وطريقة sendAndLoad.
(1) استخدم طريقةloadVariables في مقطع الرسوم المتحركة.
تقرأ طريقةloadVariables لمقطع الرسوم المتحركة البيانات من ملف خارجي أو عنوان URL وتحدد قيمة متغير مقطع الرسوم المتحركة. بمجرد إنشاء مثيل لمقطع الرسوم المتحركة، يبدأ إجراء تحميل مقطع الرسوم المتحركة في معالج حدث المقطع. عند تهيئة مقطع الرسوم المتحركة، يمكن استدعاء الأسلوبloadVariables لتحميل المتغيرات. تعد طريقة LoadVariables عبارة عن مكالمة غير متزامنة ولا ينتظر Flash نتيجة المكالمة. عند تلقي البيانات في سلوك LoadVariables()، تتم تهيئة سلوك بيانات مقطع الرسوم المتحركة في معالج حدث حدث المقطع.
لتوضيح استخدام هذه الطريقة، يقوم هذا المثال باسترداد اسم المستخدم وعمره من قاعدة بيانات بناءً على معرف تم تحديده من رسم فلاش متحرك. في الشكل أدناه، يتم استخدام أسلوب LoadVariables الخاص بالرسوم المتحركة لتحميل البيانات إلى جزء الرسوم المتحركة من صفحة getUserData.aspx بتنسيق .aspx. هنا، يقوم ActionScript بتمرير معرف المستخدم - سيتم عرض اسمه وعمره في الرسوم المتحركة Flash كسلسلة استعلام إلى صفحة .aspx.
تسترد صفحة getUserData.aspx قيمة المعرف من سلسلة الاستعلام الموضحة أدناه:
الآن، يمكن لـ ASP.NET تمرير معرف القيمة هذا إلى مكونات أعمال .NET. يسترد هذا المثال اسم المستخدم وعمره:
كما ذكرنا سابقًا في هذا القسم، تتم تهيئة سلوك البيانات لمعالج الأحداث onClipEvent لمقطع الرسوم المتحركة عند تلقي البيانات في سلوك LoadVariables(). قم بتعريف المتغيرات الديناميكية التالية في الرسوم المتحركة Flash: flashName وflashAge. يوضح الشكل التالي رمز ActionScript المستخدم في معالج onClipEvent للرسوم المتحركة Flash لاسترداد القيمة التي تم إرجاعها من صفحة .aspx.
ملاحظة: من المهم - وهو نفس المتغير الذي تم تعيينه من صفحة .aspx. في المثال الموضح هنا، المتغير الذي يتم الوصول إليه في الرسوم المتحركة Flash هو "name" - وهو نفس المتغير الذي يتم تعيينه من صفحة .aspx (Response.Write("name="&User.name)).
يمكن الآن استخدام هذه القيم داخل رسوم فلاش المتحركة.
(2) استخدم طريقة sendAndLoad من مقاطع الرسوم المتحركة
على شبكة الإنترنت اليوم، تحتل لغة XML مكانًا مهمًا في شكل نظام المستندات كتنسيق نقل عالمي مع إمكانية السماح بالتبادل السلس للبيانات حتى بين الأنواع المختلفة من التطبيقات. يوفر XML آلية بوابة للاتصال بين التطبيقات - حتى التطبيقات الموجودة على نطاق واسع من الأنظمة المختلفة. طالما أن التطبيقات يمكنها مشاركة البيانات (عبر HTTP، أو مشاركة الملفات، أو أي آلية أخرى) ولديها محلل XML، فيمكنها مشاركة المعلومات المنظمة التي يسهل معالجتها للغاية.
يدعم Flash MX نقل بيانات XML وهناك العديد من أساليب تكنولوجيا الخادم مثل ASP وASP.NET لتبادل XML. يستطيع Flash MX إرسال واستقبال حزم XML باستخدام فئات XML - تحميل وإرسال وإرسال وتحميل أو XMLConnector الجديد الخاص بـ Flash MX. يمكن استخدام الأخير لإرسال واستقبال الحزم عبر HTTP وربطها بعناصر واجهة المستخدم في طبقة Flash.
دعونا نناقش طريقة sendAndLoad لكائن FlashXML، وهي طريقة شائعة لتنفيذ اتصالات بيانات XML الموجهة نحو الهندسة ومعالجة الاستثناءات والأداء. نحن نستخدم هذا المثال البسيط لإدراج تفاصيل نقاط المستخدم في قاعدة بيانات من عميل Flash وإرسال رسالة نجاح أو فشل مرة أخرى إلى عميل Flash.
(3) إنشاء حزمة XML في Flash
يمكن إنشاء حزمة XML بسهولة في Flash، كما يلي:
var sendXML:XML = new XML("<userid>123456</userid>");
إرسال حزمة XML إلى جانب الخادم الصفحة - تستخدم ASP/ASP.NET وتتعامل مع حزمة XML المرتجعة.
الاستخدام كما يلي:
xmlObject.sendAndLoad (URL: String, targetXMLObject: XML): Void
هذا 'xmlObject' هو مثيل كائن XML - فهو يقوم بتغليف XML الذي يجب إرساله إلى صفحة .aspx؛ عنوان URL الوجهة الذي يحدد كائن XML؛ "targetXMLObject" هو كائن XML - سيتلقى المعلومات التي يتم إرجاعها من جانب الخادم.
ترسل طريقة sendAndLoad حزمة XML إلى قالب من جانب الخادم وتستقبل حزمة XML استجابةً - على عكس طريقة الإرسال لفئة XML - التي ترسل حزمة XML فقط ولا تتوقع أي نوع من الاستجابة. تعمل كل طريقة من هذه الطرق بطريقتها الخاصة، ولكن هناك اختلاف واحد مهم: تأخذ طريقة الإرسال لفئة XML هدفًا كمعلمة - فهي تسمح لك بفتح نافذة متصفح جديدة أو استبدال محتويات نافذة المتصفح الحالية، بينما تأخذ طريقة sendAndLoad حزمة XML كمعلمة - فهي لا تبدأ نافذة متصفح جديدة. نظرًا لأن طريقة الإرسال تفتح نافذة متصفح جديدة، فيمكننا رؤية مخرجات نافذة المتصفح نفسها - والتي يمكن أن تكون مفيدة للغاية لتصحيح الأخطاء.
ملاحظة: إذا كان ملف Flash الذي يصدر استدعاء sendAndLoad قيد التشغيل في متصفح الويب، فسيكون عنوان URL المستهدف في نفس المجال مثل الرسوم المتحركة Flash. إذا كنت بحاجة أيضًا إلى التواصل مع التطبيقات في مجالات مختلفة، فارجع إلى "تحميل البيانات عبر النطاقات" على
www.macromedia.com لمزيد من المعلومات.
يوضح التعليمة البرمجية الموجودة في الشكل التالي كيفية استخدام أسلوب sendAndLoad الخاص بكائن XML للاتصال بصفحة .aspx ومعالجة XML الذي تم إرجاعه من الخادم:
يقوم التعليمة البرمجية أعلاه بما يلي:
· تحميل سلسلة XML إلى كائن XML "userscore_xml". يحمل المثيل ملف XML - الذي يتم إرساله إلى صفحة ASP.NET من جانب الخادم البعيد.
· قم بتعيين سمة تجاهل الأبيض لكائن XML "ResponseXMLObj_xml". يحتفظ مثيل كائن XML هذا بحزمة XML من الخادم.
·استدعاء الأسلوب sendAndLoad ("userscore_xml") لكائن XML لإرسال XML إلى صفحة .aspx من جانب الخادم،
http://localhost/MyTestApp/scoring.aspx وتخزين حزمة XML التي تم إرجاعها في مثيل كائن XML "ResponseXMLObj_xml" ".
· قم بتعيين أسلوب onLoad لكائن XML "ResponseXMLObj_xml". يتلقى Flash استجابة XML مرة أخرى من صفحة .aspx من جانب الخادم - وتتم معالجتها في أسلوب onLoad الخاص بكائن XML.
· ثم يقوم بتوزيع حزمة XML المستلمة لعرض الرسائل الضرورية على عميل Flash.
(4) استلام حزمة XML المرسلة من Flash الخاص بصفحة ASPX
ويوضح الشكل التالي الرمز لإكمال هذه المهمة:
يقوم التعليمة البرمجية أعلاه بما يلي:
· يتلقى XML المرسل من عميل Flash (xmlDoc.Load(Request.InputStream)).
· يوزع ملف XML المستلم ويمرره إلى مكون الأعمال لإدراجه في قاعدة البيانات.
· يتم إرسال رسالة XML المشكلة مرة أخرى إلى عميل Flash. يتم التعامل مع حالات النجاح أو الاستثناء المرفوعة في طبقة الأعمال وفقًا لذلك ويتم تحويلها إلى رسائل XML متنوعة - يتم تمرير هذه الرسالة مرة أخرى إلى عميل Flash. يتلقى عميل Flash رسائل XML هذه ويعرضها وفقًا لذلك.
6. الخلاصة
تكتسب تقنيات Flash و.NET شعبية في السوق اليوم ومن المرجح أن تصبح شريكة ناجحة معًا في عدد متزايد من بنيات التطبيقات. تتعامل هاتان التقنيتان مع بعض المشكلات نفسها، لكنهما مختلفتان بشكل أساسي. يمكّن Flash MX مواقع الويب من تجربة التفاعل، بينما يساعد .NET في إنشاء تطبيقات المؤسسات. كما تم استكشافه في هذه المقالة، فإن دمج تطبيقات Flash و.NET أمر ممكن تمامًا. تتعلق كل خطوة باتخاذ القرار - كيفية ربط هذين الجزأين والقيام بالتخطيط المعماري الصحيح بشكل استراتيجي.
على الرغم من أن جيلًا جديدًا من البنى المتعلقة بتقنية Flash Remoting يكتسب زخمًا في هذا المجال، إلا أنه سيستغرق الأمر عدة سنوات قبل أن يتم تطبيق الأساليب التي تمت مناقشتها في هذه المقالة على التطبيقات واسعة النطاق.