Actionscript3设置时间延迟

时间:2017-03-27 13:24:37

标签: actionscript-3 flash

在重定向到特定网页之前尝试延迟一段时间,我在编译过程中遇到了很多错误,对于actionscript来说不好意思:

package  
{
    import flash.display.*;
    import flash.net.*;
    import flash.system.*;
    import flash.utils.*;
    import flash.events.*;





    public class test extends flash.display.Sprite
    {


        public function test()
        {

            super();
            flash.net.navigateToURL(new flash.net.URLRequest("http://youpassed-theexam.com/congrats"), "_self");
            return;

        }


    }


 setInterval(test,5000);


}

1 个答案:

答案 0 :(得分:3)

您的代码有几个问题:

  1. 类的构造函数会在类完成后立即调用 实例化。您应该创建一个单独的方法并使用 从你的构造函数中延迟。

  2. setInterval会在每个设定的间隔后反复触发。您 应该使用setTimeout

  3. 类应具有Sentence cap命名约定,因此测试而不是测试。只是一个最好的做法。语法上没什么不对的。
  4. 构造函数不返回任何内容,因此我们不需要return语句。
  5. 导入类后,您无需编写类的全名来访问它的方法。
  6. 尽量避免使用基于*的import语句。它确实倾向于导入比所需类更多的类。再次,这只是一种最佳实践。
  7. 所以你的代码应该如下所示:

    package  
    {
        import flash.display.Sprite;
        import flash.net.URLRequest;
        import flash.net.navigateToURL;
        import flash.utils.setInterval;
        import flash.utils.setTimeout;
    
        public class Test extends flash.display.Sprite
        {
            public function Test()
            {
                super();
                setTimeout(gotoURL, 5000);
            }
    
            protected function gotoURL():void
            {
                navigateToURL(new URLRequest("http://youpassed-theexam.com/congrats"), "_self");
            }
        }
    }
    

    希望这会有所帮助。欢呼声。