2013-01-17 51 views
0

当单击事件用于父元素时,检查鼠标是否在子元素内单击的代码是什么。只有当点击位于子元素内部时,我才需要区分才能执行某些任务。什么样的传播发生在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; 
} 
+0

,你可以给我们一些代码? – PlantTheIdea

回答

2

也许最简单的方法是:

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

它给出了此错误: 1119:通过静态类型为flash.events:MouseEvent的引用访问可能未定义的属性StageX。 – Abhishek

+0

StageX应该是小写的S? – ansiart

+0

我的坏,现在完美,非常感谢。 – Abhishek

相关问题