如何使用Flash中的Button Component修复此潜在错误?

时间:2010-09-01 13:47:30

标签: flash actionscript-3 uicomponents flash-ide

我需要使用Flash IDE中UI组件面板中的Button组件,并将toggle属性设置为true。

如果我将它与时间轴脚本一起使用,那么效果很好。

如果我在一个类(文档类)中使用,则所选属性将被反转 (当它没有切换时我会成真,反之亦然)。

此外,如果我在Property Inspector中将切换设置为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 个答案:

答案 0 :(得分: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;
}