views:

2059

answers:

3

I need a button in Flash/AS3 that toggles between on and off. So I was glad to see that the Button class has the toggle property that lets me have that behavior. I was less happy to see that what I get when I make something a "button" in the Flash file is an instance of SimpleButton class, which does not have that option.

Is there a way to either get a Button instance from the .fla, or get the SimpleButton to behave as a toggle?

A: 

I think this might help you alot: http://actionscriptexamples.com/2008/11/26/creating-toggle-buttons-in-flash-with-actionscript-30/

It is actionscript only. But it's the same if you drag the Button component to the stage and asign an instance name to it. That way to can access it from the as script.

monkee
I know that, but the one I get from the stage is a SimpleButton, which does not have the functionality I want. Thanks anyway though.
Sietse
+3  A: 

Here's how I coded my way around this:

private buttonState:Boolean;

private function buttonToggle(button:SimpleButton){
    var currDown:DisplayObject = button.downState;
    button.downState = button.upState;
    button.upState = currDown;
    buttonState = !buttonState;
}

private function clickEvent(e:MouseEvent){
    buttonToggle(e.target);
}

I didn't put the code in the clickEvent function, because this allows me to toggle the button from elsewhere in the code.

Sietse
A: 

You can drag a Button from the Components window. Is that what you are looking for?

David