记得flash里面要嵌入一段视频要多少步骤么,虽然直接导入或者拖video组件就可以
但是如果浏览器里面只要一行代码搞定,那还是很爽的,看html5是怎么玩的:
[code]
[/code]
flash里面换视频播放器的皮肤那是相当之方便的,html5怎么换呢,以后再研究
记得flash里面要嵌入一段视频要多少步骤么,虽然直接导入或者拖video组件就可以
但是如果浏览器里面只要一行代码搞定,那还是很爽的,看html5是怎么玩的:
[code]
flash里的帧动画就是直接拖来拖去
看看css3里就是用@-webkit-keyframes myAnim这个定义的,废话少说,上代码:
[code]
[/code]
[code]
[/code]
[code]
/**
* …css3
*推荐网站
* http://prefixr.com/–浏览器兼容css3
* http://nicolasgallagher.com/css-drop-shadows-without-images/
* http://sandbox.webpro.nl/css3/3d-transforms-interactive-demo.html
* http://gaming.adobe.com/
* http://lostworldsfairs.com/atlantis
* http://css-tricks.com/有很多例子
* @author amyflash.com
*/
function clicked()
{
var b = document.getElementById(“box”);
b.style.left = 500+”px”;
}
[/code]
dom动画的优势:
1.兼容旧浏览器,无需用到html5特性
2.dom内容可通过程序获取
3.dom在旧的浏览器上的运行效率高于canvas
canvas动画的优势:
1.可以有效利用现代浏览器的gpu硬件加速功能
2.相对dom来说,canvas动画更容易旋转和变形
3.可以精确到像素级别的处理动画
总结:
1.当你想在已有的html元素上加动画的时候,使用dom动画
2.涉及到很多交互操作,比如游戏里面,可以考虑用canvas
3.很多时候,结合dom动画和canvas动画来构建你的项目可能是个明智的选择
[code]
[/code]
[code]
/**
* …dom动画
*jquery对dom动画支持很好
* wowslider.com有很多例子
* @author amyflash.com
*/
(function() {
var dx=0;
var dy=0;
var x = 0;
var y =0;
var d;
d=document.getElementById(“box”);
dx = Math.random()*800;
dy = Math.random()*800;
loop();
function loop()
{
requestAnimationFrame(loop);
x+=(dx-x)*0.1;
y+=(dy-y)*0.1;
d.style.left = x+”px”;
d.style.top = y+”px”;
//d.style.width = x+”px”;
//d.style.height = y+”px”;
if(Math.abs(x-dx)<1) { dx = Math.random()*800; dy = Math.random()*600; } } })(); [/code]
[code]
/**
* …canvas嵌套
* @author amyflash.com
*/
(function() {
var ctx = document.getElementById(“canvas”).getContext(“2d”);
var canvas2 = document.createElement(“canvas”);
canvas2.width =200;
canvas2.height =200;
var ctx2 = canvas2.getContext(“2d”);
ctx2.fillStyle=”#0000FF”;
ctx2.strokeStyle=”#000000″;
ctx2.lineWidth =10;
ctx2.fillRect(0,0,200,200);
ctx2.strokeRect(0,0,200,200);
ctx.drawImage(canvas2,10,10);
})();
[/code]
有时候为了减小js文件大小,可能不需要用createjs框架,那这种情况下怎么画html5的动画呢,sprite_sheets跳出来了:Y别当我是空气啊:)
sprite_sheet.png
[code]
/**
* …canvas 加载sprite_sheet
* @author amyflash.com
*/
(function() {
var ctx = document.getElementById(“canvas”).getContext(“2d”);
var count = 0;
var x;
var y;
var xpos=0;
var ypos=0;
var img=new Image();
img.src = “sprite_sheet.png”;
img.onload = draw;
function draw()
{
requestAnimationFrame(draw);
//ctx.clearRect(0,0,212,201);
ctx.clearRect(0,0,800,600);
x = (count%9)*212;
y = Math.floor(count/9)*201;
ctx.drawImage(img,x,y,212,201,xpos++,ypos++,212,201);
if(count==149)
{
count=0;
}else{
count++;
}
}
})();
[/code]
[code]
/**
* …canvas 加载图片
* @author amyflash.com
*/
(function() {
var ctx = document.getElementById(“canvas”).getContext(“2d”);
var img=new Image();
img.src = “rusty.jpg”;
img.onload = function()
{
var x=30;
var y=0;
var img_width =100;
var img_height = 100;
//ctx.drawImage(this,x,y); //按原图大小显示
//ctx.drawImage(this,x,y,img_width,img_height);//按指定宽高显示
ctx.drawImage(this,x,y,img_width,img_height,x,y,150,150);//截取150*150显示
};
})();
[/code]