codecamp

支付宝小程序扩展能力 Bling

简介

Bling 是一款面向小程序的语义化动画库。本着让小程序写更少的代码、实现更多动画的初心,Bling 通过大量基础的实现、简单的拼装组合,循序渐进、由浅入深,使开发者获得沉浸式的动画开发体验,逐渐爱上写小程序的动画,小成本带来小程序效果上的大增值。

设计理念

Bling 源于 CSS3,又高于 CSS3 的三大设计理念:

  • 语义化:接口通俗易懂、老少皆宜,读写呈流线式,代码行间却尽显着不羁
  • 多模式:雅俗共赏,两套实现模式,按需调用、搭配,最优雅的设计给最挑剔的你
  • 易扩展:开放、友好,每一个闪光的你都值得携手同行,共谱美好

两行代码实现呼吸灯效果

// 定义一个 Breathe 实例
const action = Bling.Breathe(2000, 1.1);
// 让对应的 ref 调用,并循环 3 次
this.blingRef.runAction(Bling.Repeat(3, action));

关于 Bling 更详细的说明和使用方法,详情请参见 Bling

安装使用

环境准备

在开始 Bling 项目之前,开发者需要熟悉阿里小程序的开发,并准备好阿里小程序的开发环境。详情请参见 小程序开发指南

安装小程序组件

在标准小程序目录下执行命令

npm i mini-ali-bling --by=yarn --save

index.json

在 index.json 里引用 Bling 的小程序组件

{
  "defaultTitle": "Bling DEMO",
  "usingComponents": {
    "bling": "mini-ali-bling/bling"
  }
}

index.axml

在 index.axml 中使用 <bling /> 组件:

<!-- 使用 ref 绑定 BlingRef 之后,会在组件初始化时触发 BlingRef 方法 -->
<bling
  className="bling"
  ref="BlingRef"
>
  <image src="https://gw.alipayobjects.com/as/g/tiny/resources/1.0.0/images/ants/ant.png" />
</bling>

app.js

App({
  onLaunch() {
    const { Bling } = $global;


    // 获取引擎单例并启动,用于帧调度(一个 App 只需创建并共用一个)
    Bling.Engine.getInstance().start();
  },
});

index.js

// 从全局对象 $global 中获取 Bling 对象
// 此对象是在小程序组件 mini-ali-bling 里注入的
const { Bling } = $global;


Page({
  // BlingRef 方法的参数 ref 为自定义组件实例,运行时由框架传递给 BlingRef 方法
  BlingRef(ref) {
    // 存储自定义组件实例,方便下面调用
    this.blingRef = ref;
  },
  onReady() {
    // 新建一个 MoveTo action,时长是3000ms,移动到 {120rpx, 240rpx}
    const action = Bling.MoveTo(3000, Bling.point(120, 240));


    // 使用自定义组件实例(显示对象)并设置其初始位置为 {200rpx, 50rpx}
    this.blingRef.setPosition(200, 50);
    // 执行 action
    this.blingRef.runAction(action);
  },
});

使用须知

Bling 使用了小程序自定义组件,并需要 component2 相关功能,所以小程序项目要启动 component2。

启用方式:在 IDE 中的 详情 > 项目配置 中,勾选 启用 component2 编译。

支付宝小程序扩展能力 支持TypeScript
支付宝小程序扩展能力 小程序WebIDE使用指南
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

支付宝小程序开发文档

支付宝小程序 快速示例

支付宝小程序 小程序快速示例

支付宝小程序 框架

支付宝小程序 组件

支付宝小程序组件 基础组件

支付宝小程序组件 无障碍访问

支付宝小程序 扩展组件

支付宝小程序扩展组件 UI组件

支付宝小程序 API

支付宝小程序 开发工具

支付宝小程序 云服务

支付宝小程序 Serverless

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }