如何检查鼠标是否在元素内部

时间:2013-01-17 16:46:00

标签: actionscript-3 flex flash-builder

当click事件是父元素时,检查是否在子元素内单击鼠标的代码是什么。仅当点击位于子元素内时,我才需要区分执行某些任务。 flex中会发生什么样的传播?我对此有点新鲜。

我有一个带视频显示和视频控制栏的视频播放器。我为占据全屏的视频播放器注册点击事件。单击控件栏应该切换(按照编程),但是在单击控制栏中的任何元素时,整个栏都会消失。

<!-- Player Container -->
<s:BorderContainer width="100%" height="100%"
           backgroundAlpha="0"
           borderVisible="false">

  <s:VideoPlayer id="vid_player"
          width="100%" height="100%"
          verticalCenter="0"
          horizontalCenter="0"
          skinClass="Skins.VideoPlayerSkin"
          maintainProjectionCenter="true"
          mouseDown="hideControls(event)"
          autoPlay="true" source="{current_video.getSource()}"/>            
</s:BorderContainer><!-- Player Container -->

public function hideControls(event:Event):void {
  hidePlaylist();
  toggleElem(header);
  toggleElem(sec_drop_container);
  toggleVideoPlayer();
}

public function toggleVideoPlayer() {
    var controls:Object = vid_player.videoDisplay.parent.getChildAt(1);
    if(controls.visible)
        controls.visible=false;
    else
        controls.visible  = true;
}

1 个答案:

答案 0 :(得分:2)

可能最简单的方法是:

private function mouseHandler(event:MouseEvent/*was e:MouseEvent*/):void {
    whateverObject.hitTestPoint(event.stageX, event.stageY, false); // use shape flag is 3rd argument
}