Что такое код swf_fonttracking


Содержание

Изменение байтового кода swf для выходных переменных

У меня есть swf файл, который я хочу изменить байтовый код (я использую ActionScript Extractor).

Что такое хороший способ легко вывести переменную, например, быстрый способ сделать эквивалент (в JS)

Я попытался использовать функцию следа adobe, но он работает очень плохо, а иногда, похоже, не работает вообще.

параметры

message Сообщение для отображения.

title Текст в строке заголовка предупреждений. Этот параметр является необязательным; если вы его опустите, строка заголовка пуста.

flags Необязательный параметр, указывающий кнопки для отображения в окне предупреждения. Значением по умолчанию является Alert.OK, в котором отображается кнопка OK. Когда вы используете более одного значения, отделите значения с помощью | персонаж. Используйте одно или несколько из следующих значений: Alert.OK , Alert.CANCEL , Alert.YES , Alert.NO .

Вы также можете использовать Alert.NONMODAL чтобы указать, что окно предупреждения немодно. Немодальное окно позволяет пользователю взаимодействовать с другими окнами в приложении.

parent Родительское окно для компонента Alert. Окно Alert самоцентрируется в родительском окне. Используйте значение null или undefined, чтобы указать временную шкалу _root. Родительское окно должно быть подклассом класса UIComponent, либо как другой компонент Flash, являющийся подклассом UIComponent, либо как пользовательское окно, которое является подклассом UIComponent (дополнительную информацию см. В разделе О наследовании в Learning ActionScript 2.0 в Adobe Flash). Этот параметр является необязательным.

clickHandler Обработчик событий трансляции при нажатии кнопок. В дополнение к стандартным свойствам объекта события click есть дополнительное свойство detail, которое содержит значение флага кнопки, которая была нажата (Alert.OK, Alert.CANCEL, Alert.YES, Alert.NO). Этот обработчик может быть функцией или объектом. Дополнительные сведения см. В разделе Использование прослушивателей для обработки событий в разделе «Использование компонентов ActionScript 2.0».

icon Строка, которая является идентификатором привязки символа в библиотеке; этот символ используется как значок, отображаемый слева от текста предупреждения. Этот параметр является необязательным.

defaultButton Указывает, какая кнопка имеет начальную фокусировку и нажимается, когда пользователь нажимает Enter (Windows) или Return (Macintosh). Если пользователь переходит к другой кнопке, эта кнопка запускается при нажатии клавиши Enter.

Этот параметр может быть одним из следующих значений: Alert.OK , Alert.CANCEL , Alert.YES , Alert.NO .

Возвращает

Созданный экземпляр оповещения.

Описание

Метод (класс); метод класса (статический), который отображает окно предупреждения с сообщением, необязательный заголовок, дополнительные кнопки и необязательный значок. Заголовок предупреждения появляется в верхней части окна и выравнивается по левому краю. Значок отображается слева от текста сообщения. Кнопки расположены в центре ниже текста сообщения и значка.

Следующий код — простой пример модального окна предупреждения с кнопкой OK:

Следующий код определяет обработчик кликов, который отправляет сообщение на панель «Выход» о том, какая кнопка была нажата. (У вас должен быть компонент Alert в библиотеке, чтобы этот код отображал предупреждение, чтобы добавить компонент в библиотеку, перетащите его в рабочую область и затем удалите его):

Загрузка TTF шрифтов во flash

Кто, как не хабрачеловек, тратящий несколько часов в день на прочтение полезного и интересного материала, знает, что контент правит интернетом. А его правильное и красивое отображение, которое находит свою реализацию в различных шрифтах, правит нашим вкусом.

Огромное количество сайтов, которые мы просматриваем ежедневно, радует наш глаз многообразием шрифтовых решений: заголовки, слоганы, тексты, опросы, комментарии… Для всего этого найдется свой уникальный шрифт. Именно поэтому нам хотелось бы поговорить сегодня о том, как сделать сайт не только более динамичным, но и более читаемым. Речь пойдет о разработке MotoCMS — онлайн менеджере шрифтов.

Дочитав статью до конца, вы узнаете все возможности этого менеджера, а также поймете как можно применять его в своих flash-проектах.

Начнем с краткого плана нашей статьи. Сегодня мы поговорим о:

  • преимуществах и недостатках встроенных шрифтов;
  • наиболее распространенных ошибках компиляции;
  • том как интегрировать новый шрифт в любой flash сайт;

Итак, как любил говаривать старик Гагарин, поехали…

Преимущества и недостатки встроенных шрифтов

Если вы озаботились внедрением какого-либо шрифта в ваш проект, то это значит, что он будет доступен для воспроизведения Flash Player’ом в любой из рабочих моментов и вам не придется беспокоиться о том, что шрифт отсутствует у какого-либо пользователя. Среди основных явных преимуществ встроенных шрифтов можно выделить следующие:

  • шрифт не требует дополнительной установки для корректного отображения;
  • к встроенному шрифту можно применять эффекты, делать блеклым, вращать и тому подобное;
  • сглаживание встроенных шрифтов лучше воспринимается пользователем;
  • использование встроенных шрифтов позволяет добиться лучшего рендеринга текста в flash-файлах

Однако, как у любой медали, у встроенных шрифтов есть свои недостатки.

  • Вы можете использовать шрифты только в .TTF и .OTF форматах. Если вам понадобится использование нестандартного шрифта, то его необходимо будет импортировать в отдельный .swf файл, а уже затем корректно прописать файл в вашем приложении.
  • Встроенные шрифты повлияют на конечный вес файла — сделают его больше, а значит пользователям понадобится больше времени, чтоб дождаться загрузки вашего сайта.
  • Зачастую вам понадобится применение дополнительного кода для того чтоб добавить новый шрифт.

Использование дополнительных встроенных шрифтов в любом случае обосновано, поскольку позволяет сделать ваш сайт еще более привлекательным, неповторимым и удобным для чтения.

В любом случае, для того, чтоб начинать процесс добавления нового шрифта он должен быть у вас в наличии, в формате .TTF или .OTF. Вам понадобится преобразовать его в .SWF. С онлайн менеджером шрифтов (ОМШ) процедура выполняется за несколько минут.

Логика cоздания нового шрифта

Выбираем шрифт в формате .TTF или .OTF и загружаем его с помощью кнопки «Add font»

Жмем на кнопку «Create fonts». Процесс пошел

В результате получаем архив с сконвертированным шрифтом, готовым для дальнейшего использования в flash-сайтах

Онлайн менеджер шрифтов является самостоятельным бесплатным продуктом компании MotoCMS и доступен абсолютно для всех разработчиков


Возможные ошибки компиляции

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

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

В некоторых случаях, если используемый вами шрифт в формате .TTF или .OTF был ранее не совсем корректно скомпилирован из другого формата — это также может послужить причиной ошибки.

Для того, чтоб процедура компиляции прошла успешно, так же рекомендуем обратить внимание на дополнительные параметры, которые станут вам доступны если нажать на кнопку с изображением карандаша

С помощью опции редактирования, при необходимости, Вы сможете установить нужные вам дополнительные параметры шрифта:

  • возможность изменить семейство шрифта;
  • отображение по умолчанию (стандартное, полужирное, курсив);
  • добавление только необходимых символов.

На последнем пункте хотелось бы остановиться подробней. Использование всего диапазона символов влияет на конечный размер файла, а значит именно от этого параметра будет зависеть скорость загрузки. Если вы знаете, что вам понадобится только определенный набор символов, вы можете загрузить только их. Тем самым значительно уменьшив размер конечного файла. Например, такая ситуация будет весьма уместна, если вы подбираете нестандартный шрифт для прелоадера, от которого Вам в конечном итоге понадобятся отображение всего лишь 11 символов (U+0025,U+0030-U+0039).

Стоит также отметить, что некоторые шрифты рекомендуется оптимизировать, прежде чем использовать их с Flash. Взять, хотя бы, пиксельные шрифты. Как правило они очень популярны, но их использование предполагает ряд дополнительных настроек и ограничений.

Если вы используете шаблон сайта или готовый проект с Панелью управления Moto CMS, то добавить полученный шрифт не составит практически никаких усилий, через интерфейс администрирования. Для всех остальных проектов используем код.

Код добавления готового шрифта

Если Ваш проект выполнен не на MotoCMS, то сгенерированный в ОМШ .swf-файл шрифта добавляется при помощи 59 строк кода. Вот он

Тут давайте остановимся подробней. Вначале кода мы указываем название сгенерированного шрифта

Затем создаем загрузчик для указанного файла и вызываем метод loaderCompleteHandler

Получаем класс MotoFontInfo из загруженного .swf файла шрифта

MotoFontInfo — это класс, который автоматически добавляется в каждый .swf файл при генерации шрифта. В следующем шаге мы получаем характерные особенности шрифта

.SWF-файл шрифта также содержит класс, в который включены множество стилей (например, полужирный, курсив). Мы выбираем имя класса шрифта, чтоб затем получить его от *. SWF-файла.

Следующим шагом является использование цикла. Это нужно для того, чтоб собрать воедино все стили, которые могут быть зарегистрированы в классе шрифта

В конце кода мы создаем новое текстовое поле, чтобы продемонстрировать полученный шрифт.

Приведенный выше код может быть использован на любом flash-проекте, который вы захотите разнообразить множеством шрифтовых решений.

Рады будем если статья пригодится Вам для того, чтоб сделать новый проект с использованием неограниченного количества шрифтов, либо дополнить уже существующий.

Значения иконок Font Awesome для CSS

Детальная таблица значений иконочного шрифта Font Awesome

  • ГлавнаяНовости статьиCSS , HTML Список значений шрифта Awesome для использования в css

Список значений шрифта Awesome для использования в css

  • 4.3/5
  • 8 оценок
Очень плохо! Плохо Нормально Хорошо Очень хорошо!
0% 12.5% 12.5% 12.5% 62.5%

Приветствую. Наверное вы уже знаете о таком замечательном инструменте как иконочный шрифт от Font Awesome для сайта.

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

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

Перед тем как пользоваться иконками Font Awesome на своем сайте вам нужно их будет подключить, способов есть несколько, к примеру скачать и загрузить на свой сайт или сделать прямое подключение из сервера CDNJS.

Я не буду сейчас описывать детально как подключить иконки Awesome на свой сайт с загрузкой всех файлов, так как статья чуточку о другом, как это сделать вы можете найти самостоятельно в интернете, а для того что бы подключить их из ресурса CDNJS вам достаточно на сайт где то над добавить строку:


Внедрение Flash с помощью SWFObject 2

Вопрос о внедрении Flash с помощью разметки соответствующей стандартам возникает достаточно часто, между тем у этой проблемы есть достаточно известное решение — SWFObject. SWFObject 2 не только позволяет внедрять Flash динамически, с помощью JavaScript, но и статически, когда для внедрения используется стандартная разметка, а JavaScript только исправляет неразрешимые с помощью разметки проблемы, при этом даже если JavaScript отключен пользователи все равно увидят Flash.

Скачать библиотеку и получить дополнительную информацию можно на странице проекта SWFObject в Google Code.

Что такое SWFObject?

SWFObject 2:

  • Предоставляет два оптимизированных метода внедрения Flash, основанный на разметке и использующий JavaScript
  • Предоставляет JavaScript API со всеми возможностями необходимыми для внедрения SWF файлов и получения информации о Flash плеере. [http://code.google.com/p/swfobject/wiki/api]
  • Использует один небольшой JavaScript файл (SWFObject 2.0 size: 8.7Kb / GZIPed: 3.4Kb, SWFObject 2.1 size: 9.5Kb / GZIPed: 3.8Kb)
  • Преемник SWFObject 1.5 [http://blog.deconcept.com/swfobject/] и UFO [http://www.bobbyvandersluis.com/ufo/]
  • В конце концов должен заменить Adobe Flash Player Detection Kit [http://www.adobe.com/products/flashplayer/download/detection_kit/]
  • Объединяет все существующие методы внедрения Flash и претендует на новый стандарт внедрения Flash.
  • Проект с открытым кодом Джефа Стирнса, Михаеля Вильямса и Бобби ван дер Слуйса, ранее известный как SWFFix [http://code.google.com/p/swffix/]

Почему вы должны использовать SWFObject?

  • Он более оптимизированный и гибкий чем любой другой способ внедрения Flash плеера
  • Он является универсальным решением для всех: будь вы HTML, Flash или JavaScript разработчик, это решение подходит для всех
  • Прекращает затянувшееся использование специфичной разметки для некоторых браузеров, позволяет использовать стандартную разметку и альтернативный контент
  • Использует ненавязчивый JavaScript и лучшие практики JavaScript
  • Прост в использовании

Подробное обоснование необходимости использования SWFObject 2 вы можете найти в статье Flash Embedding Cage Match опубликованной на A List Apart [http://www.alistapart.com/articles/flashembedcagematch/].

Почему SWFObject использует JavaScript?

SWFObject 2 использует JavaScript преимущественно для преодоления проблем, непреодолимых с помощью разметки:

  • Определяет версию Flash плеера и в зависимости от результата отображает Flash или альтернативный контент, чем предотвращает искажение Flash в плеерах старых версий.
  • Позволяет вернуться к альтернативному контенту с помощью DOM манипуляций в случае, если используется Flash плагин неподходящей версии (Примечание: если Flash плагин не установлен то вместо элемента object автоматически отображается вложенный альтернативный контент).
  • Позволяет использовать Adobe Express Install для установки последней версии Flash плеера
  • Решает проблему со старыми версиями движка Webkit, игнорирующими вложенные в object элементы param, используя проприетарный элемент embed. (Это единственный случай когда используется проприетарная разметка, это будет исключено в будущих версиях)
  • Позволяет публиковать Flash контент с помощью JavaScript тем самым исключать механизмы активации
  • Предоставляет продуманный JavaScript API для выполнения распространенных действий с Flash плеером и Flash контентом.

Какой из методов публикации предпочтителен, статический или динамический?

SWFObject 2 позволяет внедрять Flash двумя различными методами:

  1. При статическом методе публикации Flash и альтернативный контент внедряются с помощью стандартной разметки, а JavaScript используется для решения проблем непреодолимых с помощью разметки.
  2. Динамический метод публикации основан на замене альтернативного контента Flash контентом в случае если есть достаточно новая версия Flash плеера и поддержка JavaScript.

Преимущества статического метода публикации:

  1. Используется стандартная разметка
  2. Механизм внедрения Flash контента не зависит от JavaScript благодаря чему Flash будет доступен значительно большей аудитории:

Преимущества динамического метода публикации:

  1. Позволяет обойти механизмы активации активного контента в Internet Explorer 6/7 и Opera 9+. Обратите внимание, что Microsoft выпустил обновления исключающие механизм активации в браузерах Internet Explorer [http://www.swffix.org/devblog/?p=19]
  2. Отлично интегрируется в JavaScript приложения

Статический метод публикации Flash с помощью SWFObject

Шаг 1: Внедрение Flash и альтернативного контента с помощью стандартной разметки

Примечание: Метод вложенных объектов требует дублирования объявления object (внешний object предназначен для Internet Explorer а внутренний object для остальных браузеров), поэтому если вам нужно определить атрибуты или param для object то их нужно продублировать для внешнего и внутреннего объектов.
Обязательные атрибуты:

  • classid (только для внешнего object, значение всегда clsid:D27CDB6E-AE6D-11cf-96B8-444553540000)
  • type (только для внутреннего object, значение всегда application/x-shockwave-flash)
  • data (только для внутреннего object, определяет URL SWF файла)
  • width (для обоих элементов object, определяет ширину SWF)
  • height (для обоих элементов object, определяет высоту SWF)

Обязательные элементы param:

  • movie (только для внешнего элемента object, определяет URL SWF файла)

Примечание: Мы рекомендует не использовать атрибут codebase для указания URL установки Flash с серверов Adobe, поскольку это противоречит спецификации которая ограничивает доступ доменом текущего документа. Вместо этого используйте альтернативный контент с сообщением, что пользователь может получить полную версию установив Flash плагин.

Как использовать HTML для конфигурирования Flash контента?

Зачем нужен альтернативный контент?

Элемент object может содержать альтернативный контент который будет отображен если Flash плеер не установлен или не поддерживается. Альтернативный контент доступен поисковикам, поэтому он может быть хорошим инструментом при оптимизации сайта для поисковиков. Альтернативный контент нужен если вы хотите сделать сайт доступным для пользователей не использующий плагины [http://www.adobe.com/devnet/flash/articles/progressive_enhancement_03.html], хорошо индексируемый поисковиками [http://www.adobe.com/devnet/flash/articles/progressive_enhancement_04.html] и ненавязчиво показывающий пользователям, что они могут увидеть его во всей красе если установят Flash плагин.

Шаг 2: Подключение библиотеки SWFObject

Шаг 3: Зарегистрируйте ваш Flash контент и задайте параметры

Советы

  • Используйте SWFObject HTML и JavaScript генератор для автоматического создания кода [http://code.google.com/p/swfobject/wiki/generator]
  • Чтобы вставить несколько SWF просто повторите шаги 1 и 3
  • Простейший способ получать активный элемент object — это использовать JavaScript API: swfobject.getObjectById(objectIdStr) [http://code.google.com/p/swfobject/wiki/api]

Динамический метод публикации с помощью SWFObject

Шаг 1: Создание альтернативного контента с помощью стандартной разметки

Шаг 2: Подключение библиотеки SWFObject

Шаг 3: Внедрение SWF с помощью JavaScript

Конфигурирование Flash контента

Как используя JavaScript объекты установить переменные, параметры и атрибуты?

Советы


  • Используйте SWFObject HTML и JavaScript генератор дляавтоматического создания кода [http://code.google.com/p/swfobject/wiki/generator]
  • Чтобы вставить несколько SWF просто повторите шаги 1 и 3

Переход от SWFObject 1.5 к SWFObject 2

  1. В SWFObject 2 НЕТ обратной совместимости с SWFObject 1.5
  2. Предпочтительно чтобы весь код JavaScript был в разделе head
  3. Имя библиотеки теперь в нижнем регистре: swfobject вместо SWFObject
  4. Методы доступны только через библиотеку (вместо экземпляра SWFObject в SWFObject 1.5)
  5. API абсолютно новое: [http://code.google.com/p/swfobject/wiki/api]
  6. SWFObject 2 заменяет указанный HTML блок с альтернативным контентом полностью, включая элемент контейнер, в случае если есть достаточная поддержка Flash и JavaScript, тогда как SWFObject 1.5 заменяет только содержимое указанoго контейнера. Если вы явно не указали атрибут id, элемент object автоматически наследует id указанного HTML контейнера с альтернативным контентом

Переход от UFO к SWFObject 2

  1. SWFObject 2 заменяет указанный HTML блок с альтернативным контентомполностью, включая элемент контейнер, в случае если есть достаточнаяподдержка Flash и JavaScript, тогда как UFO заменяет толькосодержимое указанoго контейнера. Если вы явно не указали атрибут id, элемент object автоматически наследует id указанного HTML контейнера с альтернативным контентом
  2. setcontainercss отсутствует в SWFObject 2, похожий функционал обеспечивает SWFObject JavaScript API: swfobject.createCSS(selStr, declStr) [http://code.google.com/p/swfobject/wiki/api]

Поддерживает ли SWFObject 2 MIME тип application/xhtml+xml?

SWFObject 2 НЕ поддерживает XML MIME типы, это сознательно решение.
Есть несколько причин почему мы не поддерживаем их:

  • их использует очень малая часть веб-разработчиков
  • мы не уверены, что веб пойдет этим путем. Internet Explorer его не поддерживает и все остальные основные производители браузеров больше склоняются к новому, стандартному способу парсинга HTML (в HTML 5), отходя от парсинга HTML как XML, каким его видит W3C
  • отказавшись от поддержки XML MIME типов мы уменьшили размер файла и упростили тестирование и поддержку

Дополнения предложенные в комментариях:

Средства для внедрения Flash в популярных JS фреймворках

WMODE

Параметр заслуживающий отдельного упоминания.
wmode может принимать значения: window, opaque, transparent и определяет режим отображения Flash на веб странице.
window — значение по умолчанию, в этом режиме для flash используется отдельное окно (в пределах страницы) главная проблема этого режима в том, что flash отображется поверх любых элементов страницы, вне зависимости от их z-order, что часто является причиной попадания под flash выпадающих меню и прочих неприятностией.
opaque — непрозрачный flash не перекрывающий элементы страницы которые он перекрывать не должен.
transparent — прозрачный flash, сквозь который просвечивает фон HTML страницы, как и в предыдущем случае не перекрывает то чего перекрывать не должен, но в этом режиме возможны проблемы с производительность при использовании анимации.
К сожалению, wmode не решает проблемы с перекрыванием flash роликом других элементов в Linux, по крайней мере в FF3 точно не решает.

Что такое код swf_fonttracking

Код HTML для вставки флеш мы можем создать сами.

Для этого ссылка должна быть « прямой » (заканчиваться на типичное расширение флеш-файлов * .swf )
Просто копируем адрес файла и ставим в код вместо » ссылка-на-файл «:

Теперь ещё раз по порядку.

1) Копируем вот этот код:

2) Открывем окно создания темы и нажимаем на значок HTML .

Это тот же значок, который вы нажимаете при вставке видео.

3) В открывшиеся окно вставляем скопированный код.

4) Заменяем слова « ссылка на файл » 2 раза на ссылку на флеш.

Моя флешка находится по адресу http://www.pineapple.ru/farb/bufa_boo.swf

Я его взяла из адресной строки браузера, но могут быть и ещё варианты.

5) Обращаю ваше внимание, что в коде HTML присутствуют цифры.

В данном коде это 450 и 300 . Их тоже можно заменить, для того, чтобы увеличить или уменьшить размеры флешки.

Внимание: Умножайте или делите на один коэффициент, а то нарушите пропорции.

6) Далее, нажимаем кнопку « Обновить «.

Получаем жёлтый прямоугольник. Вот это и есть наша флешка.

7) Если ничего больше вставить не нужно (текст или картинку), то нажимаем « Опубликовать «.

Примечание для пользователей браузера Мазила : Для изменения размеров изображения можно цифры в коде HTML не заменять. А просто после нажатия кнопки » Обновить «, когда появится жёлтый прямоугольник, кликнуть по нему и растянуть или сжать, потянув курсором мыши от центра или к центру жёлтого прямоугольника.

И ещё: Скопируйте себе этот код HTML в Word или » Блокнот » и сохраните, чтобы потом долго не искать.

Или можете скачать этот код, сохранённый с расширением txt ЗДЕСЬ.

Вот что получилось.

Для запуска флешки нажмите GO.


Изменение байтового кода swf для выходных переменных

У меня есть swf файл, который я хочу изменить байтовый код (я использую ActionScript Extractor).

Что такое хороший способ легко вывести переменную, например, быстрый способ сделать эквивалент (в JS)

Я попытался использовать функцию следа adobe, но он работает очень плохо, а иногда, похоже, не работает вообще.

параметры

message Сообщение для отображения.

title Текст в строке заголовка предупреждений. Этот параметр является необязательным; если вы его опустите, строка заголовка пуста.

flags Необязательный параметр, указывающий кнопки для отображения в окне предупреждения. Значением по умолчанию является Alert.OK, в котором отображается кнопка OK. Когда вы используете более одного значения, отделите значения с помощью | персонаж. Используйте одно или несколько из следующих значений: Alert.OK , Alert.CANCEL , Alert.YES , Alert.NO .

Вы также можете использовать Alert.NONMODAL чтобы указать, что окно предупреждения немодно. Немодальное окно позволяет пользователю взаимодействовать с другими окнами в приложении.

parent Родительское окно для компонента Alert. Окно Alert самоцентрируется в родительском окне. Используйте значение null или undefined, чтобы указать временную шкалу _root. Родительское окно должно быть подклассом класса UIComponent, либо как другой компонент Flash, являющийся подклассом UIComponent, либо как пользовательское окно, которое является подклассом UIComponent (дополнительную информацию см. В разделе О наследовании в Learning ActionScript 2.0 в Adobe Flash). Этот параметр является необязательным.

clickHandler Обработчик событий трансляции при нажатии кнопок. В дополнение к стандартным свойствам объекта события click есть дополнительное свойство detail, которое содержит значение флага кнопки, которая была нажата (Alert.OK, Alert.CANCEL, Alert.YES, Alert.NO). Этот обработчик может быть функцией или объектом. Дополнительные сведения см. В разделе Использование прослушивателей для обработки событий в разделе «Использование компонентов ActionScript 2.0».

icon Строка, которая является идентификатором привязки символа в библиотеке; этот символ используется как значок, отображаемый слева от текста предупреждения. Этот параметр является необязательным.

defaultButton Указывает, какая кнопка имеет начальную фокусировку и нажимается, когда пользователь нажимает Enter (Windows) или Return (Macintosh). Если пользователь переходит к другой кнопке, эта кнопка запускается при нажатии клавиши Enter.

Этот параметр может быть одним из следующих значений: Alert.OK , Alert.CANCEL , Alert.YES , Alert.NO .

Возвращает

Созданный экземпляр оповещения.

Описание

Метод (класс); метод класса (статический), который отображает окно предупреждения с сообщением, необязательный заголовок, дополнительные кнопки и необязательный значок. Заголовок предупреждения появляется в верхней части окна и выравнивается по левому краю. Значок отображается слева от текста сообщения. Кнопки расположены в центре ниже текста сообщения и значка.

Следующий код — простой пример модального окна предупреждения с кнопкой OK:

Следующий код определяет обработчик кликов, который отправляет сообщение на панель «Выход» о том, какая кнопка была нажата. (У вас должен быть компонент Alert в библиотеке, чтобы этот код отображал предупреждение, чтобы добавить компонент в библиотеку, перетащите его в рабочую область и затем удалите его):

Что такое код swf_fonttracking

RomanLoveText — Обзор GameDev статей со всего интернета.
Лучшие посты попадают сюда)

Страницы

Flash полезное / Упакованный SWF. Как распаковать?

Упакованный SWF. Как распаковать?:
Привет, друзья!

В этом посте я хотел бы рассказать о том, что из себя представляет упакованный SWF и как его можно распаковать динамически и статически.
Итак, что же такое упакованный SWF?
Если Вы никогда ранее его не видели, не поленитесь скачать простой классический пример упакованного SWF:

Запустив SWF, вы увидите немного текста в левом верхнем углу. Однако, если вы попробуете декомпилировать этот файл, то вы не увидите кода, который этот текст показывает.

Стоит отметить, что если бы в упакованном SWF были ещё какие-нибудь ресурсы (изображения, звуки, шрифты и т.д.), то их вы бы тоже не увидели. Это из-за того, что оригинальный SWF находится внутри того SWF что вы скачали и декомпилировали, и часто в зашифрованном виде.

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

Такая «упаковка» на самом деле достигается с помощью простого Flex тэга [Embed].

Динамическая распаковка (dumping)

Динамическая — значит для распаковки потребуется исполнение SWF во Flash Player’е (далее — FP).

Т.к. FP не умеет проигрывать зашифрованную неведомо как SWF, то логично что перед проигрыванием, SWF должна расшифровываться и загружаться уже в чистом виде (например, с помощью Loader.loadBytes() ).

Что более важно, распакованный и расшифрованный SWF будет в памяти все время, пока он исполняется FP’ром.
И это наш шанс достать его!

Существует два основных способа сделать это.
1) Динамическая распаковка с помощью утилит

Используя сторонние или даже самописные утилиты для поиска SWF в памяти процесса FP. Это самый быстрый, самый простой и обычно самый эффективный способ. Но он не вызывает ощущения что вы — тру кряке.


Существуют различные платные и бесплатные утилиты для этих целей.

Одна из наиболее продвинутых — это SWF Revealer, бесплатная утилита для владельцев лицензий на ASV. В некоторых случаях, она может обходить проверки на домен (которые не дают распаковаться и расшифроваться SWFке) и заставлять SWF запускаться в вашей среде.

Также достаточно легко гуглятся разные бесплатные дамперы.
2) Ручная динамическая распаковка

Поиск SWFки вручную, с помощью нахождения CWS (сжатый SWF) или FWS (несжатый SWF) заголовков, которые являются началом любого SWF. Если вы никогда не пробовали такой способ, я очень рекомендую попробовать! Он не только позволит немного подтянуть ваши скиллы в hex, но и подарит вам ощущение, что вы тру-крякер!)

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

Если вы хотите искать упакованный SWF в памяти FP в котором проигрывается файл-пример по ссылке выше, то стоит начать с поиска FWS подписи (несжатый SWF) — просто ищите строку ‘FWS’, т.к. перед исполнением FP разжимает SWF, если он был сжат.

Если вы будете запускать и искать SWF в браузере, то закройте все лишние вкладки, чтобы снизить количество лишних SWF в памяти.
Обычно при таком поиске вы найдете несколько заголовков в памяти, т.к. сам FP держит там разные служебные SWF, например ту, что показывается после входа в полноэкранный режим.

Так что если вы сомневаетесь, то лучше проверить все найденные заголовки.

Итак, что же делать с найденным заголовками, спросите вы? Как их проверить, как узнать, где заканчивается SWF?

Пожалуйста, взгляните на этот скриншот:

Это заголовок одной из SWF в памяти FP при проигрывании файла-примера, найденный поиском по строке ‘FWS’ (совершенно случайно это оказался заголовок искомого упакованного файла, который мы и хотим найти )

Что же дальше? А дальше необходимо посмотреть какой длины получается найденный SWF. Длина расположена в 4 байтах начиная с 4го:

Как я узнал? Я просто прочитал спецификацию формата SWF: «SWF File Format Specification» http://www.adobe.com/content/dam/Adobe/en/devnet/swf/pdf/swf_file_format_spec_v10.pdf (раздел «The SWF header»)

Т.к. это шестнадцатеричное число, записанное в память, вам стоит знать, что порядок записи его байт — справа налево. Поэтому в результате число такое:

00 00 04 DB в hex и 1243 десятичном представлении.

Теперь отмеряем эти 1243 байт начиная с FWS подписи.

Т.к. подпись начинается на 053DD020, окончание SWF файла должно находиться по адресу 053DD4FB (053DD020 + 4DB):

Пожалуйста, имейте ввиду, что адрес расположения SWF в памяти будет отличаться на разных ОС и на разном железе.
Итак, мы видим, что найденный SWF действительно заканчивается на 053DD4FB, так что мы можем смело выделить все байты начиная с 053DD020, заканчивая 053DD4FB и скопировать их в новый SWF файл.

После проделывания этой операции со всеми вхождениями FWS, которые вам покажутся подходящими, среди сохраненных SWF файлов будет один искомый, распакованный SWF!

Теперь у вас не должно возникнуть проблем с его декомпиляцией.
Некоторые виды пакеров усложняют поиск искомого SWF с помощью размещения множества фальшивых FWS заголовков в памяти. Так что вам следует более тщательно подбирать FWS — проверять его длину, и то как он в целом выглядит. Опытные в реверсинге люди (вроде меня :p) могут на глаз отличить фальшивый заголовок от настоящего, глянув на сам заголовок и на несколько десятков байт после него.
Иногда, упакованный SWF может не распаковываться в память до проверки каких-нибудь условий. Например, загрузчик может проверять текущий домен или наличие какого-нибудь файла с лицензией. В таком случае вам придётся пропатчить эти проверки (например, с помощью дизассемблеров байткода, таких как Yogda или RABCDasm) или предоставить необходимые файлы (в которых может находиться ключ для расшифровки), чтобы заставить SWF запуститься и распаковаться.

Статическая распаковка

Статическая — значит без запуска SWF во FP.

В целом, к этому типу распаковки прибегают когда не вышло распаковать SWF динамически (кто его знает, почему у вас не получилось запустить SWF?)

Статическая распаковка может быть очень сложной задачей, т.к. есть не один способ её усложнить и сделать мучительно долгой.
Итак, с чего начать при статической распаковке? Для начала, вам следует получить доступ как минимум к двум вещам в SWF:

1 — DefineBinaryData тэг(и).

2 — Декомпилированный AS или abc байткод распаковщика\загрузчика.

Также, в некоторых случаях понадобится

3 — SymbolClass тэг

Для этого используйте доступные утилиты (ASV, Adobe SWF Investigator, SWiX, и т.д.).
Как найти тэг DefineBinaryData в SWF?

Сначала отмечу, что некоторые утилиты, например, ASV, могут вам явно указать на наличие этого тэга, сразу после открытия SWF. В них же можно этот тэг сохранить в виде двоичного файла.

Также можно найти его вручную, с помощью различных инспекторов тэгов, вроде упомянутого выше Adobe SWF Investigator.

Для получения содержимого тэга DefineBinaryData из файла-примера с помощью Adobe SWF Investigator, просто откройте файл, перейдите на вкладку Tag Viewer, выберите тэг DefineBinaryData и нажмите на кнопку Dump To File.

Иногда в этом списке тэгов может быть множество фальшивых, чтобы сбить с толку незадачливого крякера. Для поиска необходимого тэга придётся немного изучить код загрузчика\распаковщика и отследить там обращение к упакованным данным.

Обычно оно выглядит так:
Где SomeClass имеет тип Class и наследуется от класса ByteArrayAsset.
Давайте посмотрим в код загрузчика и поищем что-то похожее.

Ага, вот и оно!
Теперь нам следует поискать класс с именем оканчивающимся на «_content» и наследующийся от ByteArrayAsset.

А вот и он:
Чтобы выяснить, какой тэг DefineBinaryData связан с этим классом, нам следует заглянуть в тэг SymbolClass и поискать там запись с названием найденного класса «MainTimeline_focus_loader_content».

В нашем случае эта запись выглядит так (в Adobe SWF Investigator):
Запомните значение поля idref. Это id нужного тэга DefineBinaryData!


Теперь ищите тэг с таким id среди всех тэгов DefineBinaryData.

После того, как вы его найдёте, его можно сохранить в файл и продолжать распаковку.

Почему я попросил запомнить idref, а не название класса? Потому что в том случае, если AS распаковщика обфусцирован, работать с именами классов может быть очень затруднительно.
Теперь успех вашего мероприятия зависит от количества времени, которое вы готовы потратить, сложности упаковщика и удачи)

Если повезёт, то полученные из DefineBinaryData данные окажутся чистым SWF без какого-либо шифрования и распаковку можно считать оконченной.

Но чаще всего, на этом этапе все самое интересное только начинается и впереди реверсинг загрузчика — разбор алгоритмов шифрования и написания собственного дешифровщика.
В нашем случае, код загрузчика намеренно сделан максимально простым и не обфусцированным, так что на этот раз нам повезло — мы легко находим функцию расшифровки:
И узнаем, что для получения оригинального SWF достаточно каждый его байт поксорить на 55.

Теперь вы можете написать свой декриптор, или скрипт, который сделает все операции для расшифровки SWF. Вот и все, распаковка закончена. После расшифровки вы получите оригинальный SWF, код и ресурсы которого видны в декомпиляторе.

Остаётся надеяться, что это так и распакованный SWF не окажется точно так же расшифровщиком SWF, который вы только что ковыряли, хахаха!)

Иногда при упаковке используют принцип матрёшки — запихивают один расшифровщик в другой — и так десятки раз, да ещё и алгоритмы расшифровки везде разные.

В любом случае, динамическая распаковка все это обходит.

Запомните — в мире Flash, ничего, кроме названий, нельзя скрыть от глаз профессионала высокого класса с достаточным уровнем мотивации
Есть вопросы, идеи, комментарии? Оставляйте всё в виде комментариев к посту, пишите!

CODE STAGE

DEVELOPMENT & RESEARCH

Упакованный SWF. Как распаковать?

Привет, друзья!
В этом посте я хотел бы рассказать о том, что из себя представляет упакованный SWF и как его можно распаковать динамически и статически.

Итак, что же такое упакованный SWF?

Если Вы никогда ранее его не видели, не поленитесь скачать простой классический пример упакованного SWF:
http://codestage.ru/files/flood/security/packed.swf
Запустив SWF, вы увидите немного текста в левом верхнем углу. Однако, если вы попробуете декомпилировать этот файл, то вы не увидите кода, который этот текст показывает.
Стоит отметить, что если бы в упакованном SWF были ещё какие-нибудь ресурсы (изображения, звуки, шрифты и т.д.), то их вы бы тоже не увидели. Это из-за того, что оригинальный SWF находится внутри того SWF что вы скачали и декомпилировали, и часто в зашифрованном виде.
Обычно все, что вы можете получить из таких SWF с помощью декомпиляторов — это код распаковщика\расшифратора и, возможно, сам зашифрованный SWF в виде набора байт (зависит от того, умеет ли используемый вами декомпилятор отображать тэг DefineBinaryData).
Такая «упаковка» на самом деле достигается с помощью простого Flex тэга [Embed].

Динамическая распаковка (dumping)

Динамическая — значит для распаковки потребуется исполнение SWF во Flash Player’е (далее — FP).
Т.к. FP не умеет проигрывать зашифрованную неведомо как SWF, то логично что перед проигрыванием, SWF должна расшифровываться и загружаться уже в чистом виде (например, с помощью Loader.loadBytes() ).
Что более важно, распакованный и расшифрованный SWF будет в памяти все время, пока он исполняется FP’ром.

И это наш шанс достать его!
Существует два основных способа сделать это.

1) Динамическая распаковка с помощью утилит
Используя сторонние или даже самописные утилиты для поиска SWF в памяти процесса FP. Это самый быстрый, самый простой и обычно самый эффективный способ. Но он не вызывает ощущения что вы — тру крякер ��
Существуют различные платные и бесплатные утилиты для этих целей.
Одна из наиболее продвинутых — это SWF Revealer, бесплатная утилита для владельцев лицензий на ASV. В некоторых случаях, она может обходить проверки на домен (которые не дают распаковаться и расшифроваться SWFке) и заставлять SWF запускаться в вашей среде.
Также достаточно легко гуглятся разные бесплатные дамперы.

2) Ручная динамическая распаковка
Поиск SWFки вручную, с помощью нахождения CWS (сжатый SWF) или FWS (несжатый SWF) заголовков, которые являются началом любого SWF. Если вы никогда не пробовали такой способ, я очень рекомендую попробовать! Он не только позволит немного подтянуть ваши скиллы в hex, но и подарит вам ощущение, что вы тру-крякер!)
Для поиска заголовков можно использовать любой HEX редактор, который умеет читать память процессов и имеет функцию поиска.
Если вы хотите искать упакованный SWF в памяти FP в котором проигрывается файл-пример по ссылке выше, то стоит начать с поиска FWS подписи (несжатый SWF) — просто ищите строку ‘FWS’, т.к. перед исполнением FP разжимает SWF, если он был сжат.
Если вы будете запускать и искать SWF в браузере, то закройте все лишние вкладки, чтобы снизить количество лишних SWF в памяти.

Обычно при таком поиске вы найдете несколько заголовков в памяти, т.к. сам FP держит там разные служебные SWF, например ту, что показывается после входа в полноэкранный режим.
Так что если вы сомневаетесь, то лучше проверить все найденные заголовки.
Итак, что же делать с найденным заголовками, спросите вы? Как их проверить, как узнать, где заканчивается SWF?
Пожалуйста, взгляните на этот скриншот:

Это заголовок одной из SWF в памяти FP при проигрывании файла-примера, найденный поиском по строке ‘FWS’ (совершенно случайно это оказался заголовок искомого упакованного файла, который мы и хотим найти ;))
Что же дальше? А дальше необходимо посмотреть какой длины получается найденный SWF. Длина расположена в 4 байтах начиная с 4го:

Как я узнал? Я просто прочитал спецификацию формата SWF: «SWF File Format Specification» http://www.adobe.com/content/dam/Adobe/en/devnet/swf/pdf/swf_file_format_spec_v10.pdf (раздел «The SWF header»)
Т.к. это шестнадцатеричное число, записанное в память, вам стоит знать, что порядок записи его байт — справа налево. Поэтому в результате число такое:
00 00 04 DB в hex и 1243 десятичном представлении.
Теперь отмеряем эти 1243 байт начиная с FWS подписи.
Т.к. подпись начинается на 053DD020, окончание SWF файла должно находиться по адресу 053DD4FB (053DD020 + 4DB):

Пожалуйста, имейте ввиду, что адрес расположения SWF в памяти будет отличаться на разных ОС и на разном железе.

Итак, мы видим, что найденный SWF действительно заканчивается на 053DD4FB, так что мы можем смело выделить все байты начиная с 053DD020, заканчивая 053DD4FB и скопировать их в новый SWF файл.
После проделывания этой операции со всеми вхождениями FWS, которые вам покажутся подходящими, среди сохраненных SWF файлов будет один искомый, распакованный SWF!
Теперь у вас не должно возникнуть проблем с его декомпиляцией.

Некоторые виды пакеров усложняют поиск искомого SWF с помощью размещения множества фальшивых FWS заголовков в памяти. Так что вам следует более тщательно подбирать FWS — проверять его длину, и то как он в целом выглядит. Опытные в реверсинге люди (вроде меня :p) могут на глаз отличить фальшивый заголовок от настоящего, глянув на сам заголовок и на несколько десятков байт после него.

Иногда, упакованный SWF может не распаковываться в память до проверки каких-нибудь условий. Например, загрузчик может проверять текущий домен или наличие какого-нибудь файла с лицензией. В таком случае вам придётся пропатчить эти проверки (например, с помощью дизассемблеров байткода, таких как Yogda или RABCDasm) или предоставить необходимые файлы (в которых может находиться ключ для расшифровки), чтобы заставить SWF запуститься и распаковаться.

Статическая распаковка

Статическая — значит без запуска SWF во FP.
В целом, к этому типу распаковки прибегают когда не вышло распаковать SWF динамически (кто его знает, почему у вас не получилось запустить SWF?)
Статическая распаковка может быть очень сложной задачей, т.к. есть не один способ её усложнить и сделать мучительно долгой.

Итак, с чего начать при статической распаковке? Для начала, вам следует получить доступ как минимум к двум вещам в SWF:
1 — DefineBinaryData тэг(и).
2 — Декомпилированный AS или abc байткод распаковщика\загрузчика.
Также, в некоторых случаях понадобится
3 — SymbolClass тэг
Для этого используйте доступные утилиты (ASV, Adobe SWF Investigator, SWiX, и т.д.).

Как найти тэг DefineBinaryData в SWF?
Сначала отмечу, что некоторые утилиты, например, ASV, могут вам явно указать на наличие этого тэга, сразу после открытия SWF. В них же можно этот тэг сохранить в виде двоичного файла.
Также можно найти его вручную, с помощью различных инспекторов тэгов, вроде упомянутого выше Adobe SWF Investigator.
Для получения содержимого тэга DefineBinaryData из файла-примера с помощью Adobe SWF Investigator, просто откройте файл, перейдите на вкладку Tag Viewer, выберите тэг DefineBinaryData и нажмите на кнопку Dump To File.

Иногда в этом списке тэгов может быть множество фальшивых, чтобы сбить с толку незадачливого крякера. Для поиска необходимого тэга придётся немного изучить код загрузчика\распаковщика и отследить там обращение к упакованным данным.
Обычно оно выглядит так:

Где SomeClass имеет тип Class и наследуется от класса ByteArrayAsset.

Давайте посмотрим в код загрузчика и поищем что-то похожее.
Ага, вот и оно!

Теперь нам следует поискать класс с именем оканчивающимся на «_content» и наследующийся от ByteArrayAsset.
А вот и он:

Чтобы выяснить, какой тэг DefineBinaryData связан с этим классом, нам следует заглянуть в тэг SymbolClass и поискать там запись с названием найденного класса «MainTimeline_focus_loader_content».
В нашем случае эта запись выглядит так (в Adobe SWF Investigator):


Запомните значение поля idref. Это id нужного тэга DefineBinaryData!
Теперь ищите тэг с таким id среди всех тэгов DefineBinaryData.
После того, как вы его найдёте, его можно сохранить в файл и продолжать распаковку.
Почему я попросил запомнить idref, а не название класса? Потому что в том случае, если AS распаковщика обфусцирован, работать с именами классов может быть очень затруднительно.

Теперь успех вашего мероприятия зависит от количества времени, которое вы готовы потратить, сложности упаковщика и удачи)
Если повезёт, то полученные из DefineBinaryData данные окажутся чистым SWF без какого-либо шифрования и распаковку можно считать оконченной.
Но чаще всего, на этом этапе все самое интересное только начинается и впереди реверсинг загрузчика — разбор алгоритмов шифрования и написания собственного дешифровщика.

В нашем случае, код загрузчика намеренно сделан максимально простым и не обфусцированным, так что на этот раз нам повезло — мы легко находим функцию расшифровки:

И узнаем, что для получения оригинального SWF достаточно каждый его байт поксорить на 55.
Теперь вы можете написать свой декриптор, или скрипт, который сделает все операции для расшифровки SWF. Вот и все, распаковка закончена. После расшифровки вы получите оригинальный SWF, код и ресурсы которого видны в декомпиляторе.
Остаётся надеяться, что это так и распакованный SWF не окажется точно так же расшифровщиком SWF, который вы только что ковыряли, хахаха!)
Иногда при упаковке используют принцип матрёшки — запихивают один расшифровщик в другой — и так десятки раз, да ещё и алгоритмы расшифровки везде разные.
В любом случае, динамическая распаковка все это обходит.
Запомните — в мире Flash, ничего, кроме названий, нельзя скрыть от глаз профессионала высокого класса с достаточным уровнем мотивации ��

Есть вопросы, идеи, комментарии? Оставляйте всё в виде комментариев к посту, пишите!

FPublisher

Web-технологии: База знаний

Документация PHP

swf_fonttracking

swf_fonttracking — Set the current font tracking

Описание

void swf_fonttracking ( float $tracking )

Set the font tracking to the value specified by the tracking parameter. This function is used to increase the spacing between letters and text, positive values increase the space and negative values decrease the space between letters.

Список параметров

The font tracking.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Конвертируем SVG-иконку в код для использования в CSS

В одном из проектов возле меню выводились небольшие иконки в формате svg, и нужно, чтобы при наведении курсора на пункт меню, текст и иконка меняли цвет. Для того чтобы не плодить большое количество картинок, было решено перевести svg в код и использовать в стилях CSS.

UPDATE – Не обязательно конвертировать svg в код. Можно использовать код файла svg почти без преобразований и без конверторов.

Краткая инструкция как использовать SVG в CSS

Например, у вас есть файл arrow-right.svg , внутри этого файла вот такой код:

Если конвертировать этот SVG в CSS старым способом представленным ниже, то получится такой код:

Добавляется куча лишних действий, на выходе получаем сконвертированный код, некрасиво и долго.

Самый простой вариант – использовать код SVG напрямую в CSS.

Пример использования SVG в CSS:

То есть, мы взяли весь код без изменения из файла arrow-right.svg и просто вставили его в background-image: url(‘ ‘); , но добавили в самое начало data:image/svg+xml, , а каждую новую строку заэкранировали обратным слешом \ .

Получается, что код SVG почти не изменен и времени это заняло 15 секунд, но нужно учесть такие моменты:

  • Можно использовать многострочный svg-код, экранируя каждую строку с помощью обратного слеша – \
  • Можно создавать анимированные фоны или элементы с помощью CSS-анимации внутри встроенного SVG.
  • Отсутствие viewBox или размеров позволяет фону SVG занимать всю площадь элемента.
  • Необходимо экранировать # как %23 при указании цвета, потому что это зарезервированный символ в URL.

Живой пример использования SVG в CSS:

See the Pen KKKRBxr by Denis (@deniscreative) on CodePen.default

Если же вас устраивает вариант с конвертацией SVG, тогда старый добрый рабочий пример представлен ниже.

Краткая инструкция как конвертировать SVG в CSS

Сначала отправляем svg в https://jakearchibald.github.io/svgomg/ для того чтобы получить кодовое значение.

Затем копируем код и вставляем его в это окно:

полученный код используем в своем css файле.

Например, берем иконку Facebook (стандартная иконка с небольшим изменением).

На сайте https://jakearchibald.github.io/svgomg/ жмем “Open SVG” или просто перетягиваем иконку на область просмотра. В левом верхнем углу жмем “CODE”, выделяем код, а затем жмем на иконку копировать, так мы получим в буфер код нашей свг-картинки.

Затем полученный код вставляем в окно выше, жмем Converte и получаем готовый background-image:

Копируем и используем его в своем css.

Чтобы изменить цвет, меняем fill=’%23FFF’ , только учитываем, что %23 – это обычный знак # , то есть fill=’%23000′ – это обычный черный (#000).

Илон Маск рекомендует:  Что такое код asp asperrorstontlog
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL