Ⅰ HTML5动画框架easeljs中setFPS函数
setFPS、getFPS是EaselJS中Ticker类用于设置和获取帧频的函数。
EaselJS中Ticker类动画机制:
1、逐帧动画
逐帧动画,把动画(例如人物动作)进行分解,然后绘制出连续的、具有代表性的动作,连续播放形成动画,逐帧动画适用于复杂的不连续的动画。
实现逐帧动画主要需要两个东西,动作关键帧和动起来的机制。
“动画”机制:使动画动起来的机制,这里使用EaselJS的一个类Ticker
createjs.Ticker.addEventListener("tick",tick);
functiontick(evt){
//somecode
}
Ticker的几个关键方法,setFPS、getFPS设置和获取帧频,setInterval、getInterval设置和获取时间间隔,setPaused、getPaused设置和获取暂停等,这些都是静态方法。
createJS上的逐帧动画示例:
<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="UTF-8">
<metaauthor="pingfan"content="creatJSGame">
<title>玩转createJS游戏</title>
<linkrel="stylesheet"href="../css/game.css">
</head>
<body>
<canvasid='canvas'width="960"height="400">浏览器不支持canvas,请使用现代浏览器。</canvas>
<scriptsrc='http://code.createjs.com/createjs-2013.12.12.min.js'></script>
<script>
varstage=newcreatejs.Stage("canvas"),
container=newcreatejs.Container(),
//定义SpriteSheet参数
data={
"animations":{
"run":[0,25,"jump"],
//start,end,next,speed开始帧,结束帧,下一个动作,运行速度
"jump":[26,63,"run",1]
},
"images":["http://createjs.com/Demos/EaselJS/assets/runningGrant.png"],
"frames":{
//单个帧的高度,宽度,就是png图片里面那么多个帧一个帧的大小
"height":292.5,
"width":165.75,
//相对于原始偏移的位置
"regX":0,
"regY":0,
//帧数
"count":64
}
};
//实例精灵动画集
varmove=newcreatejs.SpriteSheet(data);
//SpriteSheet类设置帧和动画,里面的run为开始的动画
vargrant=newcreatejs.Sprite(move,"run");
//设置在舞台中的位置
grant.x=360;
grant.y=100;
//把动画放到舞台上,创建一个间隔事件侦听,进行动画
container.addChild(grant);
stage.addChild(container);
createjs.Ticker.setFPS(60);
createjs.Ticker.addEventListener("tick",stage);
stage.update();
</script>
</body>
</html>
2、补间动画
补间动画,指我们给定动作的初始状态和结束状态,然后动画系统(例如动画软件)自动补齐中间状态,从而形成动画,补间动画适用于物体的移动、状态的改变等简单的动画。
补间动画实例,让刚刚那个原地跑步的人,向前方跑动,单击时表示跳起:
<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="UTF-8">
<metaauthor="pingfan"content="creatJSGame">
<title>玩转createJS游戏</title>
<linkrel="stylesheet"href="../css/game.css">
</head>
<body>
<canvasid='canvas'width="960"height="400">浏览器不支持canvas,请使用现代浏览器。</canvas>
<buttonid='btn'>暂停pause</button>
<scriptsrc='http://code.createjs.com/createjs-2013.12.12.min.js'></script>
<script>
varstage=newcreatejs.Stage("canvas"),
container=newcreatejs.Container(),
//定义SpriteSheet参数
data={
"animations":{
"run":[0,25,"run",1.5],
//start,end,next,speed开始帧,结束帧,下一个动作,运行速度
"jump":[26,63,"run",1.5]
},
"images":["../img/runningGrant.png"],
"frames":{
//单个帧的高度,宽度,就是png图片里面那么多个帧一个帧的大小
"height":292.5,
"width":165.75,
//相对于原始偏移的位置
"regX":0,
"regY":0,
//帧数
"count":64
}
};
//实例精灵动画集
varmove=newcreatejs.SpriteSheet(data);
//SpriteSheet类设置帧和动画,里面的run为开始的动画
vargrant=newcreatejs.Sprite(move,"run");
//设置在舞台中的位置
grant.x=20;
grant.y=22;
//把动画放到舞台上,创建一个间隔事件侦听,进行动画
container.addChild(grant);
stage.addChild(container);
createjs.Ticker.setFPS(60);
createjs.Ticker.addEventListener("tick",tick);
//speed用来做加速度
varspeed=1;
functiontick(){
if(!createjs.Ticker.getPaused()){
grant.x+=3*speed;
stage.update();
speed+=.01;
(grant.x>stage.canvas.width)&&(grant.x=0,speed=1)
}
}
//侦听鼠标事件
stage.addEventListener("stagemousedown",handleClick);
functionhandleClick(){
//alert(11);
grant.gotoAndPlay("jump");
}
//设置按钮暂停
varbtn=document.getElementById("btn");
btn.addEventListener("click",toggleMove,false);
functiontoggleMove(){
//grant.gotoAndStop();
//其实实现暂停和运动就是false和true切换
varpaused=!createjs.Ticker.getPaused();
createjs.Ticker.setPaused(paused);
btn.value="暂停pause"?"运动play":"暂停pause";
}
stage.update();
</script>
</body>
</html>
Ⅱ 如何使用javascript实现小球是沿着操场跑道轨迹运动
呵呵,我以前还真的用过JavaScript来做数学题,但是难点是如何实现未知数,但是你问的这个问题比较简单,首先需要预设好一个数组,是操场的每段路(或者时间单位)的坐标,作为一个二维数组需要绑定x和y分别是横竖坐标,开始loop,但是问题是你有没有小球运动的函数或者方法啊==
Ⅲ js图片左右滚动 怎么弄 有没案例代码 求帮忙
1.jquery.imgScroll.js
;(function($){$.fn.extend({"imgScroll":function(object){object=$.extend({firstDiv:null,scrollBox:null,scrollImgBox:null,tabDiv:null,tabDivList:null,botPrev:null,botNext:null,changeType:"slide",thumbNowClass:'on',thumbOverEvent:true,changeTime:5000,ImgBoxMar:0,flag:true},object||{});varimgLen=$(object.scrollImgBox).length;varimgNum=0;vartabNum=0;varnowIndex=0;varindex;varscrollWid=$(object.scrollImgBox).width()+object.ImgBoxMar;$(object.scrollImgBox).clone().appendTo($(this));functionchangeEffectNext(){if(object.changeType=='slide'){if(imgNum<imgLen){imgNum++}else{if(imgNum==imgLen){$(object.scrollBox).css({'margin-left':0});imgNum=1}}$(object.scrollBox).animate({'margin-left':-scrollWid*imgNum});if(tabNum<imgLen-1){tabNum++}else{if(tabNum==imgLen-1){tabNum=0}}$(object.tabDivList).eq(tabNum).addClass(object.thumbNowClass);$(object.tabDivList).eq(tabNum).siblings().removeClass(object.thumbNowClass)}if(object.changeType=='fadein'){if(imgNum<imgLen-1){imgNum++}else{if(imgNum==imgLen-1){imgNum=0}}$(object.scrollImgBox).eq(imgNum).fadeIn('slow');$(object.scrollImgBox).eq(imgNum).siblings().fadeOut('slow');$(object.tabDivList).eq(imgNum).addClass(object.thumbNowClass);$(object.tabDivList).eq(imgNum).siblings().removeClass(object.thumbNowClass)}};functionchangeEffectPrev(){if(object.changeType=='slide'){if(imgNum>0){imgNum--}else{if(imgNum==0){$(object.scrollBox).css({'margin-left':-scrollWid*imgLen});imgNum=imgLen-1}}$(object.scrollBox).animate({'margin-left':-scrollWid*imgNum});if(tabNum>0){tabNum--}else{if(tabNum==0){tabNum=imgLen-1}}$(object.tabDivList).eq(tabNum).addClass(object.thumbNowClass);$(object.tabDivList).eq(tabNum).siblings().removeClass(object.thumbNowClass)}if(object.changeType=='fadein'){if(imgNum>0){imgNum--}else{if(imgNum==0){imgNum=imgLen-1}}$(object.scrollImgBox).eq(imgNum).fadeIn('slow');$(object.scrollImgBox).eq(imgNum).siblings().fadeOut('slow');$(object.tabDivList).eq(imgNum).addClass(object.thumbNowClass);$(object.tabDivList).eq(imgNum).siblings().removeClass(object.thumbNowClass)}}if(object.flag==true){vars=setInterval(changeEffectNext,object.changeTime);$(object.firstDiv).hover(function(){clearInterval(s)},function(){s=setInterval(changeEffectNext,object.changeTime);});$(object.tabDiv).hover(function(){clearInterval(s)},function(){s=setInterval(changeEffectNext,object.changeTime)});$(object.botPrev).bind("click",function(){clearInterval(s)}).bind("mouseover",function(){clearInterval(s)});$(object.botNext).bind("click",function(){clearInterval(s)}).bind("mouseover",function(){clearInterval(s)})};$(object.botNext).click(function(){changeEffectNext()});$(object.botPrev).click(function(){changeEffectPrev()});functionchangesmallImg(index){$(object.tabDivList).eq(index).addClass(object.thumbNowClass);$(object.tabDivList).eq(index).siblings().removeClass(object.thumbNowClass);if(object.changeType=='slide'){$(object.scrollBox).animate({'margin-left':-scrollWid*index})}if(object.changeType=='fadein'){$(object.scrollImgBox).eq(index).fadeIn('slow');$(object.scrollImgBox).eq(index).siblings().fadeOut('slow')}imgNum=index;tabNum=index}if(object.thumbOverEvent==true){$(object.tabDivList).click(function(){varindex=$(this).index();changesmallImg(index)})}if(object.thumbOverEvent==false){$(object.tabDivList).hover(function(){varindex=$(this).index();changesmallImg(index)})}}})})(jQuery);
2.html结构
a,.lbPeo{-webkit-transition:all.2sease-in-out0s;-o-transition:all.2sease-in-out0s;-moz-transition:all.2sease-in-out0s;-ms-transition:all.2sease-in-out0s;transition:all.2sease-in-out0s;}
.lbCon{margin-top:33px;margin-bottom:37px;position:relative;}
.lbBtn{display:block;position:absolute;top:0;width:40px;height:143px;border:1pxsolid#D7D2CA;background:url('../../../images/special/140801/ctr_prev.png')no-repeatcentercenter;}
.lbPrev{left:0}.lbNext{right:0;background-image:url('../../../images/special/140801/ctr_next.png')}
.lbBtn:hover{background-color:#ddd;}
.lbBox{width:900px;height:145px;margin-left:50px;overflow:hidden;position:relative;}
.lbList{width:1000%;}
.lbBoxul{float:left}
.lbBoxli{float:left;width:150px;height:145px;overflow:hidden;}
.lbPeo{text-align:center;line-height:18px;font-family:"微软雅黑";color:#333}
.lbPeoimg{display:block;border:1pxsolid#ddd;width:84px;height:103px;margin-left:32px;*margin-left:5px;}
.lbPeoh5{font-weight:bold;font-size:12px;padding-top:5px;*padding-top:0}
.lbPeoh6{font-size:12px;}
.lbBoxlia:hover{text-decoration:none}
.lbBoxlia:hover.lbPeo{color:#ff9600}
<!--人物-->
<divclass="lbConcomWithclearfix">
<divclass="lbBox">
<divclass="lbList">
<ul>
<li><ahref=""target="_blank">
<divclass="lbPeoclearfix">
<imgsrc="http://img4.cache.netease.com/stock/2014/7/22/201407221627281cd88.jpg"/>
<h5>李大红</h5>
<h6>大公报副社长兼执行总编辑</h6>
</div>
</a></li>
<li><ahref=""target="_blank">
<divclass="lbPeoclearfix">
<imgsrc="http://img4.cache.netease.com/stock/2014/7/22/201407221627281cd88.jpg"/>
<h5>李大红</h5>
<h6>大公报副社长兼执行总编辑</h6>
</div>
</a></li>
<li><ahref=""target="_blank">
<divclass="lbPeoclearfix">
<imgsrc="http://img4.cache.netease.com/stock/2014/7/22/201407221627281cd88.jpg"/>
<h5>李大红</h5>
<h6>大公报副社长兼执行总编辑</h6>
</div>
</a></li>
<li><ahref=""target="_blank">
<divclass="lbPeoclearfix">
<imgsrc="http://img4.cache.netease.com/stock/2014/7/22/201407221627281cd88.jpg"/>
<h5>李大红</h5>
<h6>大公报副社长兼执行总编辑</h6>
</div>
</a></li>
<li><ahref=""target="_blank">
<divclass="lbPeoclearfix">
<imgsrc="http://img4.cache.netease.com/stock/2014/7/22/201407221627281cd88.jpg"/>
<h5>李大红</h5>
<h6>大公报副社长兼执行总编辑</h6>
</div>
</a></li>
<li><ahref=""target="_blank">
<divclass="lbPeoclearfix">
<imgsrc="http://img4.cache.netease.com/stock/2014/7/22/201407221627281cd88.jpg"/>
<h5>李大红</h5>
<h6>大公报副社长兼执行总编辑</h6>
</div>
</a></li>
</ul>
<ul>
<li><ahref=""target="_blank">
<divclass="lbPeoclearfix">
<imgsrc="http://img4.cache.netease.com/stock/2014/7/22/201407221627281cd88.jpg"/>
<h5>李大2红</h5>
<h6>大公报副社长兼执行总编辑</h6>
</div>
</a></li>
<li><ahref=""target="_blank">
<divclass="lbPeoclearfix">
<imgsrc="http://img4.cache.netease.com/stock/2014/7/22/201407221627281cd88.jpg"/>
<h5>李2大红</h5>
<h6>大公报副社长兼执行总编辑</h6>
</div>
</a></li>
<li><ahref=""target="_blank">
<divclass="lbPeoclearfix">
<imgsrc="http://img4.cache.netease.com/stock/2014/7/22/201407221627281cd88.jpg"/>
<h5>李大红</h5>
<h6>大公报副社长兼执行总编辑</h6>
</div>
</a></li>
<li><ahref=""target="_blank">
<divclass="lbPeoclearfix">
<imgsrc="http://img4.cache.netease.com/stock/2014/7/22/201407221627281cd88.jpg"/>
<h5>李大红</h5>
<h6>大公报副社长兼执行总编辑</h6>
</div>
</a></li>
<li><ahref=""target="_blank">
<divclass="lbPeoclearfix">
<imgsrc="http://img4.cache.netease.com/stock/2014/7/22/201407221627281cd88.jpg"/>
<h5>李大红</h5>
<h6>大公报副社长兼执行总编辑</h6>
</div>
</a></li>
<li><ahref=""target="_blank">
<divclass="lbPeoclearfix">
<imgsrc="http://img4.cache.netease.com/stock/2014/7/22/201407221627281cd88.jpg"/>
<h5>李大红</h5>
<h6>大公报副社长兼执行总编辑</h6>
</div>
</a></li>
</ul>
</div>
</div>
<ahref="javascript:;"class="lbBtnlbPrev"></a>
<ahref="javascript:;"class="lbBtnlbNext"></a>
</div>
3.页面调用:
<script type="text/javascript" src="js/jquery-1.9.1.js"></script>
<script type="text/javascript" src="js/jquery.imgScroll.js"></script>(上面那个js)
$('.lbCon.lbBox.lbList').imgScroll({
firstDiv:'.lbCon.lbBox',
scrollBox:'.lbCon.lbBox.lbList',
scrollImgBox:'.lbCon.lbBoxul',
botPrev:'.lbCon.lbPrev',
botNext:'.lbCon.lbNext',
changeType:"slide",
thumbNowClass:'on',
thumbOverEvent:true,
changeTime:5000,
ImgBoxMar:0,
flag:false
});
4.至于鼠标滑过 显示左右按钮,可以这么写(思路:css默认隐藏左右按钮,鼠标滑过显示左右按钮,划出隐藏,需要引入jquery.js)
$(function(){
$(".wj_jdt_1").bind("onmouseover",function(){
$(".ctr_btn").show();
}).bind("onmouseout",function(){
$(".ctr_btn").hide();
})
})
大体是这么个意思,至于怎么延伸在你