如何向网页添加 SVG

如何向网页添加 SVG,第1张

SVG 的添加方法

内联 HTML5

内联 XHTML

独立 SVG

嵌入

插件

目前常用的方法:

由于SVG文件是纯粹的XML,或许大家更为关心的是如何在Web浏览器中让SVG显示。要在浏览器中显示(前提是浏览器支持),可以通过几种方法来实现:

指向SVG文件地址

将此稿SVG直接嵌套在HTML中

而将SVG图像嵌入到HTML文件森渗孝有多种方法:

使用<iframe>元素来嵌入SVG图像

使用<img>元素来嵌入SVG图像

将SVG图像作为背景图像嵌入

直接使用<svg>喊茄元素

使用<embed>元素来嵌入SVG图像

使用<object>元素来嵌入SVG图像

引入SVG还需要从图片的数字化说起。一般来说,将图片存储为数据有两种方案。其一、就是我们传统使用的位图(光栅图)。即将图片看成在平面上密集排布的点的集合。每个点发出的光有独立的频率山唤和强度,反映在视觉上,就是颜色和亮度。位图拥有一个逗野凯庞大的家族,包括常见的JPEG/JPG, GIF, TIFF, PNG, BMP等脊誉。第二种方案就是矢量图(SVG就是其中的一种)。它用抽象的视角看待图形,记录其中展示的模式而不是各个点的原始数据。它将图片看成各个“对象”的组合,用曲线记录对象的轮廓,用某种颜色的模式描述对象内部的图案(如用梯度描述渐变色)。比如一张留影,被看成各个人物和背景中各种景物的组合。这种更高级的视角,正是人类看世界时在意识里的反映。矢量图格式有CGM, SVG, AI (Adobe Illustrator), CDR (CorelDRAW), PDF, SWF, VML等等。

SVG这种格式的图形文件,近些年越来越多的被使用在互联网及各种应用程序中,然而,对于flash的使用者来说,我们发现flash虽然可以导出SVG格式的文件,却没有找到在flash中如何使用SVG格式的文件的方法,今天我们的福利就是讲解如何在flash中使用SVG格式的文件。

其难点就是我们不知道如何将SVG格式的文件加载到flash当中,如果解决了这个问题,那么,对于SVG文件的 *** 作,就和其他格式(jpg、gif、png)的图形 *** 作是一样的,甚至更灵活(因为SVG文件是XML格式的文本,更容易被修改编辑。)。

如何导入SVG格式的文件呢?完全自己编写AS3脚本是一件艰难的工作,但是知谈,我们很兴运的找到一个这方面的类库:AS3SVGRenderer。下面我们简单介绍一下AS3SVGRenderer的功能者轿特点:(支持Flash10及以上版本)

1.支持基本的形状和路径;

2.支持文本(从右到左,上标下标。);

3.Has 3文本渲染引擎(TextField,TLF,FTE),支持CFF和非CFF字体;

4.支持坐标系统规则、转换和单位;

5.支持遮罩和剪辑;

6.支持填充、描边、渐变;

7.支持标记符号;

8.支持基本的文件结构(g,defs, symbol, use, image);

9.支持滤镜:颜色矩阵,高斯模糊;

10.渲染显示SVG对象,通过as3的鼠标/触摸事件与SVG元素进行交互;

11.支持as3;

12.支持Flex组件;

不支持SVG的特性:

1.文本描边;

2.某些滤镜;

3.编写脚本

4.动画

使用方法:(直接上代码)

例A、加载外部SVG文件:

import flash.net.URLRequest

importcom.lorentz.processing.ProcessExecutor

importcom.lorentz.SVG.display.SVGDocument

/首猛肆/初始化ProcessExecutor,在整个应用程序中只做一次。

ProcessExecutor.instance.initialize(stage)

var svg: SVGDocument = newSVGDocument()

var url = new URLRequest("tqtqtq.svg")

svg.load(url)

addChild(svg)

例B、直接解析SVG字符串:

import flash.net.URLRequest

importcom.lorentz.processing.ProcessExecutor

importcom.lorentz.SVG.display.SVGDocument

//初始化ProcessExecutor,在整个应用程序中只做一次。

ProcessExecutor.instance.initialize(stage)

var svg:SVGDocument = newSVGDocument()

var data='<svg><circler="50" stroke="black" stroke-width="2"fill="red"/></svg>'

svg.parse(data)

addChild(svg)

例C、动画SVG:

import flash.net.URLRequest

import flash.utils.Timer

import flash.events.TimerEvent

importcom.lorentz.processing.ProcessExecutor

importcom.lorentz.SVG.display.SVGDocument

//初始化ProcessExecutor,在整个应用程序中只做一次。

ProcessExecutor.instance.initialize(stage)

var svg: SVGDocument = newSVGDocument()

var url = new URLRequest("tqtqtq.svg")

svg.load(url)

svg.x = 260

svg.y = 200

addChild(svg)

var timer = new Timer(33, 0)

timer.addEventListener("timer",fTimer)

timer.start()

function fTimer(event: TimerEvent):void {

svg.rotation+= 10

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8147925.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存