代码之家  ›  专栏  ›  技术社区  ›  George Profenza

如何用Flash中的按钮组件修复这个潜在的bug?

  •  0
  • George Profenza  · 技术社区  · 14 年前

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

    如果在类(文档类)中使用,则所选属性将反转 (当它没有被切换时,我得到了真实的结果,反之亦然)。

    另外,如果我在属性检查器中将toggle设置为false,然后在文档类中将toggle设置为true,它仍然会跟踪为false。如果我无效,我会切换到true,但是

    时间线代码如下所示:

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

    目前我使用的是flashcs3。我已经安装了flashplayer10。不知道组件的“构建”版本,但它们是2007年在flashplayer9.0.28.0下编写的

    1 回复  |  直到 14 年前
        1
  •  1
  •   Jean-François Fabre    5 年前

    那这个呢?

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