目录

Canvas

Canvas实例,可通过SelectorQuery获取。

起始版本: 2.0.1

属性:

参数 类型 描述
width number 画布宽度。
height number 画布高度。

Canvas.getContext

Canvas.getContext(string contextType)

返回Canvas的绘图上下文。

起始版本: 2.0.2

参数:

参数 类型 必填 描述
contextType string 否

上下文类型。

contextType的合法值:2d。

返回值:

返回RenderingContext对象。

示例:

has.createSelectorQuery().select('#myCanvas')
  .node((res) => {
    const canvas = res.node;
    const ctx = canvas.getContext('2d');
    console.info('canvas context: ', ctx);
  })
  .exec();

Canvas.createImage

Canvas.createImage()

创建一个图片对象,仅支持2D Canvas类型。

起始版本: 2.0.2

返回值:

返回Image对象。

示例:

has.createSelectorQuery().select('#myCanvas')
  .node((res) => {
    const canvas = res.node;
    const ctx = canvas.getContext('2d');
    const img = canvas.createImage();
    img.src = 'https://www.example.com/xxxx.png'; // 此处仅为样例,请开发者更换为可用图片资源地址
    img.onload = () => {
      ctx.drawImage(img, 0, 10, 237, 133);
      console.info('image width', img.width);
      console.info('image height', img.height);
    };
    img.onerror = (err) => {
      console.error('createImage err', err);
    };
  })
  .exec();

Canvas.toDataURL

Canvas.toDataURL(string type, number encoderOptions)

返回一个包含图片展示的data URI。

起始版本: 2.0.2

参数:

参数 类型 默认值 必填 描述
type string image/png 否

图片格式,默认值为'image/png'。

合法值:'image/png','image/jpeg','image/webp'。

encoderOptions number 0.92 否

图片的质量,取值范围为0-1。

只有在指定图片格式为'image/jpeg'或'image/webp'的情况下,才可以从0到1的区间内选择图片的质量。

返回值:

类型 描述
string 返回一个包含图片展示的data URI。

示例:

has.createSelectorQuery().select('#myCanvas')
  .node((res) => {
    const canvas = res.node;
    const ctx = canvas.getContext('2d');
    const base64 = canvas.toDataURL();
    console.info('toDataURL res: ', base64);
  })
  .exec();

Canvas.createPath2D

Canvas.createPath2D(string|Path2D path)

创建一个Path2D对象。

起始版本: 2.0.2

参数:

参数 类型 必填 默认值 描述
path string|Path2D 否 - 用于创建新路径的源路径。默认值:创建空路径。

返回值:

返回Path2D对象。

示例:

has.createSelectorQuery().select('#myCanvas')
  .node((res) => {
    const canvas = res.node;
    const ctx = canvas.getContext('2d');
    const path = canvas.createPath2D();
  })
  .exec();

Canvas.requestAnimationFrame

Canvas.requestAnimationFrame(function callback)

注册一个函数,在下次进行重绘时执行。

起始版本: 2.0.2

参数:

参数 类型 必填 描述
callback function 是 在下次重绘之前调用的回调函数。

返回值:

返回requestId,作为动画帧请求ID,可以传递给Canvas.cancelAnimationFrame以实现取消该动画帧请求。

示例:

has.createSelectorQuery().select('#myCanvas')
  .node((res) => {
    const canvas = res.node;
    const ctx = canvas.getContext('2d');
    let x = 0;
    const draw = () => {
      ctx.clearRect(0, 0, 300, 300);
      x = (x + 2) % 300;
      ctx.fillStyle = 'red';
      ctx.fillRect(x, 50, 50, 50);
      const requestId = canvas.requestAnimationFrame(draw);
    };
    draw();
  })
  .exec();

Canvas.cancelAnimationFrame

Canvas.cancelAnimationFrame(number requestId)

取消由Canvas.requestAnimationFrame添加到计划中的动画帧请求。

起始版本: 2.0.2

参数:

参数 类型 必填 描述
requestId number 是 动画帧请求ID,调用Canvas.requestAnimationFrame时返回。

示例:

has.createSelectorQuery().select('#myCanvas')
  .node((res) => {
    const canvas = res.node;
    canvas.cancelAnimationFrame(requestId); // requestId是调用Canvas.requestAnimationFrame接口返回的值
  })
  .exec();