【问题标题】:Add a form with 2 buttons into a hbox dynamically将带有 2 个按钮的表单动态添加到 hbox 中
【发布时间】:2010-02-04 15:47:14
【问题描述】:

假设我有这个功能

function Do(x:String){}

我怎样才能使每次调用这个函数时,它会在一个 hbox 中添加一个表单,该表单将有 2 个按钮是和否,并将 x 放入标签的文本中。

当用户要单击“是”时,我需要跟踪(x)并从 hbox 中删除表单

【问题讨论】:

    标签: apache-flex actionscript-3 adobe


    【解决方案1】:

    使用很多 addChild 方法。这应该可以帮助您开始:

    var newForm:Form = newForm();
    var yesBut:Button = new button();
    var noBut:Button = new button();
    var label:Label = new Label();
    
    newform.addChild(yesBut);
    newform.addChild(noBut);
    
    
    yesBut.AddEventListener(MOUSE_EVENT.Click,yesFunction);
    noBut.AddEventListener(MOUSE_EVENT.Click,noFunction);
    
    label.name = "myLabel";
    label.text = x;
    

    //创建你的 yes 和 no 函数

    private function yesFunction(event:MouseEvent):void{
        var x:String = event.currentTarget.parent.getChildByName("myLabel").text;
        trace(x);
        hbox.removeChild(event.currentTarget.parent);
    }
    

    这不是我的想法,所以其中一些可能需要稍微工作才能正常运行

    【讨论】:

    • 如何将 x 从 Do() 发送到 yesFunction() ?
    • 我编辑了我的回复,我错过了您将 X 作为参数传递。
    • 嗯,我明白了,我认为这会起作用,但是有没有更好的方法来获取 x 的值而不是从标签的值中获取它?
    • AFAIK,当您添加事件侦听器时,您不能将任何参数(除了自动事件参数)传递给处理函数。因此,您必须将 x 分配给某处的某个变量,以便您可以引用它。
    • 我可以继承表单添加一个自定义字段来存储 x 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    • 2015-07-29
    • 1970-01-01
    相关资源
    最近更新 更多