openscales读码 - ClickHandler.as

openscales读码 - ClickHandler.as
openscales基于事件驱动,一般对地图的操作应用openscales已经提供了基本的访问框架和部件来支持不同的应用
ClickHandler处于event/mouse包内,我们遇到要处理点击地图捕捉Click,doubleClick,DropDrag时就会用到这个东东了
那很简单,我们只需要new ClickHandler(map,false) , 设置几个回调函数(click,doubleclick等等),最后调用这个handler.active =true即可
启用这个handler了。
在地图上用鼠标点击即可测试了
注意到ClickHandler里面用到了一个Timer,觉得奇怪的
 1  protected  function mouseUp(evt:MouseEvent): void  {
 2               if  (evt) {
 3                  
 4                   this .map.removeEventListener(MouseEvent.MOUSE_MOVE, this .mouseMove);
 5                  
 6                   if  ( this ._downPixel  !=   null ) {
 7                       //  It was not a drag, but was it a simple or a double click ?
 8                       //  Just wait for a timer duration to know and call the right function.
 9                       this ._upPixel  =   new  Pixel(evt.currentTarget.mouseX, evt.currentTarget.mouseY);
10                       this ._ctrlKey  =  evt.ctrlKey;
11                       this ._shiftKey  =  evt.shiftKey;
12                       this ._clickNum ++ ;
13                       this ._timer.start();
14                  }
15              }
想了一下就明白了期间的用意,看看注释,目的是为了推迟回调,防止回调处理繁忙阻塞交互界面


你可能感兴趣的:(openscales读码 - ClickHandler.as)