您好,登錄后才能下訂單哦!
微信小程序中setInterval的使用方法
看了下小程序的畫布功能,簡(jiǎn)單的使用了一下,用蹩腳的邏輯做了個(gè) “彈啊彈,彈走魚尾紋的小球”,一起來看下吧。過程不重要主要是畫布的使用哦。(本來想傳gif的來著,后來發(fā)現(xiàn)不會(huì)傳,就傳個(gè)圖片吧,想看的自己下載下來玩呦)
先上圖,后上代碼了:
js:
var winWidth = 0 var winHeight = 0 var diameter = 10 var time = 0 Page({ data:{ numX:1, numY:1 }, xy:{ //小球的xy坐標(biāo) x:10, y:10 }, onLoad:function(options){ //進(jìn)來先獲取手機(jī)的屏幕寬度和高度 wx.getSystemInfo({ success: function(res) { console.log(res) winHeight = res.windowHeight; winWidth = res.windowWidth; } }) }, onReady:function(){ //循環(huán)滾動(dòng)小球 for(var i=0;i<1;i++){ //隨機(jī)一個(gè)滾動(dòng)的速度 time = (1+Math.random()*10) setInterval(this.move,time); console.log(time) } }, move(){ //x if(this.data.numX == 1){ this.xy.x++ }else{ this.xy.x-- } //判斷x軸的狀態(tài) if(this.xy.x == winWidth-diameter){ this.data.numX=2 } if(this.xy.x == diameter){ this.data.numX=1 } //y if(this.data.numY == 1){ this.xy.y++ }else{ this.xy.y-- } //判斷y軸的狀態(tài) if(this.xy.y == 400-diameter){ this.data.numY=2 } if(this.xy.y == diameter){ this.data.numY=1 } //畫圖 this.ballMove(this.xy.x,this.xy.y); }, ballMove(x,y){ // 使用 wx.createContext 獲取繪圖上下文 context var context = wx.createContext() // context.setShadow(0,1,6,'#000000')//陰影效果 context.setFillStyle("#FF4500")//球的顏色 context.setLineWidth(2) context.arc(x, y, diameter, 0, 2 * Math.PI, true) context.fill() // 調(diào)用 wx.drawCanvas,通過 canvasId 指定在哪張畫布上繪制,通過 actions 指定繪制行為 wx.drawCanvas({ canvasId: 'ball', actions: context.getActions() // 獲取繪圖動(dòng)作數(shù)組 }) } })
wxml:
canvas-id="ball">
如有疑問請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。