به طور کلی قالب فایل SWF شامل دو بخش اصلی Header و آرایه Tag ها است.

در بایتهای بخش header به ترتیب مقادیر زیر قرار می‌گیرند:

1. امضا یا Signature فایل فلش (3 بایت) که یکی از دو حالت “FWS” یا “CWS” است. برای فایل‌های فلش غیر فشرده از کلمه FWS و در حالت فشرده بودن فایل نیز CWS درج می‌گردد. شیوه فشرده سازی فایل نیز که از فلش پلیر نسخه 6 اضافه شد، از الگوریتم ZLIB پیروی می‌کند.

2. بایت مشخص کننده نسخه فایل فلش به صورت هگزادسیمال.

3. مشخصه حجم فایل که به صورت یک متغیر 4 بایتی و با احتساب حجم Header درج می‌گردد. اگر فایل غیر فشرده باشد، مقدار این متغیر، دقیقا با سایز فایل برابر است، در غیر این صورت مقدار حجم فایل قبل از فشرده سازی را نشان می‌دهد.
با داشتن حجم فایل در حالت غیر فشرده، عمل Decompression آن در پلیر با سرعت بیشتری انجام میشود.

4. ابعاد Stage فایل فلش که به صورت یک متغیر RECT درج شده است.

5. متغیر 2 بایتی شامل نرخ فریم (FrameRate) فایل فلش.

6. متغیر 2 بایتی شامل عدد مجموع تعداد فریم‌های فایل SWF.

همانطور که گفتم پس از Header، آرایه‌ای از تگهای swf درج می‌شوند که محتوای فایل در آنها قرار داشته و همگی از قالب یکسانی (طبیعتا با محتوای غیر یکسان) برخوردارند. از آنجا که داده‌های هر بلاک به صورت مستقل هستند، امکان ارجاع به داده‌ای واقع در یک Tag دیگر وجود ندارد. در نتیجه به راحتی میتوان تگها را حذف یا اضافه نمود.

قالب کلی هر تگ، شامل دو مولفه TagType و TagLength است. مورد اول نوع تگ را مشخص کرده و دومی نیز معرف حجم آن است. حجم هر تگ نیز به یکی از دو صورت کوتاه (برای تگهای با سایز کمتر از 62 بایت) و بلند (تگهای با سایز حداکثر 4 گیگابایت) درج می‌شود.

نوع تگ (TagType)

به طور کلی تگهای فلش به دو دسته “Definition tags” و “Control tags” تقسیم می‌شوند.

1. تگ‌های Definition یا تعریفی، شامل تعریف محتوای فایل فلش از قبیل shape ها، bitmsp ها، متنها، اصوات و غیره هستند. هر تگ شامل یک مشخصه منحصر به فر به نام character ID است که در زمان اجرای فایل فلش در یک دیکشنری پویا ذخیره شده و به نوعی جدول اشاره گر به موجودیتهای انیمیشن را تشکیل می‌دهد.
بدیهیست که تگهای Definition  حکم data را داشته و موجودیتی غیر فعال و داده‌ای دارند.

2. تگهای Control که همانطور که از نام آنها پیداست، روند اجرای انیمیشن را تعریف می‌نمایند. تمام موجودیت‌های اجرایی در یک فایل swf (مانند کدهای ActionScript) در این تگها قرار می‌گیرند.

به طور کلی در رابطه با قوانین حاکم بر ترتیب تگ‌های SWF، به 2 مورد مهم به شرح زیر باید اشاره نمود:

–    آرایه تگها با تگی به نام FileAttributes آغاز و با تگ نهایی خاتمه می‌یابد.

–    هر تگ Definition لزوما باید قبل از تگ کنترلی که از آن استفاده می‌کند قرار گرفته باشد. در نتیجه هیچ تگی نمی‌تواند از داد‌های موجود در تگ دیگری که پس از آن درج شده است، استفاده نماید.

Print this pageEmail this to someoneShare on Google+Share on FacebookShare on LinkedInTweet about this on TwitterShare on RedditShare on TumblrShare on StumbleUponPin on Pinterest