0

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

如果我将它与时间线脚本一起使用,效果会很好。

如果我在一个类(一个文档类)中使用,则选择的属性是相反的(当它没有被切换时我得到 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 下编写的

有谁知道如何解决这个问题?

4

1 回答 1

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;
}
于 2010-09-01T18:30:14.140 回答