一个3D球状标签插件。通过本插件的 open 接口,可以打开一个球体,插件所在区域为一个 view, 类似 open 了一个 frame,前端开发者可理解为打开了一个 frame 在指定窗口。开发者可自定义球体上的 item 标签,包括其大小、背景、头像大小和位置、标题(或name)大小和位置及其颜色。插件初始打开时默认在不停的自转(初始自转方向是随机的),当用户通过手势轻扫滑动球体,球体会跟随手势方向自转,点击球体上的标签,该标签会有放大的动画,放大动画结束后插件回调相应单击事件。可通过 hide、shou 接口隐藏、显示插件。注意 close 和 hide 的区别。本插件支持同一个页面打开多个插件,以 ID 区分。
打开标签控件
open({params}, callback(ret))
rect:
{
x: 0, //(可选项)数字类型;插件左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
y: 0, //(可选项)数字类型;插件左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
w: 300, //(可选项)数字类型;插件的宽度;默认:auto,屏幕宽度
h: 300 //(可选项)数字类型;插件的高度;默认:auto,屏幕高度
}
styles:
{
bg: '', //(可选项)字符串类型;插件背景设置,支持rgb、rgba、#、img(本地路径fs://、widget://);默认:'#00FFFFFF'
velocity: 1 //(可选性)数字类型;自转速度,为0表示不自转,取值范围:0-10;默认:1
}
data:
[{
id:, //数字类型;item的id;默认:所在数组索引index
bg:'', //(可选项)数字类型;单条数据的背景配置,支持rgb、rgba、#、img(本地路径fs://、widget://);默认:'#00FFFFFF'
w:95, //(可选项)数字类型;item的宽;默认: 95
h:35 , //(可选项)数字类型;item的高;默认: 35
avatar: { //(可选项)JSON对象;头像配置;不传则不显示
path:'', //字符串类型;头像图片路径,支持本地和网络路径;默认:不显示
placeholder:'', //(可选项)字符串类型;当path为网络图片时,本参数表示占位图路径,要求本地路径(widget、fs);默认:无
marginL:, //(可选项)数字类型;头像距左边框距离;默认:0
marginT:, //(可选项)数字类型;头像距上边框距离;默认:0
w:35, //(可选项)数字类型;头像图片路大小的宽;默认:35
h:35 //(可选项)数字类型;头像图片路大小的高;默认:35
},
name: { //(可选项)JSON对象;名字配置,在item上左右剧中显示;不传则不显示
content:'', //(可选项)字符串类型;名字内容;默认:不显示
color:'', //(可选项)字符串类型;名字字体颜色,支持rgb、rgba、#;默认:#000000
size: 12 , //(可选项)数字类型;名字字体大小;默认:12;
marginL:, //(可选项)数字类型;名字距离左边框距离;默认:35
marginT: //(可选项)数字类型;名字距离上边框距离;默认:11
}
},...]
fixedOn:
fixed:
ret:
{
status:true, //布尔类型;是否打开成功,为false时错误信息详见err
id:'' //字符串类型;插件的 ID
}
err:
{
msg:'' //字符串类型;错误信息
}
var datas = new Array();
for (var i=0;i<50;i++) {
var item = {
bg:'',
w:60,
h:60
avatar: {
path:'widget://res/left.jpeg',
w:35,
h:35
},
name: {
content:'',
color:'#000000',
size: 14
}
}
datas.push(item);
}
var obj = api.require('sphereCloud');
obj.open({
rect:{
x:0,
y:0,
w:api.frameWidth,
h:api.frameWidth
},
styles: {
bg: '',
velocity:1
},
data:datas,
fixedOn: api.frameName,
fixed: true
}, function(ret) {
if(ret.status) {
api.alert({msg:'打开了插件'+ret.id});
} else {
api.alert({msg:'插件打开失败'});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
刷新整个数据源
update({params}, callback(ret))
id:
data:
[{
id:, //数字类型;item的id;默认:所在数组索引index
bg:'', //(可选项)数字类型;单条数据的背景配置,支持rgb、rgba、#、img(本地路径fs://、widget://);默认:'#00FFFFFF'
w:95, //(可选项)数字类型;item的宽;默认: 95
h:35 , //(可选项)数字类型;item的高;默认: 35
avatar: { //(可选项)JSON对象;头像配置;不传则不显示
path:'', //字符串类型;头像图片路径,支持本地和网络路径;默认:不显示
placeholder:'', //(可选项)字符串类型;当path为网络图片时,本参数表示占位图路径,要求本地路径(widget、fs);默认:无
marginL:, //(可选项)数字类型;头像距左边框距离;默认:0
marginT:, //(可选项)数字类型;头像距上边框距离;默认:0
w:35, //(可选项)数字类型;头像图片路大小的宽;默认:35
h:35 //(可选项)数字类型;头像图片路大小的高;默认:35
},
name: { //(可选项)JSON对象;名字配置,在item上左右剧中显示;不传则不显示
content:'', //(可选项)字符串类型;名字内容;默认:不显示
color:'', //(可选项)字符串类型;名字字体颜色,支持rgb、rgba、#;默认:#000000
size: 12 , //(可选项)数字类型;名字字体大小;默认:12;
marginL:, //(可选项)数字类型;名字距离左边框距离;默认:35
marginT: //(可选项)数字类型;名字距离上边框距离;默认:11
}
},...]
var datas = new Array();
for (var i=0;i<50;i++) {
var item = {
bg:'rgb(0,0,0,0)',
w:105,
h:35,
avatar: {
path:'http://n.sinaimg.cn/sinacn20120/460/w630h630/20190213/bda9-hswimzz0535274.jpg',
placeholder:'widget://res/chatBox_face1.png',
w:35,
h:35
},
interval: 5.0,
name: {
content:'第'+i+'老师',
color:'#000000',
size: 12,
marginT:10,
marginL:38
}
}
datas.push(item);
}
var obj = api.require('sphereCloud');
obj.update({
id:1,
data:datas
});
iOS系统,Android系统
可提供的1.0.0及更高版本
刷新指定item
updateItem({params}, callback(ret))
id:
item:
{
id:, //数字类型;item的id;
bg:'', //(可选项)数字类型;单条数据的背景配置,支持rgb、rgba、#、img(本地路径fs://、widget://);默认:'#00FFFFFF'
avatar: { //(可选项)JSON对象;头像配置;不传则不显示
path:'', //字符串类型;头像图片路径,支持本地和网络路径;默认:不显示
placeholder:'', //(可选项)字符串类型;当path为网络图片时,本参数表示占位图路径,要求本地路径(widget、fs);默认:无
marginL:, //(可选项)数字类型;头像距左边框距离;默认:0
marginT:, //(可选项)数字类型;头像距上边框距离;默认:0
w:35, //(可选项)数字类型;头像图片路大小的宽;默认:35
h:35 //(可选项)数字类型;头像图片路大小的高;默认:35
},
name: { //(可选项)JSON对象;名字配置,在item上左右剧中显示;不传则不显示
content:'', //(可选项)字符串类型;名字内容;默认:不显示
color:'', //(可选项)字符串类型;名字字体颜色,支持rgb、rgba、#;默认:#000000
size: 12 , //(可选项)数字类型;名字字体大小;默认:12;
marginL:, //(可选项)数字类型;名字距离左边框距离;默认:35
marginT: //(可选项)数字类型;名字距离上边框距离;默认:11
}
}
var obj = api.require('sphereCloud');
obj.updateItem({
id:1,
item:{
bg:'#7FFF00',
w:80,
h:40,
id:10,
avatar: {
path:'https://b-ssl.duitang.com/uploads/item/201607/02/20160702122710_iRUXT.thumb.700_0.jpeg',
w:40,
h:40
},
interval: 5.0,
name: {
content:'你是谁',
color:'#228B22',
size: 16,
marginT:11,
marginL:43
}
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
监听插件相关事件
addEventListener({params}, callback(ret))
id:
target:
ret:
{
status:, //布尔类型;是否正常返回,为false时错误信息见err
index:0, //数字类型;点击的 item 的索引(从 0 开始),同 open 接口内 data 顺序一致
id: //数字类型;控件ID
}
err:
{
msg:'' //字符串类型;错误信息
}
var sphereCloud = api.require('sphereCloud');
sphereCloud.addEventListener({
id:'1',
target: 'click'
}, function(ret) {
api.alert({msg:'点击了' +ret.id+ '的第' + ret.index + '个 item'});
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
关闭插件
close({params}, callback(ret))
id:
ret:
{
status:true, //布尔类型;是否成功
}
err:
{
msg: '' //字符串类型;错误信息
}
var sphereCloud = api.require('sphereCloud');
sphereCloud.close({
id: '123'
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
隐藏插件视图
hide({params}, callback(ret))
id:
ret:
{
status:true, //布尔类型;是否成功
}
err:
{
msg: '' //字符串类型;错误信息
}
var sphereCloud = api.require('sphereCloud');
sphereCloud.hide({
id:'123'
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
显示插件视图
show({params}, callback(ret))
id:
ret:
{
status:true, //布尔类型;是否成功
}
err:
{
msg: '' //字符串类型;错误信息
}
var sphereCloud = api.require('sphereCloud');
sphereCloud.show({
id:'123'
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本