| 
 在地图API中,这些细节都被封装成为抽象的控件,对于开发者来说只要new一个这样的控件,同时指定一种外观类型 
(BMAP_STD_MAP_CONTROL_ZOOM_ONLY指仅包含放大和缩小按钮),再add到地图当中就好了。 
可以看出这样的接口使用起来简单,接口数量少,也容易理解。 
BMap.StandardMapControl的样式是预先定义好的,最多支持开发者选择几种不同的展现形式,如果开发者希望自定义按钮的样式该如何做? 
这时可以选用抽象层次较低的API,请看下面示例: 
 示例二 
// 定义一个控件类 var ZoomControl = function(){ // 默认停靠位置和偏移量  this.defaultAnchor = BMAP_ANCHOR_TOP_LEFT;   this.defaultOffset = [10, 10]; }; ZoomControl.prototype = new BMap.Control(); ZoomControl.prototype.initialize = function(map){ // 容器元素   var container = document.createElement("div");   var divZoomIn = document.createElement("div");   divZoomIn.appendChild(document.createTextNode("放大1级"));   var divZoomOut = document.createElement("div");   divZoomOut.appendChild(document.createTextNode("缩小1级"));   container.appendChild(divZoomIn);   container.appendChild(divZoomOut); // 设置样式    container.style.fontSize = "12px";   divZoomIn.style.cursor = "pointer";   divZoomIn.style.border = "1px solid gray";   divZoomIn.style.backgroundColor = "white";   divZoomOut.style.cursor = "pointer";   divZoomOut.style.border = "1px solid gray";   divZoomOut.style.backgroundColor = "white";   // 绑定事件   divZoomIn.onclick = function(e){     map.zoomIn();   }   divZoomOut.onclick = function(e){     map.zoomOut();   }   // 添加DOM元素到地图中   map.getContainer().appendChild(container);   // 将DOM元素返回   return container; } // 创建控件 var myZoomCtrl = new ZoomControl(); // 添加到地图当中 map.addControl(myZoomCtrl); 
在上面这个代码片段中,开发者使用了抽象层次较低的DOM API来实现元素创建、样式定义和事件绑定,同时还需要了解JavaScript的 
prototype继承机制以及地图API约定的继承控件 BMap.Control的方法(比如将new BMap.Control()赋值给prototype对象,initialize接口需 
要开发者自行实现等等)。 
出处:百度泛用户体验
 
责任编辑:bluehearts 
上一页 认知维度与API的可用性评估 [1] 下一页 认知维度与API的可用性评估 [3] 
◎进入论坛网页制作、WEB标准化版块参加讨论,我还想发表评论。
	       |