Actionscript 3 如何在actionscript/flex3中手动触发单击事件?

Actionscript 3 如何在actionscript/flex3中手动触发单击事件?,actionscript-3,apache-flex,actionscript,flex3,Actionscript 3,Apache Flex,Actionscript,Flex3,类似于javascript中的以下内容: <input id="target" type="button" onclick="..." /> <script> document.getElementById('target').click(); </script> document.getElementById('target')。单击(); 您可以使用dispatchEvent功能: 您应该在触发前创建click事件的新实例,这有什么意义?我建议在这

类似于javascript中的以下内容:

<input id="target" type="button" onclick="..." />

<script>
document.getElementById('target').click();
</script>

document.getElementById('target')。单击();

您可以使用dispatchEvent功能:


您应该在触发前创建click事件的新实例,这有什么意义?我建议在这种情况下使用自定义事件,这样您就不会将自己与
MouseEvent混淆。单击
根本不代表单击

package 
{
    import flash.display.DisplayObject;
    import flash.events.MouseEvent;

    public class ClickEventExample
    {
        public static function dispatchClickEventFrom(something:DisplayObject):void
        {
            something.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
        }
    }
}
如果像ivo建议的那样,您想在用户第一次翻滚您的剪辑时触发事件,这应该可以让您开始:

myClip.addEventListener( MouseEvent.ROLL_OVER, handleFirstMouseOver );

function handleFirstMouseOver( e:MouseEvent ) : void
{
    dispatchEvent( new Event('mySpecialEvent', true ) );
    myClip.removeEventListener( MouseEvent.ROLL_OVER, handleMouseOver );
}

如果(我不认为你是:)你试图通过假点击绕过弹出窗口拦截器或进入全屏模式或其他方式,那么请三思,因为玩家将识别出这些事件实际上不是由用户输入产生的。

谢谢你的评论,但很抱歉,我现在对该问题进行了一些修改,也就是说:当按钮的状态第一次切换为启用时,我如何手动调度click事件?1)为此,您必须编写一些代码来跟踪按钮第一次启用的时间。2) 当你说“启用”时,你的意思是当鼠标在上面移动时?如果是,则订阅mouseover事件并编写代码以检查第一次并触发事件如果3)您指的是button控件的enabled属性,则您必须在启用它的位置编写代码并触发事件