0

Flash IDE の UI コンポーネント パネルから Button コンポーネントを使用し、toggle プロパティを true に設定する必要があります。

タイムライン スクリプトで使用すると、うまく機能します。

クラス(ドキュメントクラス)内で使用すると、選択したプロパティが逆になります(トグルされていない場合はtrueになり、その逆も同様です)。

また、プロパティ インスペクターでトグルを false に設定し、ドキュメント クラスでトグルを true に設定しても、依然として false としてトレースされます。無効にすると、トレースを true に切り替えますが、選択したプロパティは常に false をトレースします。

タイムライン コードは次のように単純です。

bold_b.addEventListener(MouseEvent.CLICK, onClick);
function onClick(event:MouseEvent):void {
    trace(event.currentTarget.selected);
}

ドキュメント クラスも単純です。

package
{
    import flash.display.MovieClip;
    import flash.events.MouseEvent;

    public class ButtonTester extends MovieClip
    {
        public function ButtonTester()
        {
            //in timeline works fine, in class it's the other way around
            bold_b.addEventListener(MouseEvent.CLICK, onClick);
            bold_b.toggle = true;
            bold_b.invalidate('toggle',true);
            bold_b.drawNow();
            stage.invalidate();
            trace('bold_b.toggle: ' + bold_b.toggle);
            function onClick(event:MouseEvent):void {
                trace(event.currentTarget.selected);
            }
        }

    }
}

現在Flash CS3を使用しています。Flash Player 10 をインストールしました。コンポーネントの「ビルド」バージョンはわかりませんが、Flash Player 9.0.28.0 で 2007 年に作成されたものです。

これを回避する方法を知っている人はいますか?

4

1 に答える 1

1

そしてこれはどうですか?

import fl.controls.Button;

var myButton:Button = new Button();
myButton.toggle = true;    
myButton.selected = true;
myButton.label = "selected:" + myButton.selected;
myButton.width = 120;
myButton.move(10, 10);
myButton.addEventListener(Event.CHANGE, changeHandler);
addChild(myButton);

function changeHandler(event:Event):void {
    var myBtn:Button = event.currentTarget as Button;
    myBtn.label = "selected:" + myBtn.selected;
}
于 2010-09-01T18:30:14.140 に答える