代码之家  ›  专栏  ›  技术社区  ›  Alan Plum

通过在AS2应用程序中单击外部关闭下拉列表?

  •  0
  • Alan Plum  · 技术社区  · 15 年前

    我正在维护一个ActionScript2应用程序,它使用CreateEmptyMovieClip创建下拉列表(列表项作为movieClip附加)。显然,我可以通过removemovieclip等直接关闭下拉列表。

    我的问题是:下拉列表不仅应该在单击某个项目或再次触发创建该项目的按钮时关闭,还应该在用户单击下拉列表之外的任何位置时关闭(如OnReleaseOutside,但单击也从外部开始)。

    到目前为止,我能看到的唯一解决方案是通过证明一个onrelease将根(或不可见层)变成一个按钮,但这很简单,因为它使根被flash(指针鼠标光标等)视为一个按钮。不想要!

    1 回复  |  直到 15 年前
        1
  •  1
  •   Assembler    15 年前

    我正要建议你做你不想做的事,因为 粗鄙的 设置鼠标监听器可能是一个选项…(我很快就打开了[mc]…)

    MouseListener = new Object()
    Mouse.addListener(MouseListener)
    MouseListener.onMouseDown=function(){
        trace ("heard:'DOWN'")
        // do your call to close the button here, perhaps?
    }
    
    another.onPress=function(){
        trace ("pressed!")
    }
    

    我还想不出更好的方法…

    上面的代码并不能解决很多问题,但它表明您可以倾听单击,也可以做一些与单击内容相关的事情,对于它们来说,这是两个独立的操作。