Ⅰ 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();
})
})
大體是這么個意思,至於怎麼延伸在你