الشهاب الحارق
28 Feb 2002, 02:54 AM
وقفه في مختبر المبرمج Phillip Kerman
الدرس الأول التحقق من متصفح المستخدم أو الزائر إذ يمتلك مشغل فلاش الإصدار الخامس أم لا
شاهد المثال (http://shihaab.topcities.com/detectionVersion.html)
والسبب هو أنه إذا كان المستخدم لا يمتلك فلاش 5 فأنهُ كثير من الوظائف والنصوص البرمجية لان
تؤدي مهامه المسندة إليها كما ينبغي .
فإذا كنت ترغب في معرفة ذلك أتبع التالي
حمل التمرين (http://shihaab.topcities.com/workshop1.zip)
في الإطار الأول أكتب هذا النص البرمجي
atLeastflash4 = “1”;
في الإطار الثاني ضع blank key frame وكتب هذا النص البرمجي
If(Number(atleastflash4)==1) {
}else{
tellTarget (“flashThreeButton”) {
gotoAndStop(2);
}
stop();
}
الشرح : يقول Phillip أن الشرط الأول هو تحصيل حاصل أي لا يقوم بفعل شيء أبداً
بل أنه سيكمل المترجم العمل إلى الإطار الثالث والسبب أنه لا تستطيع أي نسخة قبل النسخة
الرابعة قراءة أداة الشرط if أي أن النسخ السابقة للبرنامج الفلاش لا تدعم أداة الشرط هذه
ولكن الغريب في الأمر أن النسخ القديم تدعم else بينما لا تدعم كما ذكرنا if
المهم إذا كانت النسخة في متصفح المستخدم تدعم أداة الشرط لن يحدث شي ء أما إذا كانت النسخة لا
تدعم أداة الشرط if فبالتأكيد ستذهب إلى الشق الأخر من النصوص البرمجية وهي الذهاب إلى الفلم المسمى
Flashthreebutton والوقوف في الإطار الثاني بالنسبةِ له
ثم النص البرمجي stop() لوقف المترجم عن القراءة
الآن تعال نصنع الفص button الذي ذكرنا للتو
اصنع فلم أذهب في الإطار الثاني داخل الفلم وأرسم زر معين
ثم حوله إلى زر ولا تنسى أن تسمى الاسم التعريفي للفلم flashtreebutton
ثم ألصق هذا النص البرمجي فيه
On(Press) {
GetURL (“http://www.macromedia.com/shockwave/download/index.cgi?p1_prod_version=shockwaveflash,”_blank”) ;
}
الشرح المستخدم الذي لا يملك فلاش 4 أي اقدم من هذه الإصدارة سرى هذا الزر
كذلك تستطيع كتابة رسالة للمستخدم لإعلامه عن التحديث أي سأترك الذوق لك
هذا العنوان سيقوم بتحديث متصفح المستخدم إلى النسخة الأخيرة من مشغل فلاش
في نفس الفلم في الإطار الأول ضع stop();
الآن تعال نهتم بمستخدمين النسخة الرابعة وما فوق
في المشهد الرئيسي في الإطار الثاني اصنع فلم وضع به زر وسمي الفلم في الاسم التعريفي flashfourbutton
الآن ضع blank Key Frame في الإطار الثالث وأكتب هذا النص البرمجي
playerVersion = eval(“$version”);
revision = subString(playerVersion,5,1);
if(Number(int(revision))<Number(int(5))){
tellTarget(“flashfourbutton”) {
gototAndStop(2);
}
}else{
getURL (“flash_five_content.html”,”_self”);
}
stop();
الشرح
المتغير playerVersion يساوي المتغير $version
وحيث أنه يستخدم العلامة $ فإننا اضطررنا أن نستخدم الوظيفة
Eval() لتقيم هذه القيمة وإرجاعها ألينا من خلال الشرط
والمتغير $version هو متغير مخصص لمعرفة بيئة التشغيل للمستخدمين
وعادة ما تكون القيمة المرجعة بالشكل التالي
Win 5,0,30,0
ف win هي البيئة المشغلة للمستخدم
5 هي الأساس أي النسخة الأساسية مثل الإصدارة خمسة أو ستة وهكذا
0 هي التفصيل مثلاً النسخة 5.5 و 6.1 وهكذا
30 وهو رقم الطبعة أو التحديث
0 وهو غير مستخدم أي فقط تحصيل حاصل
ثم قلنا أن المتغير revision يساوي القيم في المتغير المذكور للتو
معتمدً على الوظيفة subString() للمزيد عن هذه الوظيفة يمكنك الإطلاع على
المترجم الأسبوعي 2 (http://www.saven7.com/vb/showthread.php?s=&threadid=5543)
يقول المبرمج أن Number() لم تكن موجودة في فلاش 4 (لا تعليق)
المهم ما دام الأمر يتعلق بفلاش 4 فلابد من وضع الوظيفة int() وتعني integer أي تحويل الرقم
من عدد حقيقي إلى عدد صحيح مثلاً من 3.2 إلى 3 أو تحويل نص إلى رقم كمثالنا هذا . لمعرفة هل القيمة في هذا المتغير
وهو revision بعد تحويلها إلى رقم اصغر من الرقم الصحيح 5 إذا كان كذلك فالمستخدم يملك مشغل فلاش 4 فلا بد
أن يذهب إلى الزر flashfourbutton لعمل تحديث
غير ذلك سيذهب إلى موقعك الشخصي أو غيره حيث السطر الخير من النصوص البرمجية
تبين أن المستخدم يمتلك النسخة المشغلة للإصدارة الأخيرة
السؤال ماذا لو تم تحديث الفلاش إلى إصدارة أحدث من الذي كتبنا أي أحدث من 5
بلا شك سيكون العمل الذي صنعنا للتو ذاهبً أدراج الرياح
الحل يقول المبرمج هنالك طريقة للتخلص من هذه المشكلة حتى ولو تم الإصدار إلى الإصدارة العاشرة للبرنامج
التكملة في الدرس الثاني المكمل لهذا الدرس وذلك لا أستطيع أن أعطيك الدرس لكثرت الوظائف التي لم نتطرق
لها فيه وحتى يتسنى لنا ذلك سنقوم بشرح الوظائف في تسليط الضوء عليها .
هذا والله أعلى وأعلم السلام عليكم ورحمة الله وبركاته
الدرس الأول التحقق من متصفح المستخدم أو الزائر إذ يمتلك مشغل فلاش الإصدار الخامس أم لا
شاهد المثال (http://shihaab.topcities.com/detectionVersion.html)
والسبب هو أنه إذا كان المستخدم لا يمتلك فلاش 5 فأنهُ كثير من الوظائف والنصوص البرمجية لان
تؤدي مهامه المسندة إليها كما ينبغي .
فإذا كنت ترغب في معرفة ذلك أتبع التالي
حمل التمرين (http://shihaab.topcities.com/workshop1.zip)
في الإطار الأول أكتب هذا النص البرمجي
atLeastflash4 = “1”;
في الإطار الثاني ضع blank key frame وكتب هذا النص البرمجي
If(Number(atleastflash4)==1) {
}else{
tellTarget (“flashThreeButton”) {
gotoAndStop(2);
}
stop();
}
الشرح : يقول Phillip أن الشرط الأول هو تحصيل حاصل أي لا يقوم بفعل شيء أبداً
بل أنه سيكمل المترجم العمل إلى الإطار الثالث والسبب أنه لا تستطيع أي نسخة قبل النسخة
الرابعة قراءة أداة الشرط if أي أن النسخ السابقة للبرنامج الفلاش لا تدعم أداة الشرط هذه
ولكن الغريب في الأمر أن النسخ القديم تدعم else بينما لا تدعم كما ذكرنا if
المهم إذا كانت النسخة في متصفح المستخدم تدعم أداة الشرط لن يحدث شي ء أما إذا كانت النسخة لا
تدعم أداة الشرط if فبالتأكيد ستذهب إلى الشق الأخر من النصوص البرمجية وهي الذهاب إلى الفلم المسمى
Flashthreebutton والوقوف في الإطار الثاني بالنسبةِ له
ثم النص البرمجي stop() لوقف المترجم عن القراءة
الآن تعال نصنع الفص button الذي ذكرنا للتو
اصنع فلم أذهب في الإطار الثاني داخل الفلم وأرسم زر معين
ثم حوله إلى زر ولا تنسى أن تسمى الاسم التعريفي للفلم flashtreebutton
ثم ألصق هذا النص البرمجي فيه
On(Press) {
GetURL (“http://www.macromedia.com/shockwave/download/index.cgi?p1_prod_version=shockwaveflash,”_blank”) ;
}
الشرح المستخدم الذي لا يملك فلاش 4 أي اقدم من هذه الإصدارة سرى هذا الزر
كذلك تستطيع كتابة رسالة للمستخدم لإعلامه عن التحديث أي سأترك الذوق لك
هذا العنوان سيقوم بتحديث متصفح المستخدم إلى النسخة الأخيرة من مشغل فلاش
في نفس الفلم في الإطار الأول ضع stop();
الآن تعال نهتم بمستخدمين النسخة الرابعة وما فوق
في المشهد الرئيسي في الإطار الثاني اصنع فلم وضع به زر وسمي الفلم في الاسم التعريفي flashfourbutton
الآن ضع blank Key Frame في الإطار الثالث وأكتب هذا النص البرمجي
playerVersion = eval(“$version”);
revision = subString(playerVersion,5,1);
if(Number(int(revision))<Number(int(5))){
tellTarget(“flashfourbutton”) {
gototAndStop(2);
}
}else{
getURL (“flash_five_content.html”,”_self”);
}
stop();
الشرح
المتغير playerVersion يساوي المتغير $version
وحيث أنه يستخدم العلامة $ فإننا اضطررنا أن نستخدم الوظيفة
Eval() لتقيم هذه القيمة وإرجاعها ألينا من خلال الشرط
والمتغير $version هو متغير مخصص لمعرفة بيئة التشغيل للمستخدمين
وعادة ما تكون القيمة المرجعة بالشكل التالي
Win 5,0,30,0
ف win هي البيئة المشغلة للمستخدم
5 هي الأساس أي النسخة الأساسية مثل الإصدارة خمسة أو ستة وهكذا
0 هي التفصيل مثلاً النسخة 5.5 و 6.1 وهكذا
30 وهو رقم الطبعة أو التحديث
0 وهو غير مستخدم أي فقط تحصيل حاصل
ثم قلنا أن المتغير revision يساوي القيم في المتغير المذكور للتو
معتمدً على الوظيفة subString() للمزيد عن هذه الوظيفة يمكنك الإطلاع على
المترجم الأسبوعي 2 (http://www.saven7.com/vb/showthread.php?s=&threadid=5543)
يقول المبرمج أن Number() لم تكن موجودة في فلاش 4 (لا تعليق)
المهم ما دام الأمر يتعلق بفلاش 4 فلابد من وضع الوظيفة int() وتعني integer أي تحويل الرقم
من عدد حقيقي إلى عدد صحيح مثلاً من 3.2 إلى 3 أو تحويل نص إلى رقم كمثالنا هذا . لمعرفة هل القيمة في هذا المتغير
وهو revision بعد تحويلها إلى رقم اصغر من الرقم الصحيح 5 إذا كان كذلك فالمستخدم يملك مشغل فلاش 4 فلا بد
أن يذهب إلى الزر flashfourbutton لعمل تحديث
غير ذلك سيذهب إلى موقعك الشخصي أو غيره حيث السطر الخير من النصوص البرمجية
تبين أن المستخدم يمتلك النسخة المشغلة للإصدارة الأخيرة
السؤال ماذا لو تم تحديث الفلاش إلى إصدارة أحدث من الذي كتبنا أي أحدث من 5
بلا شك سيكون العمل الذي صنعنا للتو ذاهبً أدراج الرياح
الحل يقول المبرمج هنالك طريقة للتخلص من هذه المشكلة حتى ولو تم الإصدار إلى الإصدارة العاشرة للبرنامج
التكملة في الدرس الثاني المكمل لهذا الدرس وذلك لا أستطيع أن أعطيك الدرس لكثرت الوظائف التي لم نتطرق
لها فيه وحتى يتسنى لنا ذلك سنقوم بشرح الوظائف في تسليط الضوء عليها .
هذا والله أعلى وأعلم السلام عليكم ورحمة الله وبركاته