Прямая связь с SWF, каковы недостатки? - PullRequest
8 голосов
/ 10 сентября 2008

Обычно приложения Flash и Flex встраиваются в HTML с использованием комбинации тегов object и embed или, более часто, с использованием JavaScript. Однако, если вы ссылаетесь непосредственно на SWF-файл, он откроется в окне браузера, и, не глядя в адресную строку, вы не сможете сказать, что он не был встроен в HTML с размером, установленным на 100% ширины и высоты.

Учитывая издержки HTML, CSS и JavaScript, необходимые для встраивания приложения Flash или Flex, заполняющего 100% окна браузера, каковы недостатки обратной ссылки непосредственно на SWF-файл? Какие плюсы?

Я могу вспомнить один плюс и три недостатка: вам не нужно более 100 строк HTML, JavaScript и CSS, которые требуются в противном случае, но у вас нет определения плагинов, нет проверки версий, и вы теряете свой лучший вариант SEO (прогрессивное улучшение).

Обновление не зацикливайтесь на 100+ строках, я просто имею в виду, что количество кода, необходимого для встраивания SWF, довольно много (и я имею в виду такие библиотеки, как SWFObject), и это просто для отображения SWF, что можно сделать без единой строки, связавшись с ним напрямую.

Ответы [ 7 ]

7 голосов
/ 20 сентября 2008

Внешние ссылки для прямой связи с SWF-файлом:

  • Быстрый доступ
  • Вы знаете, что это флэш-фильм еще до того, как нажали на ссылку
  • Пропуск html & js файлов (Вы все равно не будете использовать CSS для отображения 100% флэш-фильма)

Downsides:

  • У вас мало контроля над фильмами по умолчанию.
  • Нельзя использовать пользовательские цвета фона, прозрачность и т. Д.
  • Нельзя использовать flashVars для отправки данных в фильм из HTML
  • Невозможно использовать команду fscom из фильма на страницу
  • Пропорции фильма никогда не совпадают с пропорциями окна пользователя
  • Вы не можете компенсировать неработоспособность браузера (выходит новый браузер, и у вас проблемы)
  • Нет SEO
  • Нет заголовка страницы, плохо, если вы хотите, чтобы люди правильно создавали закладки.
  • Нет информации о плагине, ссылки для скачивания и т. Д.
  • Если ваш SWF-файл подключается к внешним источникам данных, у вас могут быть проблемы с несколькими доменами.
  • Переименование SWF-файла также приведет к переименованию ссылки. Плохо для версий.

Короче говоря, для сложного приложения - всегда используйте HTML. Для простого анимационного фильма вы можете пойти в любую сторону.

3 голосов
/ 10 сентября 2008

По моему опыту, не все браузеры обрабатывают это правильно. Я не совсем уверен, почему (или какие браузеры), но я по ошибке иногда отправлял подобные ссылки клиентам, и они часто возвращались в замешательстве. Я подозреваю, что их браузер предлагает им загрузить файл, а не отображать его должным образом.

3 голосов
/ 10 сентября 2008

Вы также теряете внешнее управление SWF. Когда он встроен в HTML, вы можете использовать JavaScript для связи с SWF. Если SWF загружен напрямую, это может быть невозможно.

Ваша цитата из 100+ строк мне кажется довольно высокой. HTML-код, который FlashDevelop генерирует для встраивания SWF-файла, занимает всего около 35 строк, включая один файл swfobject.js. Вам не нужно прикасаться к файлу js, и в лучшем случае нужно лишь слегка изменить HTML-код, чтобы заставить его делать то, что вы хотите.

1 голос
/ 10 сентября 2008

Один положительный момент, о котором я могу подумать, - это возможность указать параметры GET в прямом URL-адресе к SWF, который затем будет доступен в приложении Flash (через Application.application.parameters во Flex, не знаю, как вы получите к ним доступ в Flash CS3). Это, конечно, может быть достигнуто и другими способами, если у вас есть обертка HTML, но таким образом это менее трудоемко.

0 голосов
/ 11 октября 2011

Больше преимуществ:

  1. Облегченный вид, потому что вы можете избавиться от заголовка со всеми панелями инструментов, которые там накапливаются, и даже полоса прокрутки не нужна. Это усиливает эффект, когда вы пытаетесь показать много действия в короткой вспышке.
  2. Biggie: вы получаете это в окне, которое вы можете перетащить больше или меньше и сделать фильм больше и меньше. Плеер изменит размер фильма, чтобы заполнить окно, которое у вас есть. Это отлично подходит для таких вещей, как групповые фотографии, где каждый хочет увеличить, чтобы найти себя и своих друзей. Я сделал это для одного кадра производства Flash!

Downsides: Как и в случае с всплывающими окнами в целом, если вы запрашиваете несколько всплывающих окон с одного и того же сайта и хотите всплывающие окна разного размера, браузеры, как правило, просто переопределяют размер, который вы запрашиваете в window.open, и повторно используете все, что есть. Вам нужно закрыть любое открытое всплывающее окно, чтобы window.open сделал новое создание. Это становится сложным, и я не смог заставить его работать на разных страницах веб-сайта. Любой, кто сделал это успешно, пожалуйста, напишите, как!

0 голосов
/ 01 января 2009

Adobe должно быть стыдно за себя со стандартным встраиванием, которое побеждает оцепенение соглашения по конфигурации. Проверьте ^ swfobject (как упомянуто выше) или swfin

0 голосов
/ 10 сентября 2008

Зачем вам нужно более 100 строк кода? Использование что-то вроде swfobject значительно уменьшает это количество (и вообще, вы все равно не хотите обнаруживать плагины и т. Д. Вручную).

...