トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   FLASH目安箱【バグ報告・要望】
     setIntervalのバグ(既出でしょうか?)
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
星鉄矢
Åê¹ÆNo.11948
投稿日時: 2004-11-2 15:27
新米
居住地: TOKYO
投稿: 6
使用環境:
Vista
CS3 ver9.0
mtasc 1.13
mxmlc ver2.0
setIntervalのバグ(既出でしょうか?)
星です。
過去ログに似たような話はありますが、
setIntervalはグローバル関数らしいので、
呼び出した関数において、クラスプロパティが取得できないことは、当然なのでしょうか?
でも気持ち悪いです。

setInterval(this,"test",1000);
だとうまく行きます。

class Hoge{
    private var fuge:String="FUGE";

    Hoge(){
        setInterval(test,1000);
    }

    private function test():Void{
        trace("fuge = "+fuge);
    }
}


trace
---
fuge = undefined


星 鉄矢
hossy@javac.jp
http://www.javac.jp
野中文雄
Åê¹ÆNo.11951
投稿日時: 2004-11-2 16:03
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: setIntervalのバグ(仕様でしょう)
オンラインヘルプに明記されていますから、仕様でしょうね。
引用:
Flash MX 2004オンラインヘルプ[ActionScriptリファレンスガイド] > [setInterval()]より:
setInterval()をクラス内で使用する場合は、関数を呼び出すときにthisキーワードを使用する必要があります。キーワードを使用しないと、setInterval()関数 はクラスメンバーにアクセスできません。

引用:
星鉄矢さんは書きました:
setIntervalはグローバル関数らしいので、
呼び出した関数において、クラスプロパティが取得できないことは、当然なのでしょうか?

好みの問題は、あるとは思います。
引用:
でも気持ち悪いです。

setInterval()のコールバック関数に、this参照自体が渡りません。
class Hoge{
    // private var fuge:String="FUGE";

    Hoge(){
        setInterval(test,1000);
    }

    private function test():Void{
        trace(this);  // 出力: undefined
        // trace("fuge = "+fuge);
    }
}


----------------
 

星鉄矢
Åê¹ÆNo.11952
投稿日時: 2004-11-2 16:25
新米
居住地: TOKYO
投稿: 6
使用環境:
Vista
CS3 ver9.0
mtasc 1.13
mxmlc ver2.0
Re: setIntervalのバグ(仕様でしょう)
星です。
野中さんお返事ありがとうございます。

引用:
オンラインヘルプに明記されていますから、仕様でしょうね。
引用:
Flash MX 2004オンラインヘルプ[ActionScriptリファレンスガイド] > [setInterval()]より:
setInterval()をクラス内で使用する場合は、関数を呼び出すときにthisキーワードを使用する必要があります。キーワードを使用しないと、setInterval()関数 はクラスメンバーにアクセスできません。


ヘルプに書いてあるんですね、見落としていました。
失礼しました。m(_ _)m

デコンパイルしてみたのですが、
setInterval($reg1.test, 1000);
setInterval($reg1, "test", 1000);
の違いまでしかSWFファイルには書かれていないので、何が起こってこんなことになっているのかは、分かりませんが。。。
個人的には、参照なしsetInterval内部では、メソッドが展開されているか、と期待したのですが。(それなら納得いきます。(笑))


星 鉄矢
hossy@javac.jp
http://www.javac.jp
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops