sIFR - Scalable Inman Flash Replacement
O sIFR (Scalable Inman Flash Replacement) é uma técnica que nos permite subistituir elementos de texto por equivalentes em Flash, dando-nos a possibilidade de utilizar qualquer fonte, sem que seja necessário que o usuário as tenha instalada em sua máquina.
Basicamente esta técnica utiliza uma combinação do Adobe Flash, JavaScript e CSS. O sIFR foi criado pelo Mike Davidson, uma versão melhorada do iFR (Inman Flash Replacement), que não permite linhas múltiplas de texto, do Shaun Inman.
Veja o exemplo oficial do sIFR.
O sIFR funciona da seguinte maneira:
- Uma página comum XHTML é carregada.
- Um função do JavaScript verifica se o Flash PLayer 6 ou superior esta instalado.
- Caso o Flash Player ou o JavaScript não sejam detectados, é exbida uma página comum em XHTML e CSS.
- Se o Flash Player for detectado, o JavaScript procura os elemento a serem substituidos através de tags, ids ou classes.
- Após verificar os itens, é criado filmes em Flash das mesmas dimensões e estes são posicionas sobre os textos originais.
- Através do Actionscript em cada filme em Flash, é desenhado o texto que se ajusta ao tamanho do filme.
Este processo é imperceptível ao usuário comum.
A favor
- Texto selecionável, embora a confirmação visual se faça ausente quando selecionado junto com o texto do corpo do documento.
- Não requer alteração alguma no XHTML, todo o processo é realizado pelo Flash, JavaScript e CSS.
- O sIFR é escalonável, e se ajusta ao tamanho de fonte do usuário.
- Compátivel com leitores de tela. Não há relatos de problema algum.
- Não afeta o resultado em sistemas de busca.
- Melhor desempenho em relação há técnicas que utilizam imagens para a substituição, já que no sIFR são necessários apenas um arquivo JavaScript(js) e outro arquivo de filme Flash(swf).
- Fontes suavilizadas (anti-aliased).
- Compátivel com tradutores de páginas, uma vez que no sIFR o Flash consome o texto a partir do XHTML.
Contra
- Em links não exibe o endereço de destino na barra de status.
- Apesar de o sIFR ser escalonável e se ajustar ao tamanho da fonte do usuário, até que a página seja recarregada, o redimensionamente será ignorado. Por outro lado, as técnicas de substituição de imagens não se ajustam ao tamanho da fonte do usuário.
- Utilizar diversas vezes o sIFR em uma mesma página pode prejudicar a velocidade de carregamento, conseqüências do processamento que o JavaScript requer para realizar as substituições.
- Os títulos substituídos pelo filme em Flash, deixam de serem acessíveis pela busca do browser (CTRL+F).
Como usar
- Baixe o sIFR 2.0.2 release.
- Abra o arquivo “sIFR.fla”, na biblioteca de um duplo-clique no movieClip “holder”, selecione a caixa de texto e em seguida selecione a fonte a ser instalada, no arquivo os caractéres ingleses já estão incoporados, para habilitar acentuações comuns na língua portuguesa, click no botão “Character” ou “Embed…”, nas propriedades da caixa de texto dinâmico, e como a tecla CTRL precionada seleciona o grupo “Latin I”.
- “File > Export > Export Movie” e exporte seu arquivo com a seguinte nomenclatura: [nome-da-fonte].swf.
- Adicione os arquivos “sIFR-print.css, sIFR-screen.css e sifr.js” em sua página.
- Abaixo um exemplo do código responsável por indicar quais elementos serão substituido, este conteúdo deve ser adicionado ao fim do arquivo “sifr.js”, ou se preferir pode ser adicionado na própria página HTML, no final, antes de fechar a tag body.
if(sIFR != null && sIFR.replaceElement != null){ sIFR.replaceElement("h1", "vandenkeere.swf", "#0000FF", null, null, null, 0, 0, 0, 0, "", "", ""); sIFR.replaceElement("#principal h2, #principal h3", "vandenkeere.swf", "#FF0000", null, null, null, 0, 0, 0, 0, "", "", ""); };
Os parâmetros são os seguintes:
sIFR.replaceElement(Seletor, EndereçoFlash, Cor, CorLink, CorLinkHover, Background, PaddingTop, PaddingRight, PaddingBottom, PaddingLeft, FlashVars, Casing, Windowmode);
Seletor: Elementos a serem substituidos (ex. h1 ou #id ul li h2 ou .classe h3).
EndereçoFlash: Endereço do arquivo Flash de fontes (ex. vandenkeere.swf).
Cor: Cor do texto (ex. ‘#FF0000′).
CorLink: Cor do link (ex. ‘#0000FF’).
CorLinkHover: Cor do link no estado hover (ex. ‘#CCCCCC’).
Background: Cor do Plano de fundo (ex. ‘#0066CC’ ou ‘transparent’, o parâmetro ‘transparent’ não é recomedado por apresentar problemas no Opera e em Macs).
Padding: utilize ‘0′, a menos que tenha atribuído o mesmo valor do elemento no CSS.
FlashVars: parâmetro especial que nos permite passar informações para o Flash. Exemplos possíveis:
- textalign=center (texto centralizado na horizontal)
- offsetLeft=5 (margem de 5pixel na esquerda)
- offsetTop=5 (margem de 5pixel no topo)
- underline=true (sublinha links no estado hover)
Para incluir um ou mais a sintaxe é a seguinte:
textalign=center&offsetTop=2&offsetLeft=4
Casing: ‘upper’ ou ‘lower’ trasnforma o texto em maiúsculo ou minusculo. Este parâmetro é opcional.
Windowmode: ‘transparent’ ou ‘opaque’. Este parâmetro não é necessário, utilize-o caso queira o fundo do filme transparente.
- Caso seja necessário alterar o tamanho da fonte, basta seguir o exemplo abaixo e adicionar as linhas seguintes em seu CSS:
.sIFR-hasFlash h1 { font-size: 18px !important; visibility: hidden; }Rapidamente, antes que a substituição ocorra, o tamanho da fonte é atualizado.
- Finalizado!
Coclusão
O sIFR ainda necessita de algumas melhorias, mas já é uma solução madura, não prejudica a acessibilidade, e a possibilidade de copiar o texto é um ponto a favor.
Esta técnologia foi projetado para substituição de textos em títulos, onde designers necessitam de fontes específicas, além de poder contar com a suavilização nas fontes (anti-aliased). Vale lembrar que para se utilizar o sIFR são necessários apenas dois arquivos, seja para uma ou milhares de páginas.
Me parece que o sIFR não será mais atualizado, em outubro de 2004, o desenvolvedor, Mike Davidson, manifestou a possíbilidade de corrigir o problema dos links na barra de status, através de uma combinação de FSCommand e JavaScript no blog do Dave Shea, porém, até a data em que escrevo este post, a solução não foi implementada.
UPDATE (26.08.06): Ótimas notícias, o Mike Davidson divulgou o lançamento do sIFR 3.0 alpha, uma das novidades é a possibilidade de se utilizar filtros do Flash 8. Se você quiser testar, vale lembrar que ainda está em fase alpha, até agora a versão 2.0 é a mais indicada.
Mais informações a respeito da versão 3.0 alpha.




August 6th, 2006 at 19:13
Muito bacana esse sistema.
Expande investimento em criação sem perder a usabilidade.
Realmente revolucionário p| a web!
Porém em minhas experiências não consigo controlar o entre-linhas do texto [line-height]. Caso já exista uma solução, fico agradecido em recebe-la. Ou ainda se conseguir solucionar, torno a postar um comentário adicional.
lucas@lucasmaia.com
August 12th, 2006 at 2:59
Oi Lucas,
Uma forma de se alterar o line-height, é através do arquivo ‘dont_customize_me.as’, adicione na linha #100: fmt.leading = 20; Recompile o arquivo swf da fonte.
Mas atenção, o sIFR não foi desenvolvido para se utilizar em textos, para estes fins, pesquise por SEFFS.
August 26th, 2006 at 15:48
[...] O uso do Flash em websites, tanto integralmente quanto parcialmente, foi taxado como um mal a usabilidade, enquanto que na verdade o grande vilão são os próprios desenvolvedores que desconhecem os princípios básicos da usabilidade. O Flash ainda pode proporcionar uma melhor usabilidade comparado a técnicas tradicionais, como é o caso do sIFR. [...]
August 29th, 2006 at 14:56
Parabéns pela iniciativa de escrever este documentário. Com certeza irá ajudar muitas outras pessoas.
October 31st, 2006 at 17:24
Olá, Erick estou começando no flash e domino muito a parte gráfica do programa, estudo ciêncida da computação e domino tambem algumas linguagens de programação e atualmente entrei no mundo do actionscript. Estou desenvolvendo um site totalmente em flash e minha dúvida é a seguinte: Existe site feito todo em flash? Me pergunto isso pelo feito de que muitos browsers ainda não suportam o flash. Um usuário de máquina antiga conseguiria acessar o meu site? como contornaria o problema? obrigado!
January 4th, 2007 at 7:55
vitor fernandes,
sei que não foi para mim a pergunta, mas existem sim sites totalmente em flash. Um dos problemas que eu vejo com eles é que o conteúdo não pode ser indexado (principalmente pelo google), sendo assim seria mais difícil de ser achado…o que eu recomendo é usar algumas partes do site em flash e, caso o usuário não possua suporte, exibir um conteúdo alternativo.
outra solução é fazer uma pagina index com um aviso e se possível com um outro link para o site em html (seriam dois trabalhos).
abraços.
August 21st, 2007 at 21:52
Essa técnica é muito boa, gostei muito, porém gostaria de saber se alguem conseguiu fazer com que essa técnica funcione perfeitamente no IE7, pois pelo menos no meu as fonts ficaram as padrões do css mesmo, não ficaram as que eu passei nos parametros do flash.
Alguem sabe como resolver esse problema no IE7 ?
abraços.
August 22nd, 2007 at 13:32
thales, funciona normalmente no IE7, verifique se a fonte foi incorporada ao arquivo swf.
August 30th, 2007 at 12:56
Erick,
segui os passos do tutorial, porém no IE7 ele fica com a font de acordo com o css, e não com a font que esta no arquivo swf.
abraços.
September 13th, 2007 at 0:00
Falae pessoal,
consegui resolver o problema no IE7, mas agora estou com outra duvida.
Gostaria de saber se o sIFR altera por automático todos os titulos do html(h1, h2, h3), o que acontece é que eu gostaria de saber se é possivel fazer o seguinte:
Em determinado h3 eu preciso fazer uso do sIFR, mas em outro eu não quero usar o sIFR, ficando apenas com o css, para isso eu tentei no js colocar por exemplo h3.nome_da_classe no local onde se define a font usada, porem o que aconteceu foi que o h3 onde eu nao coloquei o sIFR fica hidden, teria algum modo de tirar o hidden desse h3 ? sendo que o outro esta com sIFR.
Abraço.
September 14th, 2007 at 1:07
Esta solução é espetacular só é mesmo pena é ainda não terem resolvido o problema dos URL, como são imagens flash q estão a sobrepor-se por cima o URL perde-se o ideal mesmo era a cada letra que lê ele^coloca o URL da frase toda assim já resolve esse grande problema.
Abraço fico aguardar novidades
October 11th, 2007 at 13:16
É um ótimo recurso para trabalhar com outras possibilidades tipográficas, algo tão rico ainda a ser ,mais explorado na web…
Tutorial muito bem explicado, parabens!
November 1st, 2007 at 16:44
Imagina qdo isso estiver junto com o SWF ADDRESS - http://www.asual.com/swfaddress/
December 5th, 2007 at 14:22
Erick, parabéns pela tradução.
Mas percebi que se eu usar tags inventadas tais como, “” ou “” no ie6 e no ie 7 não ocorre a troca, porém no firefox ocorreu numa boa.
A minha alternativa foi usar tags de cabeçalho pre formatadas para ficarem parecidas com as que eu quero em flash, para caso não ocorra a troca durante a abertura da página de algumusuário do site não quebre o layout.
Paulo Lima
February 20th, 2008 at 15:22
Tutorial muito bem explicado, parabens!
June 13th, 2008 at 13:09
Ola Erick, como vai?
trabalho com sites 100% flash e estou buscando de todas as formas melhorar a indexacao pelo google.
Essa alternativa parece mto boa, mas poderia me explicar uma coisa, pois n mexo com css nem javascript.. oq vc quis dizer com “Adicione os arquivos “sIFR-print.css, sIFR-screen.css e sifr.js” em sua página”?
copiar os codigos e inserir ou chamar os estilos e js? Em ambos os casos, nao sei como fazer certo..
Poderia me ajudar?
Obrigado desde ja.
November 5th, 2008 at 12:53
[...] Veja mais detalhes técnicos de como funciona nesse blog: http://blog.ericksouza.com/sifr/ [...]
November 9th, 2008 at 6:40
ufcn iocedtlq xgsejfw xveofuza viutc zsjkbtlo noeta
March 2nd, 2009 at 22:18
Muito versátil!