وعليكم السلام
موضوع مهم وانت اول واحد يتطرق له لان ماشفت ولاواحد سأل عنه ولاحتى لدي في فلاشيات
اول شي النقطه المهمه مع المعايير القياسيه وهو امر embed
ذا الامر الان ليس له فائده كما ذكرت فقد تم الاستغناء عنه نهائيا
وامر object هو الحل الامثل "لكن"
متصفح مثل الانترنت اكسبلورر " جالس لنا "
ويطلع لينا المشاكل من تحت الارض
اذا وضعنا الفلاش فانه يعمل ولكن تظهر لك رسال "click here to active activeX content"
او رساله قريبه منها
لذلك بدأت بالبحث عن الحلول وافضل حل هو حل شركة ادوبي
هناك تقريبا 5 حلول موجوده ولكنني من النوع المحب للتجربه على اصدارات الانترنت اكسبلورر
وعلى اصدارات الويندوز وايضا التجربه على المتصفحات الاخرى
الـ 5 حلول هناك ماهو سهل وعباره عن سطر واحد وهناك ماهو معقد مثل swfObject
في البدايه استعملت swfobject ولكن بعد فتره وجدت هناك خطأ به بحيث انه لايظهر مع نسخة اكسبلورر الاصداره السابعه "بعض الاحيان"
لذلك بدأت في قراءة حل adobe وهو الامثل ويعمل بكفاءه
ان ذهبت الى موقع ادوبي فسوف تحصل على الاكواد البرمجيه ولكنها ليست متوافقه مع المعايير القياسيه لذلك حاولت تصحيحها والحمدلله نجحت في اظهار الفلاش بالطريقه المرضيه وايضا قمت بترتيب وتحسين عرض الكود حتى يسهل تعديله بشكل سريع :
1: لن تظهر لك رسالة التحذير بسبب ال activeX
2: تعمل على جميع اصدارات الانترنت اكسبلورر والفيرفوكس وOPERA و mozilla
3: سهوله في التعامل مع الكود
4: تصحيح ممتاز للطول والعرض واضافات ال plugin
الكود الصحيح والمتوافق
كود:
<div align="center">
<script type="text/javascript">
AC_FL_RunContent(
'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
'width','العرض',
'height','الطول',
'src','اسم الفيلم كامل',
'quality','high',
'pluginspage','http://www.macromedia.com/go/getflashplayer',
'movie','اسم الفيلم فقط',
'allowScriptAccess','sameDomain',
'menu','false'
);
</script>
<noscript>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="العرض" height="الطول">
<param name="movie" value="اسم الفيلم كامل" />
<param name="quality" value="high" />
<param name="allowScriptAccess" value="sameDomain" />
<param name="menu" value="false" />
</object>
</noscript>
</div>
لو افترضنا اسم الفيلم كامل هو file.swf
اذا من الكود البرمجي تستبدل التالي:
اسم الفيلم كامل file.swf
اسم الفيلم فقط file
الكود هذا متوافق مع المعايير القياسيه وايضا لاحظ عدم وجود embed
عمل هذا الكود تحتاج الى ملفين جافا سكريبت يجب وضعها على موقعك
اسحبهم من هنا
http://www.flashyat.com/vb/AC_RunActiveContent.js
http://www.flashyat.com/vb/AC_ActiveX.js
ويجب استدعاءها في ال head في صفحة العرض
كود:
<head>
<script type="text/javaScript" src="AC_RunActiveContent.js"></script>
<script type="text/javaScript" src="AC_ActiveX.js"></script>
</head>
طبعا يمكنك اضافة اوامر اخرى للكود كالشفافيه
كود:
<param name="wmode" value="transparent" />
وايضا المتغيرات اللي ممكن ترسلها للفلاش FlashVars
انتهينا من موضوع العرض نأتي لموضوع الكاش
من افضل الطرق وكما ذكرت انت هي عمل ملف loader ونعطيه اسم الملف فقط
لكن في حالات كهذه يجب ان يكون كل ملف فلاشي له ملف loader
لان ملف ال loader يجب ان يكون طوله وعرضه بنفس ملف الفلاش الذي تريد عرضه
والطريقه سهله جدا
عليك بوضع الملفين بجانب بعضهم ثم ترسل المتغيرات flashVars الى ملف ال loader
مثال سريع
كود:
loader.swf?&SWFLoader=file1.swf
في ملف loader.swf تضع فقط هذا الامر على اول فريم
كود:
loadMovieNum (SWFLoader, 0);
الفائده هنا ان ملف ال LOADER حجمه لن يتعدى نصف كيلو بايت
اي سوف يظهر بمجرد دخول الزائر الى الصفحه
لكن المهم ان تضع عملية PRELOADER للفلاش الذي سوف يظهر
عدم وجود عملية تحميل لملف الفلاش هو طريقه فاشله لعرض الفلاش
طريقه اخرى للكاش :
اعطي ملف الفلاش متغير عشوائي بعد اسمه باستخدام ال PHP مثلا بحيث كل مره يظهر فيها الفلاش يتم تحميله مره اخرى مثال سريع
كود PHP:
<?php
$RNumber = rand(111111111, 999999999);
?>
<div align="center">
<script type="text/javascript">
AC_FL_RunContent(
'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
'width','ا600',
'height','300',
'src','file.swf?<?php print $RNumber ?>',
'quality','high',
'pluginspage','http://www.macromedia.com/go/getflashplayer',
'movie','file',
'allowScriptAccess','sameDomain',
'menu','false'
);
</script>
<noscript>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="600" height="300">
<param name="movie" value="file.swf?<?php print $RNumber ?>" />
<param name="quality" value="high" />
<param name="allowScriptAccess" value="sameDomain" />
<param name="menu" value="false" />
</object>
</noscript>
</div>
لاحظ كيف تم كتابة اسم الملف الكامل
وهذا سيعطينا نتائج كالتالي
file.swf?164793650
file.swf?164124387
file.swf?124743460
file.swf?189033355
اي نتائج مختلفه دائما اذا سيظهر نفس الفيلم كل مره ويتم تحميله للزائر كل في كل زياره له
وهذه صفحة المنتدى الرئيسيه وموجود بها فلاش لعرض الاحصائيات
http://www.flashyat.com/vb/index.php
وهذه نتيجة w3 للمعايير القياسيه
http://validator.w3.org/check?uri=ht...m/vb/index.php
اكتفي هنا لتوضيح النقاط الرئيسيه واي سؤال انا حاضر
محمد