Pergunta

Preciso usar o componente do botão do painel de componentes da interface do usuário no IDE do flash, com a propriedade Toggle definida como true.

Se eu o usar com um script da linha do tempo, ele funciona muito bem.

Se eu uso em uma classe (uma classe de documentos), a propriedade selecionada será revertida (eu sou verdadeiro quando não for alterado e vice -versa).

Além disso, se eu definir como alternar como false no inspetor da propriedade, defina alternar como true na classe Document, ele ainda se rastreia como falso. Se eu invalidar, alternei traços verdadeiros, mas a propriedade selecionada sempre traça falsa.

O código da linha do tempo é tão simples assim:

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

A classe de documento também é simples:

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

    }
}

Atualmente estou usando o flash cs3. Eu tenho o Flash Player 10 instalado. Não conheço a versão 'Build' componentes, mas eles foram escritos em 2007 no Flash Player 9.0.28.0

Alguém sabe como resolver isso ?

Foi útil?

Solução

E quanto a isso?

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;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top