Apache flex flex定时器-出现在屏幕上

Apache flex flex定时器-出现在屏幕上,apache-flex,timer,Apache Flex,Timer,我在flex中有一个对象——我希望在单击按钮时显示该对象,在10秒后消失,或者如果该对象关闭,并且在按下同一按钮时重新出现 我试过这样的方法: public class my_obj { private var _myTimer: Timer; public function my_obj() { _myTimer = new Timer(10000); } private function init(): void

我在flex中有一个对象——我希望在单击按钮时显示该对象,在10秒后消失,或者如果该对象关闭,并且在按下同一按钮时重新出现

我试过这样的方法:

public class my_obj
{
  private var _myTimer: Timer;

     public function my_obj()
     {
           _myTimer = new Timer(10000);

     }
     private function init(): void
     {
           _myTimer.addEventListener(TimerEvent.TIMER, onTimeout);
            _myTimer.start();
     }

     private function onTimerTimeOut(event: TimerEvent): void
     {
        dispatchEvent(new Event(CLOSE_EVENT));
     }
}
我错过了什么?
谢谢

工作正常。以下是工作代码示例:

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                       xmlns:s="library://ns.adobe.com/flex/spark" 
                       xmlns:mx="library://ns.adobe.com/flex/mx">
    <s:layout>
        <s:VerticalLayout/>
    </s:layout>
    <s:Panel width="100%" height="400" creationComplete="my_obj()">
        <s:layout>
            <s:VerticalLayout/>
        </s:layout>
        <fx:Script>
            <![CDATA[
                private var _myTimer: Timer;

                public function my_obj():void
                {
                    _myTimer = new Timer(10000);

                }
                private function init(): void
                {
                    toggleBtn.visible = true;

                    _myTimer.addEventListener(TimerEvent.TIMER, onTimeout);
                    _myTimer.start();
                }

                private function onTimeout(event: TimerEvent): void
                {
                    toggleBtn.visible = false;
                    //dispatchEvent(new Event(CLOSE_EVENT));
                }

                private function hideIt(): void
                {
                    toggleBtn.visible = false;

                }
            ]]>
        </fx:Script>
        <s:Button label="Some Button" click="init()"/>
        <s:Button id="toggleBtn" label="Appeared on 'Some Button' click. Click to close it." click="hideIt()" visible="false"/>
    </s:Panel>
</s:WindowedApplication>


您有什么问题?为什么是“onTimeout”和“onTimeout”?你试过调试吗?给我们提供更多信息。谢谢@M.D.-唯一的问题是我从另一个对象调用这个对象(它总是存在-只出现和消失),我如何在每次“可见=真实”时重置时间?@qqqq只需添加_myTimer.reset();调用visible=true之后。这将使计时器复位为零。确保调用_myTimer.start()再次启动它。重置本身不会启动它。@qqqq,应该提到的是,这是一种相当可怕的“超时”方式。为什么不先使用显示效果,然后使用延迟10秒的隐藏效果呢?它更简单,代码也少得多。此外,计时器从不重置或停止,并不断调用超时函数。