Canvas应用绚烂效果-creatjs实现
js文件
var content;//畫布
var stage;//舞臺
var spriteSheet;//精靈列表類
var sprite;//精靈
window.οnlοad=function(){
??? //獲取畫布
??? content=document.getElementById_x_x_x_x_x_x("canvas");
??? //畫布上創建舞臺
??? stage=new createjs.Stage(content);
??? //舞臺增加時間監聽
??? //點擊鼠標事件監聽
??? stage.addEventListener("stagemousedown",clickStage);
??? //滑動鼠標事件監聽
??? stage.addEventListener("stagemousemove",moveOnStage);
??? //創建SpriteSheet數據
??? var data={
??????? images:["1.png"],
??????? frames:{width:24,height:24,regX:10,regY:10}
??? }
??? //創建SpriteSheet類
??? spriteSheet=new createjs.SpriteSheet(data);
??? //創建Sprite類
??? sprite=new createjs.Sprite(spriteSheet);
??? //設置幀頻率
??? createjs.Ticker.setFPS(20);
??? //設置幀監聽(類似于定時器,進行定時更新舞臺)
??? createjs.Ticker.addEventListener("tick",tick);
}
//幀監聽
function tick(e){
??? var t=stage.getNumChildren();//獲得舞臺上精靈的數量
??? for(var i=t-1;i>=0;i--){
??????? var snow=stage.getChildAt(i);
??????? //計算XY的偏移位置
??????? snow.vY+=2;
??????? snow.vX+=1;
??????? //重定位x,y的位置
??????? snow.x+=snow.vX;
??????? snow.y+=snow.vY;
??????? //重定義縮放
??????? snow.scaleX=snow.scaleY=snow.vS+snow.scaleX;
??????? //重定義透明度
??????? snow.alpha+=snow.vA;
??????? //判斷是否消除
?????? if(snow.alpha<=0||snow.y>=content.height||snow.x>=content.width){
??????????? //由舞臺刪除
??????????? stage.removeChildAt(i);
??????? }
??? }
??? //更新舞臺
??? stage.update(e);
}
//點擊舞臺事件監聽
function clickStage(e){
??? //增加雪花
??? addSnow(Math.random()*20+100, stage.mouseX,stage.mouseY,2);
}
//在舞臺上上移動鼠標事件監聽
function moveOnStage(e){
??? //增加雪花
??? addSnow(Math.random()*2+1, stage.mouseX,stage.mouseY,1);
}
//count:數量;x:鼠標x位置;y:鼠標y位置;speed:速度;
function addSnow(count,x,y,speed){
??? for(var i=0;i
??????? var snow=sprite.clone();
??????? snow.alpha=Math.random()*0.5+0.5;//透明度
??????? snow.x=x;//鼠標x位置
??????? snow.y=y;//鼠標y位置
??????? snow.scaleX=snow.scaleY=Math.random()+0.3;//縮放尺寸
??????? var a=Math.PI*2*Math.random();//隨機弧度
??????? var r=(Math.random()-0.5)*speed*30;//隨機半徑
??????? snow.vX=Math.sin(a)*r;//偏離x位置的水平距離,此處自己定義,用于顯示此雪花偏離鼠標處x位置
??????? snow.vY=Math.cos(a)*r;//偏離Y位置的垂直距離,此處自己定義,用于顯示此雪花偏離鼠標處y位置
??????? snow.vS=(Math.random()-0.5)*0.2;//精靈縮放因子的改變因子,此處自己定義
??????? snow.vA=-Math.random()*0.05-0.01;//透明度變化率,此處自己定義
??????? //增加進舞臺
??????? stage.addChild(snow);
??? }
} ? ? ?
轉載于:https://www.cnblogs.com/Eudora/p/4103261.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Canvas应用绚烂效果-creatjs实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 授权_MySQL的授权
- 下一篇: IT销售素质 -- 自信进取