BaseWidget

new mars3d.widget.BaseWidget(map, options)

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

获取当前配置参数,别名,同options

enabledEvent : boolean

设置事件的启用和禁用状态

继承自:

readonly isActivate : boolean

是否激活状态

readonly isCreate : boolean

是否已创建

readonly map : Map

获取当前地图

readonly options : BaseWidget.widgetOptions

获取当前配置参数

readonly path : string

获取当前widget的目录路径

abstract readonly resources : Array.<string>

该模块依赖的外部js、css资源文件,会在实例化之前加入的页面中。 默认引用是当前widget所在同path目录的资源, 相当于html主页面的资源 或 外部资源 请 以 “/” 或 “.” 或 “http” 开始的url

abstract readonly view : object|Array.<object>

定义关联的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说明

方法

abstract activate()void

激活模块【类内部实现方法】

返回值:

activateBase()void

激活widget,同 mars3d.widget.activate方法

返回值:

addEventParent(obj)BaseClass

添加抛出事件到父类,它将接收传播的事件

参数名称 类型 描述信息
obj object

父类对象

返回值:

当前对象本身,可以链式调用

继承自:

abstract beforeActivate()void

激活模块之前 的钩子方法

返回值:

abstract beforeDisable()void

释放模块前

返回值:

abstract create(endfun)void

模块初始化,仅首次初始化执行1次

参数名称 类型 描述信息
endfun function 可选

当create内存在异步时,可以异步后调用下endfun

返回值:

destroy(noDel)void

销毁当前对象

参数名称 类型 默认值 描述信息
noDel boolean false 可选

false:会自动delete释放所有属性,true:不delete绑定的变量

返回值:

继承自:

abstract disable()void

释放模块【类内部实现方法】

返回值:

disableBase()void

释放插件,同 mars3d.widget.disable方法

返回值:

eachView(callback, index)*

遍历所有view配置

参数名称 类型 描述信息
callback function

回调方法

index number 可选

当有多个view时,可以指定单个操作的view的index

返回值:

callback执行的返回结果

fire(type, data, propagate)BaseClass

触发指定类型的事件。

参数名称 类型 描述信息
type EventType | string

事件类型

data object 可选

传输的数据或对象,可在事件回调方法中event对象中获取进行使用

propagate BaseClass 可选

将事件传播给父类 (用addEventParent设置)

返回值:

当前对象本身,可以链式调用

继承自:

fullView()void

最大化窗口

返回值:

getHtml(url, callback)void

读取html页面的内容

参数名称 类型 描述信息
url string

html页面的url

callback function

读取完成后的回调方法

返回值:

hasEventParent(obj)BaseClass

是否绑定了抛出事件到指定父类

参数名称 类型 描述信息
obj object

父类对象

返回值:

当前对象本身,可以链式调用

继承自:

indexResize()void

更新窗口大小或位置,改变了主页面尺寸后需要调用(内部已自动调用)。

返回值:

abstract init()void

构造方法完成后的钩子方法,子类继承后按需使用

返回值:

listens(type, propagate)boolean

是否有绑定指定的事件

参数名称 类型 描述信息
type EventType | string

事件类型

propagate BaseClass 可选

是否判断指定的父类 (用addEventParent设置的)

返回值:

是否存在

继承自:

minView()void

最小化窗口

返回值:

off(types, fn, context)BaseClass

解除绑定指定类型事件监听器

参数名称 类型 描述信息
types EventType | string | Array.<EventType> 可选

事件类型,未传值时解绑所有事件

fn function 可选

绑定的监听器回调方法,未传值时解绑所有指定类型对应事件

context object 可选

侦听器的上下文(this关键字将指向的对象)。

返回值:

当前对象本身,可以链式调用

继承自:

on(types, fn, context)BaseClass

绑定指定类型事件监听器, 支持在监听中调用 event.stopPropagation(); 阻止事件冒泡

参数名称 类型 描述信息
types EventType | string | Array.<EventType> | Array.<string> | object

事件类型

fn function

绑定的监听器回调方法

context object 可选

侦听器的上下文(this关键字将指向的对象)。

返回值:

当前对象本身,可以链式调用

继承自:

once(types, fn, context)BaseClass

绑定一次性执行的指定类型事件监听器 与on类似,监听器只会被触发一次,然后被删除。

参数名称 类型 描述信息
types EventType | string | Array.<EventType>

事件类型

fn function

绑定的监听器回调方法

context object 可选

侦听器的上下文(this关键字将指向的对象)。

返回值:

当前对象本身,可以链式调用

继承自:

removeEventParent(obj)BaseClass

移除抛出事件到父类

参数名称 类型 描述信息
obj object

父类对象

返回值:

当前对象本身,可以链式调用

继承自:

resetConfig()void

还原配置为初始状态

返回值:

restoreView()void

还原窗口

返回值:

setTitle(title, index)void

设置view弹窗的标题

参数名称 类型 描述信息
title string

css值

index number 可选

当有多个view时,可以指定单个操作的view的index

返回值:

setViewCss(style, index)void

设置view弹窗的css

参数名称 类型 描述信息
style object

css值

index number 可选

当有多个view时,可以指定单个操作的view的index

返回值:

setViewShow(show, index)void

设置view弹窗的显示和隐藏,基于修改css实现

参数名称 类型 描述信息
show boolean

是否显示

index number 可选

当有多个view时,可以指定单个操作的view的index

返回值:

abstract winCreateOK(opt, result)void

每个view窗口或页面创建完成后调用的钩子方法

参数名称 类型 描述信息
opt object

对应的view配置

result object | string

得到iframe页的窗口对象 或 view的html内容

返回值:

abstract winFull()void

窗口最大化后触发后 的钩子方法

返回值:

abstract winMin()void

窗口最小化后触发 的钩子方法

返回值:

abstract winRestore()void

窗口还原后触发 的钩子方法

返回值:

定义的类型

mars3d.widget.BaseWidget.widgetOptions

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 属性
属性名称 类型 可选 默认值 描述信息
width number | string <可选>

窗口宽度,可以是 像素数字(像素值) 或者 字符串(屏幕宽度百分比),示例:200 或 "20%"

height number | string <可选>

窗口高度,可以是 像素数字(像素值) 或者 字符串(屏幕高度百分比),示例:600 或 "50%"

position string | object <可选>
'auto'

窗口所在位置坐标,配置字符串可选值:auto垂直水平居中,t顶部,b底部,r右边缘,l左边缘,lt左上角,lb左下角,rt右上角,rb右下角;也可以配置对象:

Properties 属性
属性名称 类型 可选 描述信息
top number | string <可选>

位置css的top值,可以是 像素数字(像素值) 或者 字符串(屏幕高度百分比),示例:10 或 "5%"

bottom number | string <可选>

位置css的top值,可以是 像素数字(像素值) 或者 字符串(屏幕高度百分比),示例:10 或 "5%"

left number | string <可选>

位置css的top值,可以是 像素数字(像素值) 或者 字符串(屏幕宽度百分比),示例:10 或 "5%"

right number | string <可选>

位置css的top值,可以是 像素数字(像素值) 或者 字符串(屏幕宽度百分比),示例:10 或 "5%"

minHeight number <可选>

限定的窗口最小高度(像素值),默认不限制

maxHeight number <可选>

限定的窗口最大高度(像素值),默认不限制

minWidth number <可选>

限定的窗口最小宽度(像素值),默认不限制

maxWidth number <可选>

限定的窗口最大宽度(像素值),默认不限制

maxmin boolean <可选>
true

是否可以在弹层右下角拖动来拉伸尺寸

shade number | Array <可选>
0

遮罩,默认为0不显示,可配置数字0.3透明度的黑色背景('#000'),其他颜色,可以shade: [0.8, '#393D49']

shadeClose boolean <可选>
false

当shade是存在的,点击弹层外区域后是否关闭弹窗。

closeBtn number <可选>
1

当为0时,不显示关闭按钮,配置1和2来展示两种风格的关闭按钮

noTitle number <可选>
false

是否不显示标题,为true是不显示标题

show boolean <可选>
true

激活后是否显示弹窗,false时激活后自动隐藏弹窗。

openAtStart boolean <可选>
false

打开系统后是否自动启动本插件

style string <可选>

添加到widget的view中的class样式名

css object <可选>

添加到widget的css值

多个参数 * <可选>

传入数据等,定义的任意参数在widget内部方法中都可以通过this.config获取到