1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- Component({
- data: {
- finalPixelRatio: 1,
- },
- properties: {
- style: {
- type: String,
- value: '',
- },
- width: {
- type: Number,
- value: 100,
- },
- height: {
- type: Number,
- value: 100,
- },
- onInit: {
- type: Function,
- value: function value() {},
- },
- onTouchEvent: {
- type: Function,
- value: function value() {},
- },
- onError: {
- type: Function,
- value: function value() {},
- },
- pixelRatio: {
- type: Number,
- value: 1,
- },
- },
- observers: {
- pixelRatio: function (pixelRatio) {
- this.setData({
- finalPixelRatio: pixelRatio >= 1 ? Math.ceil(pixelRatio) : 1,
- });
- },
- },
- ready: function ready() {
- const query = wx.createSelectorQuery().in(this);
- query
- .select('#f6-canvas')
- .fields({
- node: true,
- size: true,
- })
- .exec((ret) => {
- console.log('ret', ret);
- var canvas = ret[0].node;
- const finalPixelRatio = this.data.finalPixelRatio;
- canvas.width = this.data.width * finalPixelRatio;
- canvas.height = this.data.height * finalPixelRatio;
- this.rect = {
- width: this.data.width * finalPixelRatio,
- height: this.data.height * finalPixelRatio,
- left: canvas._left,
- top: canvas._top,
- };
- console.log('rect', this.rect);
- this.ctx = canvas.getContext('2d');
- this.triggerEvent('onInit', {
- ctx: this.ctx,
- rect: this.rect,
- canvas: canvas,
- renderer: 'mini-native',
- });
- });
- },
- methods: {
- error: function error(e) {
- this.data.onError(e);
- },
- ontouch: function ontouch(e) {
- var i = 0;
- for (i = 0; i < e.touches.length; i++) {
- modifyEvent(e.touches[i]);
- }
- for (i = 0; i < e.changedTouches.length; i++) {
- modifyEvent(e.changedTouches[i]);
- }
- this.triggerEvent('onTouchEvent', e);
- },
- },
- });
- function modifyEvent(touchEvent) {
- touchEvent.clientX = touchEvent.x;
- touchEvent.clientY = touchEvent.y;
- touchEvent.pageX = touchEvent.x;
- touchEvent.pageY = touchEvent.y;
- }
|