Question

Je dois utiliser le composant Button du panneau Composants dans l'interface utilisateur Flash IDE, avec l'ensemble de la propriété toggle sur true.

Si je l'utilise avec un script de scénario, il fonctionne très bien.

Si j'utilise dans une classe (une classe de document), la propriété sélectionnée est inversée (Je reçois vrai quand il est pas basculée et vice-versa).

Aussi, si je mets bascule false dans l'Inspecteur des propriétés, puis définissez bascule sur true dans la classe de document, il trace toujours comme faux. Si j'invalident, je bascule des traces vrai, mais la propriété sélectionnée trace toujours fausse.

Code Timeline est aussi simple que cela:

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

classe de documents est simple ainsi:

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

    }
}

Actuellement, je suis avec Flash CS3. J'ai installé Flash Player 10. Je ne sais pas la version build 'composants, mais ils ont été écrits en 2007 sous Flash Player 9.0.28.0

Quelqu'un sait comment contourner ce problème?

Était-ce utile?

La solution

Qu'en est-ce?

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;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top