Що таке файл SWF?
SWF-файл — це файл анімації, створений за допомогою Adobe Flash. Для створення анімації він може містити різні типи елементів, як-от текст, векторні зображення, растрові зображення, скрипти дій, об’єкти, як-от кола, лінії, квадрати та прямокутники. Файли SWF упорядковують ці мультимедійні елементи у кадри, які можна відтворювати з різною частотою кадрів за секунду (fps). SWF означає короткий веб-файл, але також відомо, що він має формат Shockwave.
Програми, які могли відкривати SWF-файли*, включали Adobe Flash Player (зараз припинено) і Eltima Elmedia Player.
Формат файлу SWF - Додаткова інформація
Файли SWF використовувалися для зберігання на диску як двійкових файлів. Формат файлу SWF використовувався для розробки анімацій та ігор, які можна було вставляти у веб-сайти та грати незалежно. Він також підтримував відео та звуки, що давало розробникам багато можливостей для створення інтерактивних мультимедійних програм. Файли SWF можна відтворювати у веб-браузерах, у яких встановлено Adobe Shockwave. Adobe Flash було припинено в грудні 2020 року через недоліки та проблеми з безпекою.
Коротка історія формату файлу SWF
Формат файлу SWF був спочатку розроблений компанією FutureWave Software для відображення анімації з метою запуску програмного забезпечення програвача в будь-якій системі з повільнішим мережевим з’єднанням, зберігаючи при цьому невеликий розмір файлу. У грудні 1996 року Macromedia володіла FutureWave і перейшла на Macromedia Flash 1.0.
У 2005 році компанія Macromedia була придбана компанією Adobe, яка оголосила про SWF як частину свого проекту з відкритим кодом у 2008 році. У тому ж році Adobe випустила код для популярних у світі веб-механізмів, щоб дозволити їм сканувати та індексувати файли SWF. Однак, оскільки файли SWF стають стандартним форматом для публікації вмісту Flash в Інтернеті, SWF було переглянуто на малий веб-формат.
Структура файлу SWF
Шлях — це основний графічний елемент у SWF, який є послідовністю сегментів основних елементів, починаючи від простих ліній і закінчуючи кривими Безьє. Ці прості елементи також допомагають створювати інші додаткові примітиви, такі як куби, еліпси та навіть тексти. Графічні примітиви в SWF мають схожість з графічними елементами інших форматів, таких як SVG і MPEG-4 BIFS.
Відображення списків і повторне використання/перейменування вже визначених елементів також дозволено форматом. Формат бінарного потоку SWF можна порівняти з атомами QuickTime, які схожі за тегом, розміром і корисним навантаженням. Двійковий формат потоку дозволяє старим гравцям пропускати непідтримуваний вміст. Хоча оригінальні версії SWF були обмежені векторною графікою та зображеннями, тому нові версії також дозволяють аудіо- та відеовміст.
Новий низькорівневий 3D API Flash Player під назвою «Stage3D» був представлений у версії 11. Передбачалося, що цей API буде аналогом OpenGL або Direct3D. Stage3D визначає кольори мовою низького рівня під назвою Adobe Graphics Assembly Language (AGAL). Нижче наведено кілька основних типів даних у форматі SWF.
Координати
Координати XY у форматі файлу SWF зберігаються як цілі числа та вимірюються в одиниці, яка називається твіп. Твіп складається з 1/20 логічного пікселя. Логічний піксель і піксель екрана однакові, коли файл відтворюється без масштабування на 100%.
Цілі типи та порядок байтів
Знакові та беззнакові цілі типи 8, 16, 32 і 64 біт дозволені у форматі файлу SWF. Порядок байтів у порядку байтів використовується для зберігання цілочисельних значень. Порядок бітів зберігається в байтах у порядку байтів. Усі цілі значення мають бути вирівняні по байтам. Цілі числа зі знаком представлені за допомогою традиційних бітових шаблонів із доповненням до двох.
Числа з фіксованою комою
Формат файлу SWF підтримує два типи чисел із фіксованою комою, тобто 32 та 16 біт.
Числа з плаваючою комою
SWF 8 і новіші версії використовують три типи чисел з плаваючою комою (FLOAT, FLOAT 16, DOUBLE), які сумісні зі стандартом IEEE 754 типів з плаваючою комою.
Закодовані цілі числа
Один тип закодованого цілого числа підтримується SWF 9 і пізнішими версіями зі змінною кількістю байтів.