WeChatアプレットCanvas拡張コンポーネント例の詳細説明とソースコード共有

高洛峰
リリース: 2017-02-08 14:49:04
オリジナル
1222 人が閲覧しました

この記事では、主に WeChat アプレットの Canvas 拡張コンポーネントの詳細な説明と、ソース コード共有に関する関連情報を紹介します。ここでは、必要な友人が参照できるようにします。は、HTML5 Canvas クラス ライブラリ ZRender に基づいた WeChat アプレット Canvas 拡張コンポーネントです。

微信小程序 Canvas增强组件实例详解及源码分享

使用

WXML:

 <canvas style="width: 375px; height: 600px;" canvas-id="line-canvas-1">canvas>
ログイン後にコピー

JS:

 var wezrender = require(&#39;../../lib/wezrender&#39;);

  zr = wezrender.zrender.init("line-canvas-1", 375, 600);
ログイン後にコピー

特徴

データ駆動型

WeZRenderで描画し、グラフィックスデータを定義するだけです。

 var circle = new wezrender.graphic.shape.Circle(   
    shape: {
      cx: 50,
      cy: 50,
      r: 50
    },
    style: {
      fill: &#39;red&#39;,
      lineWidth: 10
    }
  });
ログイン後にコピー

豊富なグラフィックオプション

さまざまなグラフィック要素(円、楕円、リング、扇形、長方形、多角形、直線、曲線、ハート形、水滴、バラのライン、トロコイド、テキスト、画像)を内蔵、など)、統一された豊富なグラフィック属性は、パーソナライズされたニーズを完全に満たします。

 var droplet = new wezrender.graphic.shape.Droplet({
    shape: {
      cx: 200,
      cy: 300,
      width: 50,
      height: 50
    },
    style: {
        fill: &#39;#ff9999&#39;
    }
  });
ログイン後にコピー

強力なアニメーションのサポート

Promise スタイルのアニメーション インターフェイスと一般的なイージング関数を提供し、さまざまなアニメーションのニーズを簡単に実現します。

var image = new wezrender.graphic.Image({
    style: {
      x: 0,
      y: 0,
      image: &#39;../../images/koala.jpg&#39;,
      width: 32,
      height: 24,
      text: &#39;koala&#39;
    }
  });
  zr.add(image);

  image.animateStyle(true)
    .when(2000, {
      x: 350,
      y: 450,
      width: 360,
      height: 270,
    })
    .start();
ログイン後にコピー


拡張が簡単

分割統治グラフ定義戦略により、グラフ要素の拡張が可能になります。

var Pin = wezrender.graphic.Path.extend({
    type: &#39;pin&#39;,
    shape: {
      // x, y on the cusp
      x: 0,
      y: 0,
      width: 0,
      height: 0
    },
    buildPath: function (path, shape) {
      var x = shape.x;
      var y = shape.y;
      var w = shape.width / 5 * 3;
      // Height must be larger than width
      var h = Math.max(w, shape.height);
      var r = w / 2;

      // Dist on y with tangent point and circle center
      var dy = r * r / (h - r);
      var cy = y - h + r + dy;
      var angle = Math.asin(dy / r);
      // Dist on x with tangent point and circle center
      var dx = Math.cos(angle) * r;

      var tanX = Math.sin(angle);
      var tanY = Math.cos(angle);

      path.arc(
        x, cy, r,
        Math.PI - angle,
        Math.PI * 2 + angle
      );

      var cpLen = r * 0.6;
      var cpLen2 = r * 0.7;
      path.bezierCurveTo(
        x + dx - tanX * cpLen, cy + dy + tanY * cpLen,
        x, y - cpLen2,
        x, y
      );
      path.bezierCurveTo(
        x, y - cpLen2,
        x - dx + tanX * cpLen, cy + dy + tanY * cpLen,
        x - dx, cy + dy
      );
      path.closePath();
    }
  });
ログイン後にコピー

読んでいただきありがとうございます、皆さんのお役に立てれば幸いです、このサイトをサポートしていただきありがとうございます!


WeChat アプレット Canvas の強化されたコンポーネントの例とソース コード共有関連記事の詳細な説明については、PHP 中国語 Web サイトに注目してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート