1. 程式人生 > >微信小程式學習用demo推薦:微信塗鴉、canvas學習

微信小程式學習用demo推薦:微信塗鴉、canvas學習

這個demo,應該是作者的練習demo,表面上並沒有展示完全;

結構圖:

其中微信塗鴉部分預覽圖:

其中微信塗鴉部分預覽圖:

示例程式碼:

Page({

 data:{

   pen : 3, //畫筆粗細預設值

   color : '#cc0033' //畫筆顏色預設值

 },

 startX: 0, //儲存X座標軸變數

 startY: 0, //儲存Y座標軸變數

 isClear : false, //是否啟用橡皮擦標記

 //手指觸控動作開始

 touchStart: function (e) {

     //得到觸控點的座標

     this.startX = e.changedTouches[0].x

     this.startY = e.changedTouches[0].y

     this.context = wx.createContext()

     if(this.isClear){ //判斷是否啟用的橡皮擦功能  ture表示清除  false表示畫畫

        this.context.setStrokeStyle('#FFFFFF') //設定線條樣式 此處設定為畫布的背景顏色  橡皮擦原理就是:利用擦過的地方被填充為畫布的背景顏色一致 從而達到橡皮擦的效果

        this.context.setLineCap('round') //設定線條端點的樣式

        this.context.setLineJoin('round') //設定兩線相交處的樣式

        this.context.setLineWidth(20) //設定線條寬度

        this.context.save();  //儲存當前座標軸的縮放、旋轉、平移資訊

        this.context.beginPath() //開始一個路徑

        this.context.arc(this.startX,this.startY,5,0,2*Math.PI,true);  //新增一個弧形路徑到當前路徑,順時針繪製  這裡總共畫了360度  也就是一個圓形

        this.context.fill();  //對當前路徑進行填充

        this.context.restore();  //恢復之前儲存過的座標軸的縮放、旋轉、平移資訊

     }else{

        this.context.setStrokeStyle(this.data.color)

        this.context.setLineWidth(this.data.pen)

        this.context.setLineCap('round') // 讓線條圓潤

        this.context.beginPath()

     }

 },

 //手指觸控後移動

 touchMove: function (e) {

     var startX1 = e.changedTouches[0].x

     var startY1 = e.changedTouches[0].y

     if(this.isClear){ //判斷是否啟用的橡皮擦功能  ture表示清除  false表示畫畫

       this.context.save();  //儲存當前座標軸的縮放、旋轉、平移資訊

       this.context.moveTo(this.startX,this.startY);  //把路徑移動到畫布中的指定點,但不建立線條

       this.context.lineTo(startX1,startY1);  //新增一個新點,然後在畫布中建立從該點到最後指定點的線條

       this.context.stroke();  //對當前路徑進行描邊

       this.context.restore()  //恢復之前儲存過的座標軸的縮放、旋轉、平移資訊

       this.startX = startX1;

       this.startY = startY1;

     }else{

       this.context.moveTo(this.startX, this.startY)

       this.context.lineTo(startX1, startY1)

       this.context.stroke()

       this.startX = startX1;

       this.startY = startY1;

     }

     //只是一個記錄方法呼叫的容器,用於生成記錄繪製行為的actions陣列。context跟不存在對應關係,一個context生成畫布的繪製動作陣列可以應用於多個

     wx.drawCanvas({

        canvasId: 'myCanvas',

        reserve: true,

        actions: this.context.getActions() // 獲取繪圖動作陣列

     })

 },

 //手指觸控動作結束

 touchEnd: function () {

 },

 //啟動橡皮擦方法

 clearCanvas: function(){

     if(this.isClear){

       this.isClear = false;

     }else{

       this.isClear = true;

     }

 },

 penSelect: function(e){ //更改畫筆大小的方法

   console.log(e.currentTarget);

   this.setData({pen:parseInt(e.currentTarget.dataset.param)});

   this.isClear = false;

 },

 colorSelect: function(e){ //更改畫筆顏色的方法

   console.log(e.currentTarget);

   this.setData({color:e.currentTarget.dataset.param});

   this.isClear = false;

 },

 // 下拉重新整理

 onPullDownRefresh: function(){

   wx.stopPullDownRefresh()

 },

 // 頁面分享

 onShareAppMessage: function () {

   return {

     title: '微信小程式',

     desc: '這是微信小程式的分享功能',

     path: '/page/canvas'

   }

 }

})

文章來自:微信小程式

相關推薦

程式習用demo推薦塗鴉canvas學習

這個demo,應該是作者的練習demo,表面上並沒有展示完全; 結構圖: 其中微信塗鴉部分預覽圖: 其中微信塗鴉部分預覽圖: 示例程式碼: Page({  data:{    pen : 3, //畫筆粗細預設值    color : '#cc0033' //畫筆顏色

程式習用demo推薦塗鴉canvas學習

這個demo,應該是作者的練習demo,表面上並沒有展示完全;結構圖:   其中微信塗鴉部分預覽圖:   示例程式碼: [AppleScript] 純文字檢視 複製程式碼 ? 001 002 003 004 005

程式,精選Demo合集,你確定不要嗎?

小編最近在開發小程式,也讀到了不少優秀的小程式原始碼,專案中有些需求可以直接從原始碼裡貼上複製過來,雖然這樣做不利於自己獨立編寫程式碼,但比較是給公司做專案啊,秉著效率第一的原則,簡直沒有什麼比ctrl+c,ctrl+v,更加順手了。為了感恩大家長久以來的關注和支援,小編準備了一些福利,整理了130

程式-03登陸demo

登陸頁面 <view> <form bindsubmit='login'> <label>賬號:</label> <input name='username'></input> <

java解析程式使用者資訊demo

1、引入maven依賴 <dependency>     <groupId>org.bouncycastle</groupId>     <artifactId>bcprov-jdk16</artifactId>

程式 —— 考勤管理Demo(前後端及資料庫)

原始碼地址: 簡要介紹 這是一個微信小程式的考勤管理Demo,包括前後端及資料庫等內容。如有錯誤或建議,歡迎指出。 前端: 後端: 平臺: Node.js 資料庫: 初始賬戶:admin,初始密碼:ad

程式 —— 快遞查詢Demo(入門)

原始碼地址及提醒: 2、由於使用的是外部api,故選擇無appid登入小程式開發工具,無需更改後臺伺服器域名 簡要介紹 這是一個微信小程式的快遞查詢Demo,僅供初學者學習使用。主要展示了一些常用的一些微信API和元件,如有錯誤或建議,歡迎指出

程式登入註冊demo+java伺服器(一)

一.開發平臺和前期準備1.前端工具:微信web開發者工具打web開發者工具,新建小程式專案,目錄和名稱自己隨意填,AppID點選體驗:小程式小程式開啟後,點選右上方的詳情,專案設定,勾選不校驗xxxxx2.後臺開發工具:eclipseeclipse要求是java ee版的,並

基於程式開發的demo

先上開源地址: 最近一直在研究微信小程式,跟隨網際網路新聞的熱潮 從9月29日開發到現在,也算是把大部分API和元件都用到了 這個專案之所以想到把它開源,是因為之前在一個2000人小程式交流群中,發現很多demo都很簡單 那麼既然他們做的很簡單,自然是引領很

程式官方示例 Demo 原始碼獲取

一、引言 最近在學習微信小程式,莫名其妙的刷到了騰訊官方出的 小程式示例 的 Demo,感覺做的真的很好。 要是自己在寫小程式之前,多多參考這個 Demo 裡面的一些東西,應該會輕鬆很多,而且做出來的應該更加 “官方風格” 一點。 那麼問題來了,微

程式~雲開發 Demo 實現發表頁面

實現的結果如下: 分析如何實現 導航欄的實現很簡單就不說了,可參考我之前的文章 重點是中間的 ② 是內容區域 區域三是功能操作區 內容區域的實現 第一個是文字區域 第二個是水平的圖片展示區域 這

程式支付原始碼 Demo 後臺服務端程式碼

微信小程式支付繞坑指南 步驟 A:小程式向服務端傳送商品詳情、金額、openid B:服務端向微信統一下單 C:伺服器收到返回資訊二次簽名發回給小程式 D:小程式發起支付 E:服務端收到回撥 首先準備以一下資訊 小程式傳送小程式向服務端傳送商品詳情、金額、openid

程式登入註冊demo+java伺服器(二)

四.eclipse1.關鍵程式碼及註解LoginServletpackage yan.servlet; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; im

程式破解IDE+DEMO

安裝與破解 1、下載並安裝微信小程式開發工具0.7.0版本(詳細下文附件) 2、微信掃一掃,登陸小程式開發工具0.7版本。 3、掃描成功之後,退出開發工具0.7版本。 4、安裝0.9版本(安裝目錄和0.7的安裝目錄一致) 5、下載替換檔案(https://github.co

程式分包傳送資料,給硬體完成升級

微信小程式分包傳送資料,給微信硬體完成韌體升級 微信硬體升級流程: 1.準備升級韌體包,我們使用的是zip包,實際使用的時候可以放在伺服器下載。 2.掃描ble裝置並連線,向裝置寫入10,進入dfu模式。 3.進入dfu之後藍芽會斷開,需要重新連結,另外,duf模式下,藍芽的

程式合法域名配置-不校驗合法域名web-view(業務域名)TLS 版本以及 HTTPS 證書

微信小程式合法域名配置-不校驗合法域名、web-view(業務域名)、TLS 版本以及 HTTPS 證書 很多教程說按照以上方式呼叫即可。但是當我們在程式中實際呼叫以上程式時,就會報錯, http://14.116.211.92:8099 不在以下 request 合法域名列表中,請參考文件

程式開發— 圖片顯示錯誤VM24966:2

VM24966:2 Failed to load image http://1042065718.debug.open.weixin.qq.com/pages/detail/detail/detail : the server responded with a status of 404

程式服務端請求必須HTTPS 程式服務端請求必須HTTPS

微信小程式服務端請求必須HTTPS SSL證書的作用 HTTP明文協議是不安全的傳輸協議,無法進行伺服器端真實身份校驗,也不能為傳輸資料提供加密保護,通過HTTP協議傳輸的資料時刻處在被竊聽、篡改、冒充的風險

程式】下載並預覽文件——pdfwordexcel等多種型別

簡要:wx.downloadFile(OBJECT)下載檔案資源到本地,客戶端直接發起一個 HTTP GET 請求,返回檔案的本地臨時路徑。wx.openDocument(OBJECT)新開頁面開啟文件,支援格式:doc, xls, ppt, pdf, docx, xlsx, pptx。 呼

程式有什麼優勢 如何做程式

  微信小程式優勢主要體現在以下幾方面:   1,不用安裝,即開即用,用完就走。省流量,省安裝時間,不佔用桌面;   2,體驗上雖然沒法完全媲美原生APP,但綜合考慮還是更優;   3,對於小程式擁有者來說,開發成本更低,他們可以更多財力,人力,精力放在如何運營好產品,