溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

微信小程序中setInterval的使用方法

發(fā)布時(shí)間:2020-09-14 21:54:21 來源:腳本之家 閱讀:218 作者:喬妹 欄目:web開發(fā)

微信小程序中setInterval的使用方法

看了下小程序的畫布功能,簡(jiǎn)單的使用了一下,用蹩腳的邏輯做了個(gè) “彈啊彈,彈走魚尾紋的小球”,一起來看下吧。過程不重要主要是畫布的使用哦。(本來想傳gif的來著,后來發(fā)現(xiàn)不會(huì)傳,就傳個(gè)圖片吧,想看的自己下載下來玩呦)

先上圖,后上代碼了:

微信小程序中setInterval的使用方法

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ì)本站的支持!

向AI問一下細(xì)節(jié)

免責(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)容。

AI