sIFR表示scalable Inman Flash Replacement,即“可伸缩Inman Flash替换”技术。是由Mike Davidson在IFR方法的基础之上扩展的一种技术。它通过
Flash + JS + CSS联合实现在不替换页面中
文本元素的情况下,对文本进行更为细腻准确的效果渲染。 使用sIFR你可以任意定义WEB中的文本字体,即便是客户端浏览器未安装的字体。sIFR使用Flash渲染字体效果,可以平滑消除文本锯齿,你可以像使用用CSS控制文本一样轻松得到各种文本效果。
基于Flash允许将字体嵌入
SWF文件,所以事先将字体加载并生成Flash的SWF文件。然后通过JS控制进行页面文本的二次渲染。实现的方法是加载JS文件,通过JavaScript对Web页面进行搜索,找到设定元素或者设定类名的元素中的所有文本。然后JavaScript将文本重新渲染并在最终浏览页面上输出成为一个小的Flash文件。并且在此渲染过程中并不需要为每段文本创建一个单独的Flash文件,而是将被渲染的文本放回到一个重复的Flash文件中。因此,触发
图像替换所要做的只是添加一个类,Flash和JavaScript会完成余下的工作。通过编写JS文件和CSS控制,可以在只调用同一个Flash的情况下实现对多行
文本进行多种字体大小,字色的复杂表现。因为它并没不是文本的替换,所以文本在页面中仍然可以选中,复制。甚至可以重新被CSS定义。
要想在站点上使用sIFR,需要从外部网址(见扩展阅读1)下载最新的版本。在站点上安装sIFR是非常简单的,但是应该先阅读帮助文档。首先需要做的是打开Flash的fla文件、嵌入希望使用的字体并且输出生成swf文件。为了让sIFR能够正确地工作,接下来需要应用包含的打印和屏幕样式,或者创建自己的样式。现在,将sifr.js这个JavaScript文件添加到希望使用sIFR的每个页面中。可以在sifr.js这个文件进行许多配置,可以指定要替换的元素、类、文本颜色、填充、大小写以及其他许多样式属性。再通过CSS对
文本进行样式化。完成配置之后,浏览页面,就会看到原来的字体换成了动态的Flash内容。
sIFR技术的主要问题涉及装载时间。页面必须完全装载,然后JavaScript才能替换文本。因此,在所有文本被替换为Flash内容之前常常有短暂的闪烁。尽管这不是个大问题,但是会被访问者注意到,会给人留下页面装载慢的印象。另外,如果进行许多Flash替换,一些页面感觉起来有点儿迟钝。最好将替换减少到最少,只对主要标题使用这种技术。