В Flex, как я снимаю все переключатели в группе?

Как уже говорили другие, это новый синтаксис для создания функций.

Однако, этот тип функций отличается от обычных:

  • Они связывают значение this. Как объяснено в в спецификации ,

    Функция ArrowFunction не определяет локальные привязки для arguments, super, this или new.target. Любая ссылка на arguments, super, this или new.target в ArrowFunction должна разрешать привязку в лексической среде. Обычно это будет функциональная среда непосредственно включающей функции.

    Даже если ArrowFunction может содержать ссылки на super, функциональный объект, созданный на шаге 4, не превращается в метод при выполнении MakeMethod . ArrowFunction , которая ссылается на super, всегда содержится в не ArrowFunction , а необходимое состояние для реализации super доступно через область , которая захвачена функциональным объектом функции ArrowFunction .

  • Они не являются конструкторами.

    Это означает, что они не имеют [[Construct]] внутреннего метода и, следовательно, не могут быть созданы, например,

    var f = a => a;
    f(123);  // 123
    new f(); // TypeError: f is not a constructor
    

8
задан Daniel Brockman 6 July 2009 в 16:01
поделиться

7 ответов

Вам необходимо сгруппировать все переключатели в RadioButtonGroup , а затем установить для выбора группы значение null:

<mx:RadioButtonGroup id="myGroup" />

<mx:RadioButton label="One" groupName="myGroup" />
<mx:RadioButton label="Two" groupName="myGroup" />
<mx:RadioButton label="Three" groupName="myGroup" />

<mx:Button label="Clear" click="myGroup.selection = null;" />
12
ответ дан 5 December 2019 в 13:01
поделиться

You could try setting all of your radio buttons to a RadioButtonGroup then set RadioButtonGroup.selection to null

See http://livedocs.adobe.com/flex/3/langref/mx/controls/RadioButtonGroup.html#includeExamplesSummary for reference on how to implement the RadioButtonGroup control.

1
ответ дан 5 December 2019 в 13:01
поделиться

The only way to solve this that I know of is to add a hidden dummy radio button that you select in order to deselect all the others.

0
ответ дан 5 December 2019 в 13:01
поделиться

Does this not work?

      function clearRadioSelection(theGroup) {
        theGroup.selection.selected = false;
        theGroup.selectedRadio = undefined;
        theGroup.dispatchEvent({type:"change"});
  }

theGroup is the radio button group (not the individual radio buttons) from: http://kb2.adobe.com/cps/000/c4e4be2f.html

0
ответ дан 5 December 2019 в 13:01
поделиться

I believe you are using the RadiobuttonGroup and binding all the radiobutton controls for the perticular group.

So, easy way:

private function radioGroupReset():void

{

radioGroup1.selection = null;

}

This should work!

0
ответ дан 5 December 2019 в 13:01
поделиться

Очевидно, что предыдущие ответы должны максимально аккуратно направить вас туда, куда вы собираетесь, но если вы бьетесь головой об стену, просто соберите все свои переключатели в компонент, а затем перерисуйте весь компонент, когда вам нужно его очистить. Проблема решена.

В любом случае формы в лучшем случае туповаты. Не нужно усложнять жизнь.

0
ответ дан 5 December 2019 в 13:01
поделиться

Просто установите для свойства selection RadioButtonGroup значение null, и он перейдет в исходное состояние. .

например, если

               <mx:RadioButtonGroup id="answers" />

, то запись следующей строки в ActionScript

                answers.selection = null;

приведет к сбросу группы без выбранной радиокнопки. Надеюсь, это поможет тебе. Я взял идею из следующей ссылки. Удачи.

http://blog.flexexamples.com/2008/01/06/clearing-a-selected-radiobutton-control-in-flex/

0
ответ дан 5 December 2019 в 13:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: