Как исправить эту потенциальную ошибку с помощью компонента Button во Flash? - PullRequest
0 голосов
/ 01 сентября 2010

Мне нужно использовать компонент Button на панели компонентов пользовательского интерфейса в Flash IDE со свойством toggle, установленным в 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.Не знаю версию «сборки» компонентов, но они были написаны в 2007 году под Flash Player 9.0.28.0

Кто-нибудь знает, как обойти это?

1 Ответ

1 голос
/ 01 сентября 2010

а что по этому поводу?

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;
}
...