如何制作html5的动画效果?

如何制作html5的动画效果?,第1张

主要思想:\x0d\x0a首先要准备一张有连续帧的图片,然后利用HTML5Canvas的draw方法在不同的时间间隔绘制不同的帧,这样看起来就像动画在播放。\x0d\x0a关键技术点:\x0d\x0aJavaScript函数setTimeout()有两个参数,第一个是参数可以传递一个JavaScript方法,\x0d\x0a另外一个参数代表间隔时间,单位为毫秒数。代码示例:\x0d\x0asetTimeout(update,1000/30)\x0d\x0aCanvas的API-drawImage()方法,需要指定全部9个参数:\x0d\x0actx.drawImage(myImage,offw,offh,width,height,x2,y2,width,height)\x0d\x0a其中offw,offh是指源图像的起始坐标点,width,height表示源图像的宽与高,x2,y2表\x0d\x0a示源图像在目标Canvas上的起始坐标点。\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0aCanvasMouseEventDemo\x0d\x0a\x0d\x0a\x0d\x0avarctx=null//globalvariable2dcontext\x0d\x0avarstarted=false\x0d\x0avarmText_canvas=null\x0d\x0avarx=0,y=0\x0d\x0avarframe=0/롹*5+2\x0d\x0avarimageReady=false\x0d\x0avarmyImage=null\x0d\x0avarpx=300\x0d\x0avarpy=300\x0d\x0avarx2=300\x0d\x0avary2=0\x0d\x0awindow.onload=function(){\x0d\x0avarcanvas=document.getElementById("animation_canvas")\x0d\x0aconsole.log(canvas.parentNode.clientWidth)\x0d\x0acanvas.width=canvas.parentNode.clientWidth\x0d\x0acanvas.height=canvas.parentNode.clientHeight\x0d\x0aif(!canvas.getContext){\x0d\x0aconsole.log("Canvasnotsupported.PleaseinstallaHTML5compatiblebrowser.")\x0d\x0areturn\x0d\x0a}\x0d\x0a//get2Dcontextofcanvasanddrawrectangel\x0d\x0actx=canvas.getContext("2d")\x0d\x0actx.fillStyle="black"\x0d\x0actx.fillRect(0,0,canvas.width,canvas.height)\x0d\x0amyImage=document.createElement('img')\x0d\x0amyImage.src="../robin.png"\x0d\x0amyImage.onload=loaded()\x0d\x0a}\x0d\x0afunctionloaded(){\x0d\x0aimageReady=true\x0d\x0asetTimeout(update,1000ቺ)\x0d\x0a}\x0d\x0afunctionredraw(){\x0d\x0actx.clearRect(0,0,460,460)\x0d\x0actx.fillStyle="black"\x0d\x0actx.fillRect(0,0,460,460)\x0d\x0a//findtheindexofframesinimage\x0d\x0avarheight=myImage.naturalHeightǛ\x0d\x0avarwidth=myImage.naturalWidthǛ\x0d\x0avarrow=Math.floor(frameǛ)\x0d\x0avarcol=frame-row*5\x0d\x0avaroffw=col*width\x0d\x0avaroffh=row*height\x0d\x0a//firstrobin\x0d\x0apx=px-5\x0d\x0apy=py-5\x0d\x0aif(px

1,下面是一个播放视频的最简单样例

(controls属性告诉浏览器要有基本播放控件)

<video src="hangge.mp4" controls></video>11

2,通过width和height设置视频窗口大小

<video src="hangge.mp4" controls width="400" height="300"></video>11

3,预加载媒体文件

设置preload不同的属性值,可以告诉浏览器应该怎样加载一个媒体文件:

(1)值为auto:让浏览器自动下载整个文件

(2)值为none:让浏览器不必预先下载文件

(3)值为metadata:让浏览器先获取视频文件开头的数据块,从而足以确定一些基本信息(比如视频的总时长,第一帧图像等)

<!-- 用户点击播放才开始下载 -->

<video src="hangge.mp4" controls preload="none"></video>1212

4,自动播放

(1)使用autoplay属性可以让浏览器加载完视频文件后立即播放。

<video src="hangge.mp4" controls autoplay></video>11

(2)如果启用自动播放,可以将播放器设置为muted状态。这样自动播放时会静音,防止用户厌烦。用户需要的话可以点击播放器扬声器图标重新打开声音。

<video src="hangge.mp4" controls autoplay muted></video>11

5,循环播放

使用loop属性让视频播放结束时,再从头开始播放。

<video src="hangge.mp4" controls loop></video>11

6,设置替换视频的图片(封面图片)

通过poster属性可以设置,浏览器在下面三种情况下会使用这个图片:

(1)视频第一帧未加载完毕

(2)把preload属性设置为none

(3)没有找到指定的视频文件

<video src="hangge.mp4" controls poster="hangge.png"></video>11

7,浏览器兼容,如何让每一个浏览器都能顺利播放视频

现在大部分浏览器都能支持H.264格式的视频,但Opera浏览器却一直不支持。我们需要通过后备措施保证每个人都能看到视频,通常有下面几种方案:

(1)使用多种视频格式

<video>和<audio>元素有个内置的格式后备系统。我们不使用src属性,而是在其内部嵌套一组<source>元素,浏览器会选择播放第一个它所支持的文件。

我们可以添加WebM格式的视频提供对Opera的支持。

<video controls>

<source src="hangge.mp4" type="video/mp4">

<source src="hangge.webm" type="video/webm">

</video>12341234

(2)添加Flash后备措施(推荐)

上面那个方法不推荐,应为Opera浏览器只占不到1%的份额。特意为它把视频都转码一边太费事。使用Flash作为备用播放方案还是很方便的,同时Flash还能兼容IE8这种连<video>元素都不支持的老浏览器。

这里使用Flowplayer Flash作为备用播放器(本地下载 :flowplayer-3.2.18.zip)

<video controls>

<source src="hangge.mp4" type="video/mp4">

<source src="hangge.webm" type="video/webm">

<object id="flowplayer" width="400" height="300"

data="flowplayer-3.2.18.swf"

type="application/x-shockwave-flash">

<param name="movie" value="flowplayer-3.2.18.swf">

<param name="flashvars" value='config={"clip":"hangge.mp4"}'>

</object>

</video>12345678910111234567891011

(3)也有人优先使用Flash,而HTML5作为后备措施。

这么做是因为Flash普及率比较高,而HTML5作为后备可以扩展iPad和iPhone用户

<object id="flowplayer" width="400" height="300"

data="flowplayer-3.2.18.swf"

type="application/x-shockwave-flash">

<param name="movie" value="flowplayer-3.2.18.swf">

<param name="flashvars" value='config={"clip":"hangge.mp4"}'>

<video controls>

<source src="hangge.mp4" type="video/mp4">

<source src="hangge.webm" type="video/webm">

</video>

</object>

随着HTML5的推出,视频标签与现代浏览器很好的支持很快传播出去。视频标签用于视频添加到HTML页面。 目前最大的 HTML5视频标签, 支持3种类型的视频文件:

mp4 - MIME-type video/mp4

webm - MIME-type video/webm

ogg - MIME-type video/ogg

目前的视频标签由各大现代浏览器被支持得非常出色。

在没有h5推出前,是使用 <嵌入(embed)/>标签。这个标签并不需要一个结束/完成标签。它的工作原理,主要是,同为相片的标签。

<embed src="example.mpeg" autostart="false" height="30" width="144" />

此外,您还可以使用链接插入一个视频文件。

<a href="example.mpeg" title="下载影片">电影名</a>

对于嵌入标签所支持的扩展

These are:

.swf - 制造于Macromedia Flash

.wmv - Microsoft Windows Media Video

.mov - Quick Time Movie, 属于苹果公司

.mpeg - 制作于Moving Pictures Expert Group.

最常用的是.MPEG和.SWF, 因为这些是压缩格式。

嵌入标签的属性

autostart - 设置在页面加载之后是否该文件就会自动运行。 可以具有true或false值。

hidden - 设置其按钮是否隐藏。 可以具有true或false值。

volume - 可以具有从0到100的任何值

loop- 设置在完成之后是否该文件将被重播。 可以具有true或false值。

playcount - 这确立着文件将多少次被重播。 例如 playcount playcount="2" 意味着它会被重播两次,之后将停止。

以使用嵌入标签插入视频

效果图:


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

原文地址: http://outofmemory.cn/zaji/8318661.html

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

发表评论

登录后才能评论

评论列表(0条)

保存