Показать сообщение отдельно
Старый 05.02.2009, 15:28
r_r_f_r вне форума Посмотреть профиль Отправить личное сообщение для r_r_f_r Найти все сообщения от r_r_f_r
  № 4  
Ответить с цитированием
r_r_f_r

Регистрация: Sep 2008
Адрес: Москва
Сообщений: 224
Вообще, с хмл могут возникнуть сложности поскольку большинство методов по работе с хмл создают новый XML или XmlList, т.е. изменение его не повлечёт изменение начального, сразу не могу понять что и как должно быть, и это собственно не самое благодарное занятие

Код AS3:
selected="{data.online}"
это для задания начальных значей в общем-то, т.е. в данном примере это не обязательно, но если какой-то online будет на старте true, то это задание всё исправит.

Код AS1/AS2:
click="data.online=!data.online"
При клике мы изменяем содержимое, само чекБокс поле забиндино на это содержимое см. выше

Цитата:
И зачем тут добавили поле которого нет в изначальной структуре данных? dataField="online"
Как это его нет?
Если я правильно понял вопрос, то этот столбец добавлен просто для показаетльных выступлений.

Цитата:
Обязательно ли добавлять элемент в мой XML
Если хочешь всё таки работать с XML то предлагая погуглить чуть, во всяком случае я бы не работал с ним.

Добавлено через 14 минут
Или собственно вот так:

Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init();" viewSourceURL="srcview/index.html">
 
    <mx:Script>
        <![CDATA[
        	import mx.controls.CheckBox;
 
            [Bindable]
            private var _xml:XMLList = new XMLList('<msg><id>1</id><date>10.11.2009</date><subject>I lost my Password</subject><message>Hi there. I lost my pass dude. Need help</message></msg><msg><id>2</id><date>11.11.2009</date><subject>I dit that</subject><message>Admin, call me pls.</message></msg>');
            private var _arr:Array;
 
            private function init():void
            {
            	_arr = new Array(_xml.length);
            	gridMsg.addEventListener('CheckBoxChanged',change);
            }
 
            private function change(e:Event):void
            {
            	_arr[(e.target as CheckBox).data.id] = (e.target as CheckBox).selected;
            	trace (_arr);
            }
        ]]>
    </mx:Script>
    <mx:DataGrid id="gridMsg" dataProvider="{_xml}">
	<mx:columns>
		<mx:DataGridColumn>
			<mx:itemRenderer>
				<mx:Component>
					<mx:CheckBox click="onClick(event)">
						<mx:Script>
							<![CDATA[
								private function onClick(e:MouseEvent):void
								{
									var ev:Event = new Event('CheckBoxChanged',true,false);
									(this as EventDispatcher).dispatchEvent(ev);
								}
							]]>
						</mx:Script>
					</mx:CheckBox>
				</mx:Component>
			</mx:itemRenderer>
		</mx:DataGridColumn>
            <mx:DataGridColumn dataField="date" headerText="Date"/>
            <mx:DataGridColumn dataField="subject" headerText="Subject"/>						
       </mx:columns>
	</mx:DataGrid>
</mx:Application>


Последний раз редактировалось r_r_f_r; 05.02.2009 в 16:04.