1

このコードの最初の行は、ReferenceError#1069をスローしています。ObjectButtonSkinにプロパティfocusMaskが見つからず、デフォルト値がありません。」「skin」変数はMovieClip型であり、実際のオブジェクトインスタンスはObjectButtonSkin型(MovieClipを拡張する)です。

if (skin["focusMask"] != null)
    if (skin["focusMask"] is DisplayObject)
        (skin["focusMask"] as DisplayObject).visible = false;

これは以前は問題ではなかったので、なぜこれが起こっているのかわかりません。ObjectButtonSkinクラスは動的または他のものとしてマークされていないので、おそらくそれが問題ですか?あるサイトでは、プロパティにアクセスするために「[]」の代わりに「()」を使用する必要があると提案されましたが、それは正しくないようです。

4

1 に答える 1

1

focusMask の存在を確認するには、次のようにします。

if (skin.hasOwnProperty("focusMask") && skin.focusMask!=null)...

または、よりクリーンにしたい場合は、focusMask を変数に抽出する必要があります。

var focusMask:DisplayObject = skin.getChildByName("focusMask");
if (focusMask)
    focusMask.visible = false;
于 2011-02-15T17:43:31.567 に答える