2017-03-27 12 views
1

を設定し、私は、ActionScriptに新しい申し訳ありませんが、コンパイル処理中に多くのエラーを得た:Actionscript3は、特定のWebページにリダイレクトする前に時間遅延をしようとして時間遅延

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


} 

答えて

3

あなたのコードに問題のカップル:クラスは をインスタンス化されると、クラスの

  1. コンストラクタはすぐに呼ばれています。別のメソッドを作成して、 をコンストラクタ内から遅らせて呼び出す必要があります。

  2. setIntervalは、設定された間隔ごとに繰り返し発生します。 は、setTimeoutを使用する必要があります。

  3. クラスには、Sentenceのキャップ命名規則がある必要があります。ちょうどベストプラクティス。構文的に間違ったものはありません。
  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"); 
         } 
        } 
    } 
    

    希望:

だからあなたのコードは以下のようになるはずです。乾杯。

+0

ありがとうGurtej、それは完全に動作します:) – Mtaly

関連する問題