【问题标题】:as3 checkbox selected in array数组中选中的 as3 复选框
【发布时间】:2013-02-18 11:28:48
【问题描述】:

我在数组中有 20 个复选框,没有标记所有复选框。并且有3个动态文本。所有复选框启用为真。我希望,如果选择了任何复选框,则第一个文本字段选择的复选框名称写入。第二个和第三个选择同样的第二个和第三个文本文件写入。 end of 17 复选框以获得启用的 false

   import fl.controls.CheckBox;
   var arr:Array = [cb1,cb2,cb3,cb4,cb5,cb6,cb7,cb8,cb9,cb10,......]; //20 Checkbox

   // how do I find i = selected checkbox in array    

   i.addEventListener(MouseEvent.CLICK,myselect);
   function myselect(e:MouseEvent):void{
    trace(i.name);
       if (i.selected==true){
       yaz.text="Select"+" "+i.name;
}else {yaz.text="";}
}

【问题讨论】:

  • 我完全不明白这个问题。你能把它分解得更清楚吗?
  • 另外,即使在这种情况下这没什么大不了的,请尽量保持您的代码缩进和适当的间距。

标签: arrays actionscript-3 checkbox selected


【解决方案1】:

我认为你需要(文档类):

package  {

    import fl.controls.CheckBox;
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import fl.controls.Label;

    public class Test extends Sprite {

        public var cbBox:Sprite;
        public var tfBox:Sprite;

        public function Test() {
            init();
        }

        public function init()
        {
            cbBox = new Sprite();
            cbBox.x = 10;
            addChild(cbBox);

            tfBox = new Sprite();
            tfBox.x = 200;
            addChild(tfBox);

            for (var i:uint=0; i<20; i++)
            {
                var cb:CheckBox = new CheckBox();
                cb.addEventListener(MouseEvent.CLICK, onClickHandler);
                cb.label = (i + 1).toString();
                cb.y = i* 20;
                cbBox.addChild(cb);
            }
        }

        public function onClickHandler(event:MouseEvent):void
        {
            if (tfBox.numChildren < 3)
            {
                var label:Label = new Label();
                label.width = 200;
                label.height = 20;
                label.y = tfBox.numChildren * 20;
                label.text = CheckBox(event.target).label;
                tfBox.addChild(label);
            }

            if (tfBox.numChildren == 3)
            {
                for (var i:uint = 0; i< cbBox.numChildren; i++)
                {
                    var ch:CheckBox = cbBox.getChildAt(i) as CheckBox;
                    if (!ch.selected) ch.enabled = false;
                }
            }
        }
    }
}

【讨论】:

  • 太好了,谢谢。其实我觉得把选中的复选框的名字赋给一个变量。变量从小到大以 3 个单位排序。并再次激活选择任何选中的复选框已取消
猜你喜欢
  • 1970-01-01
  • 2011-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多