Допустим, у меня есть сетка данных, и к ней прикреплен метод, позволяющий щелкнуть любой элемент в строке сетки. Теперь некоторые элементы в строке таблицы также являются кнопками. Каждый из них связан с определенным действием. Мы только хотим, чтобы одно из этих действий было выполнено. Вот пример кода:
<mx:DataGrid id="dataGrid" dataProvider="{data}" itemClick="selectRow()">
<mx:columns>
<mx:DataGridColumn dataField="name" />
<mx:DataGridColumn id="choose" headerText="Make a choice">
<mx:itemRenderer>
<mx:Component>
<mx:VBox>
<renderers:MyButton label="Choose Wisely" click="{outerDocument.choiceMade()}"/>
</mx:VBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
Мой вопрос:
Когда пользователь выбирает элемент кнопки в строке, выполняются оба метода (selectRow & choiceMade). Поскольку оба метода
выполнено, порядок обоих исправлен
каким-то образом? Всегда ли метод кнопки (choiceMade)
запускается перед методом строки (selectRow), это
наоборот, или они
оба выполняются асинхронно?
Вопрос, который я задаю, заключается в том, что в настоящее время у нас есть переменная-член для отслеживания того, какой выбор был сделан, и игнорирования содержимого другого метода (другая часть метода сбрасывает это значение). Теперь, если методы просто выполняются в другом порядке (или в одно и то же время), поведение будет непредсказуемым.
Я не очень хорошо разбираюсь в том, как все это работает, поэтому любой свет, который вы можете пролить на то, как Flex запускает эти методы, будет оценен. Является ли флаг переменной-члена способом сделать это (он так плохо пахнет)?