widget基础类, 需要继承后使用,不用手动实例化,框架内部自动实例化及相关处理。 【需要引入 mars3d-widget 插件库】
参数名称 | 类型 | 描述信息 |
---|---|---|
map |
Map |
地图对象 |
options |
BaseWidget.widgetOptions |
配置参数 |
使用示例:
//使用示例
class MyWidget extends mars3d.widget.BaseWidget {
//外部资源配置
get resources() {
return [
'js/test.js', //当前同目录下
'./lib/dom2img/dom-to-image.js', //主页面相同目录下
]
}
//弹窗配置
get view() {
return {
type: 'window',
url: 'view.html',
windowOptions: { width: 250 },
}
}
//初始化[仅执行1次]
create() {}
//每个窗口创建完成后调用
winCreateOK(opt, result) {
this.viewWindow = result
}
//打开激活
activate() {}
//关闭释放
disable() {
this.viewWindow = null
}
}
//注册到widget管理器中。
mars3d.widget.bindClass(MyWidget)
参考:
继承
成员(属性)
readonly config : BaseWidget.widgetOptions
plugins/mars3d-widget/BaseWidget.js 125
获取当前配置参数,别名,同options
设置事件的启用和禁用状态
是否激活状态
是否已创建
readonly map : Map
plugins/mars3d-widget/BaseWidget.js 111
获取当前地图
readonly options : BaseWidget.widgetOptions
plugins/mars3d-widget/BaseWidget.js 118
获取当前配置参数
获取当前widget的目录路径
该模块依赖的外部js、css资源文件,会在实例化之前加入的页面中。 默认引用是当前widget所在同path目录的资源, 相当于html主页面的资源 或 外部资源 请 以 “/” 或 “.” 或 “http” 开始的url
定义关联的view弹窗或页面配置信息,目前支持3种类型, (1)type:'window',iframe模式弹窗 ,参考_example示例, 独立的html子页面,比较自由,简单粗暴、无任何限制;可以每个页面用不同的UI和第三方插件不用考虑冲突问题;任何水平的开发人员均容易快速开发。 (2)type:'divwindow',div元素模式弹窗 参考_example_divwin示例,可直接互相访问,这种模式弊端是易引起模块间id命名冲突,在css和html中命名时需注意。 (3)type:'append',任意html元素 参考_example_append示例,任意div节点,比较自由。 为空时表示当前模块无关联的view页面, 其中url地址规则,参考resources说明
方法
激活模块【类内部实现方法】
返回值:
无
激活widget,同 mars3d.widget.activate方法
返回值:
无
addEventParent(obj) → BaseClass
core/BaseClass.js 297
添加抛出事件到父类,它将接收传播的事件
参数名称 | 类型 | 描述信息 |
---|---|---|
obj |
object |
父类对象 |
返回值:
当前对象本身,可以链式调用
激活模块之前 的钩子方法
返回值:
无
释放模块前
返回值:
无
模块初始化,仅首次初始化执行1次
参数名称 | 类型 | 描述信息 |
---|---|---|
endfun |
function |
可选
当create内存在异步时,可以异步后调用下endfun |
返回值:
无
销毁当前对象
参数名称 | 类型 | 默认值 | 描述信息 |
---|---|---|---|
noDel |
boolean |
false
|
可选
false:会自动delete释放所有属性,true:不delete绑定的变量 |
返回值:
无
- 继承自:
释放模块【类内部实现方法】
返回值:
无
释放插件,同 mars3d.widget.disable方法
返回值:
无
遍历所有view配置
参数名称 | 类型 | 描述信息 |
---|---|---|
callback |
function |
回调方法 |
index |
number |
可选
当有多个view时,可以指定单个操作的view的index |
返回值:
callback执行的返回结果
fire(type, data, propagate) → BaseClass
core/BaseClass.js 203
触发指定类型的事件。
参数名称 | 类型 | 描述信息 |
---|---|---|
type |
EventType | string |
事件类型 |
data |
object |
可选
传输的数据或对象,可在事件回调方法中event对象中获取进行使用 |
propagate |
BaseClass |
可选
将事件传播给父类 (用addEventParent设置) |
返回值:
当前对象本身,可以链式调用
- 继承自:
最大化窗口
返回值:
无
读取html页面的内容
参数名称 | 类型 | 描述信息 |
---|---|---|
url |
string |
html页面的url |
callback |
function |
读取完成后的回调方法 |
返回值:
无
hasEventParent(obj) → BaseClass
core/BaseClass.js 324
是否绑定了抛出事件到指定父类
参数名称 | 类型 | 描述信息 |
---|---|---|
obj |
object |
父类对象 |
返回值:
当前对象本身,可以链式调用
更新窗口大小或位置,改变了主页面尺寸后需要调用(内部已自动调用)。
返回值:
无
构造方法完成后的钩子方法,子类继承后按需使用
返回值:
无
是否有绑定指定的事件
参数名称 | 类型 | 描述信息 |
---|---|---|
type |
EventType | string |
事件类型 |
propagate |
BaseClass |
可选
是否判断指定的父类 (用addEventParent设置的) |
返回值:
是否存在
- 继承自:
最小化窗口
返回值:
无
off(types, fn, context) → BaseClass
core/BaseClass.js 95
解除绑定指定类型事件监听器
参数名称 | 类型 | 描述信息 |
---|---|---|
types |
EventType | string | Array.<EventType> |
可选
事件类型,未传值时解绑所有事件 |
fn |
function |
可选
绑定的监听器回调方法,未传值时解绑所有指定类型对应事件 |
context |
object |
可选
侦听器的上下文(this关键字将指向的对象)。 |
返回值:
当前对象本身,可以链式调用
- 继承自:
on(types, fn, context) → BaseClass
core/BaseClass.js 61
绑定指定类型事件监听器, 支持在监听中调用 event.stopPropagation(); 阻止事件冒泡
参数名称 | 类型 | 描述信息 |
---|---|---|
types |
EventType | string | Array.<EventType> | Array.<string> | object |
事件类型 |
fn |
function |
绑定的监听器回调方法 |
context |
object |
可选
侦听器的上下文(this关键字将指向的对象)。 |
返回值:
当前对象本身,可以链式调用
- 继承自:
once(types, fn, context) → BaseClass
core/BaseClass.js 274
绑定一次性执行的指定类型事件监听器 与on类似,监听器只会被触发一次,然后被删除。
参数名称 | 类型 | 描述信息 |
---|---|---|
types |
EventType | string | Array.<EventType> |
事件类型 |
fn |
function |
绑定的监听器回调方法 |
context |
object |
可选
侦听器的上下文(this关键字将指向的对象)。 |
返回值:
当前对象本身,可以链式调用
- 继承自:
removeEventParent(obj) → BaseClass
core/BaseClass.js 310
移除抛出事件到父类
参数名称 | 类型 | 描述信息 |
---|---|---|
obj |
object |
父类对象 |
返回值:
当前对象本身,可以链式调用
还原配置为初始状态
返回值:
无
还原窗口
返回值:
无
设置view弹窗的标题
参数名称 | 类型 | 描述信息 |
---|---|---|
title |
string |
css值 |
index |
number |
可选
当有多个view时,可以指定单个操作的view的index |
返回值:
无
设置view弹窗的css
参数名称 | 类型 | 描述信息 |
---|---|---|
style |
object |
css值 |
index |
number |
可选
当有多个view时,可以指定单个操作的view的index |
返回值:
无
设置view弹窗的显示和隐藏,基于修改css实现
参数名称 | 类型 | 描述信息 |
---|---|---|
show |
boolean |
是否显示 |
index |
number |
可选
当有多个view时,可以指定单个操作的view的index |
返回值:
无
每个view窗口或页面创建完成后调用的钩子方法
参数名称 | 类型 | 描述信息 |
---|---|---|
opt |
object |
对应的view配置 |
result |
object | string |
得到iframe页的窗口对象 或 view的html内容 |
返回值:
无
窗口最大化后触发后 的钩子方法
返回值:
无
窗口最小化后触发 的钩子方法
返回值:
无
窗口还原后触发 的钩子方法
返回值:
无
定义的类型
widget 配置参数
属性:
属性名称 | 类型 | 可选 | 默认值 | 描述信息 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name |
string | 必须,中文名称,用于标识和弹窗标题。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
uri |
string | 必须,JS文件路径,路径是相对于widgets目录的路径。如:"widgets/bookmark/widget.js" |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
id |
string |
<可选> |
定义该插件的唯一标识,方便后续判断。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
autoDisable |
boolean |
<可选> |
true | 激活其他新插件时,是否自动释放本插件 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
disableOther |
boolean |
<可选> |
true | 激活本插件时,是否释放其它已激活的插件 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
group |
string |
<可选> |
配置group后,同group下的widget互斥,打开任意一个会自动释放其他的 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
windowOptions |
object |
<可选> |
存在弹窗的插件的弹窗相关参数配置,更多参数请参考 layer弹窗API 包括: Properties 属性
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
openAtStart |
boolean |
<可选> |
false | 打开系统后是否自动启动本插件 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
style |
string |
<可选> |
添加到widget的view中的class样式名 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
css |
object |
<可选> |
添加到widget的css值 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
多个参数 |
* |
<可选> |
传入数据等,定义的任意参数在widget内部方法中都可以通过this.config获取到 |