【问题标题】:Actionscript3 setting time delayActionscript3设置时间延迟
【发布时间】:2017-03-27 13:24:36
【问题描述】:

尝试在重定向到特定网页之前进行时间延迟,我在编译过程中遇到了很多错误,抱歉是 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);


}

【问题讨论】:

    标签: actionscript-3 flash


    【解决方案1】:

    您的代码有几个问题:

    1. 类的构造函数在类被调用后立即被调用 实例化。您应该创建一个单独的方法并使用 构造函数内部的延迟。

    2. setInterval 会在每个设置的间隔后重复触发。你 应该使用setTimeout

    3. 类应该有一个句子大写命名约定,所以测试而不是测试。只是一个最佳实践。语法上没有错。
    4. 构造函数不返回任何内容,因此我们不需要return 语句。
    5. 一旦你导入了一个类,你不需要写下类的全名来访问它的方法。
    6. 尽量避免基于 * 的导入语句。它确实倾向于导入更多的类,而不仅仅是所需的类。同样,这只是一种最佳做法。

    所以你的代码应该如下所示:

    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");
            }
        }
    }
    

    希望这会有所帮助。干杯。

    【讨论】:

      猜你喜欢
      • 2013-08-20
      • 2020-06-28
      • 2013-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多