Показать сообщение отдельно
Старый 20.10.2010, 16:34
Mulin вне форума Посмотреть профиль Отправить личное сообщение для Mulin Найти все сообщения от Mulin
  № 1  
Ответить с цитированием
Mulin
 
Аватар для Mulin

Регистрация: Aug 2010
Сообщений: 107
По умолчанию Загрузка, редактирование и сохранение XML

Вобщем сам код почти готов, но никак немогу присвоить текстовому полю содержание одного из узлов массива, и вообще теряюсь с проблемой замены этого самого узла.
Вот весь код
Код AS3:
var xml:XML=new XML();
var xmlList:XMLList=new XMLList();
var menuItem:MenuItem;
loadXml();
send_btn.addEventListener(MouseEvent.MOUSE_UP, sendData);
addEventListener(Event.ENTER_FRAME, loop);
function loop(e:Event):void
{
	if(nameInput_txt.text!=''&&textInput_txt.text!='')
	{
		send_btn.enabled=true;
	}else
	{
		if(send_btn.enabled)
			send_btn.enabled=false;
	}
}
function loadXml(e:MouseEvent=null):void
{
	var xmlRequest:URLRequest=new URLRequest('messages.xml');
	var loader:URLLoader=new URLLoader();
	loader.addEventListener(Event.COMPLETE, xmlLoaded);
	loader.load(xmlRequest);
}
function xmlLoaded(e:Event):void
{
	xml=XML(e.target.data);
	xmlList=xml.children();	
	updateText();
}
function updateText():void
{
	var i:uint=0;	
	for(i;i<xmlList.length();i++)
	{		
 menuItem = new MenuItem();
 menuItem.menuLabel.htmlText+=xmlList[i].name;
 menuItem.menuLabel2.htmlText+=xmlList[i].text;
 menuItem.x = 20;
 menuItem.y = 25 + i*170;
 //Сделаем, чтобы кнопка выглядела как кнопка (курсор в виде ручки)
 menuItem.buttonMode = true;
 menuItem.mouseChildren = false;
 //Добавим обработчики событий (используются для анимации кнопок)
 menuItem.addEventListener(MouseEvent.MOUSE_UP, Select);
 addChild (menuItem);
}
}
 
function Select(e:MouseEvent):void
{
	 trace(xmlList.text[this.i]);
 
}
 
function sendData(e:MouseEvent):void
{		
	var newName:String=nameInput_txt.text;
	var newText:String=textInput_txt.text;	
	nameInput_txt.text='';
	textInput_txt.text='';
	var newXml:XML=XML('<DATA><name>'+newName+'</name><text>'+newText+'</text></DATA>');
	trace(newXml);	
	var phpRequest:URLRequest=new URLRequest('messages.php');
	phpRequest.data=newXml;
	phpRequest.contentType='text/xml';
	phpRequest.method=URLRequestMethod.POST;
	var phpLoader:URLLoader=new URLLoader();
	phpLoader.addEventListener(Event.COMPLETE, xmlSended);
	phpLoader.load(phpRequest);
}
function xmlSended(e:Event):void
{
	loadXml();
}
Слушатель мыши запускает функцию Select, в функции прописан код
Код AS3:
trace(xmlList.text[this.i]);
, очевидно где-то закосяченый ибо не работает. Временно стоит trace, которому пытаюсь присвоить значение text одного из узлов массива xmlList, который в свою очередь (при удачном решении проблемы) буду присваивать текстовому полю menuLabel2. Ну и соответственно значение name, полю - menuLabel. Но код не пашет. Кривые руки. Еще, после редактирования содержимого, мне нужно будет перписать содержимое этого же узла. Но для меня это уж совсем высший пилотаж . Был бы очень признателен за помощь. Думаю сие многим бы пригодилось. По окончании собираюсь выложить исходники. Вот кстати и он сам (незаконченный).
Вложения
Тип файла: rar ДЛЯРЕДАКТОРАXML.RAR (186.3 Кб, 78 просмотров)