<mx:DataGrid x="10" y="10" width="180" height="302" id="dgActions" dataProvider="{actionCollection}">
<mx:columns>
<mx:DataGridColumn headerText="Action" dataField="name"/>
<mx:DataGridColumn headerText="" dataField="setting" width="30" rendererIsEditor="true">
<mx:itemRenderer >
<mx:Component>
<mx:Box width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
<mx:CheckBox selected="{data.setting}" click="setActionSetting()">
<mx:Script>
<![CDATA[
private function setActionSetting(){
data.setting = String(this.selected);
}
]]>
</mx:Script>
</mx:CheckBox>
</mx:Box>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
По какой-то причине я получаю сообщение об ошибке в строке data.setting = String (this.selected), которая говорит: «Доступ к возможно неопределенному свойству, выбранному через ссылку со статическим типом».
[править] Решение вышеупомянутой проблемы (хотя и не всей путаницы) состояло в том, что как только вы находитесь внутри тега <mx:Component>
, вы попадаете в область действия указанного компонента. Чтобы получить доступ к сценарию и узлам вне этого компонента, вы должны использовать объект outerDocument .
[конец редактирования]
Я не уверен, что он ожидает, я предполагаю, что он передаст значение true / false выбранного (ness) флажка в метод, но, похоже, не понимает, что это "это" в этом контексте.
Я что-то делаю явно неправильно? Все, что я хочу, это чтобы источник данных отражал изменение статуса, который он первоначально вводил в флажок.
EDIT:
Я только заметил, что когда я добавляю trace ('foo') к функции, она никогда ничего не записывает обратно в консоль. Предотвращает ли собственное поведение флажка (и захват событий) его появление в моей функции?
Кроме того, когда я добавляю ссылки на объекты снаружи в остальной части документа, он говорит мне, что не распознает их. Я полностью сбит с толку относительно того, как Flex справляется со своими задачами ... любые дополнительные указания или ссылки на ссылки были бы действительно полезными.