0

このコードで参照するボタンにあるムービークリップにアクセスしようとしていました:

var buttonObject = this[weaponsPurchased[i]];

次に、「mouseEnabled」をfalseに設定しています(その部分は機能します)

buttonObject.mouseEnabled = false;

そして、このボタン内のムービークリップを非表示に設定しようとしています (そして、それは機能しません)。

buttonObject["square"].visible = false;

次のエラーが表示されます。

ReferenceError: エラー #1069: プロパティの正方形が flash.display.SimpleButton で見つかりません。デフォルト値はありません。で (...)

インターネットでヘルプが見つからなかったので、助けてください。私は何を間違っていますか?

4

2 に答える 2

0

少し前にこの問題がありました。私がしたことは、ボタンの各状態内で DisplayObject を検索することでした。ここに役立つコードをいくつかドロップします。ボタンの 4 つのフレームすべてにオブジェクトがある場合、オブジェクトもすべての状態にあることに注意してください。

    private var Obj1:DisplayObject, Obj2:DisplayObject, 
    Obj3:DisplayObject, Obj2:DisplayObject;

    private function searchInChildren(spr:DisplayObject, name:String):void
    {
        for (var i:int = 0; i < spr.numChildren; i++) 
        {
            if(spr.getChildAt(i).name == name)
            {
                return spr.getChildAt(i);
            }           
        }
        return null;
    }

    public function searchControllers(_ref:SimpleButton, name:String):void
    {   
        try{
            Obj1 = searchInChildren(_ref.upState, name);
            Obj2 = searchInChildren(_ref.overState, name);
            Obj3 = searchInChildren(_ref.downState, name);
            Obj4 = searchInChildren(_ref.hitTestState, name);
        } catch (e:Error) {
            trace("error: "+e+", when trying to search for controllers");
        }
    }
于 2013-02-01T23:44:07.283 に答える