![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Aug 2010
Сообщений: 107
|
Вобщем нужно открывать и сохранять XML файл на локалке. Я нуб, потому пока пытаюсь сохранить вводимые мной данные. Вот код
var xml:String= XML("<message><name>" + Input_text.text + "</name></message>") Save.addEventListener(MouseEvent.CLICK,stageClickHandler); var fr:FileReference = new FileReference(); function stageClickHandler(e:MouseEvent) { fr.save(xml,'test.xml'); } Проектик прилагаю |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Не пойму что Вас смущает. Input_text.text равно "Введите текст"? Так в чем проблема? Какой xml сделали, тот и сохраняет.
Цитата:
Добавлено через 6 минут Я так понял, замышлялось что-то типа
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 107
|
Ну да, данные я пока не ввожу, я их только создаю (пока с этим разобраться бы), вот и вопрос состоит в том что я сделал не так и что исправить что бы данные которые ввожу в текстовом поле, сохранялись в XML. Если вы вкурсе то было бы здорово если бы вы мне обьяснили, а не спрашивали в чем проблема. Знал бы в чем, не задовал бы вопрос. Я уже двое суток копаю инет, понимаю, тому кто с AS на ты это как два пальца, но я на его смотрю в третий раз только.
Добавлено через 3 минуты Дружище, спасибо, чесно слово выручил. буду разбираться в коде |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ошибка в том что созданная переменная xml сама не будет менять свое значение при изменении свойства text текстового поля. Вы присвоили ей значение в первой строке кода, это значение у нее и останется. (говоря по-другому - строка это простой тип данных). Поэтому Вам надо обновлять значение переменной xml перед сохранением, когда в поле уже введен другой текст - Вы составляете строку заново, теперь с новым текстом, и сохраняете ее.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 107
|
Еще вопрос. Суть в том, что мне нужно открывать XML файл редактировать определенные его поля и сохранять. Вобщем то хотнелось бы избежать функции , в идеале было бы через Load XML (или как там) и соответствующие поля файла открывались в соответствующих текстовых полях флешки для редактирования. ну и после радактирования - сохранить с изменениями. Причем не просто поменять текст, а добавить новый элемент. Например было есть Name и добавить (удалить) третий. Возможно ли это? Если да то скажите в каком направлении копать?
Добавлено через 1 минуту Цитата:
![]() |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ну Вам в любом случае придется перекопать весь XML )))
Соответствующие методы есть (XML::appendChild например), конечно же Вы можете создать редактор, добавлять новые поля, удалять существующие. Всё это есть. Копайте все что относится к XML, лучше сразу синтаксис E4X.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Oct 2007
Сообщений: 27
|
Простите, сейчас копался в этом коде
var xml:String; Save.addEventListener(MouseEvent.CLICK,stageClickHandler); var fr:FileReference = new FileReference(); function stageClickHandler(e:MouseEvent) { xml = "<message><name>" + Input_text.text + "</name></message>"; fr.save(xml, 'test.xml'); } как добавить сохранение второго текстового поля? 2. что нужно прописать в коде...чтобы при включении флешки на локальном компе...сохраненные данные загружались из xml во флеш приложение? |
|
|||||
|
Загрузка, изменение, сохранение XML (сохранять в директорию флешки)
private var _url:String = "test.xml"; private var _xml:XML; private function testXMLLoader():void { var url_loader:URLLoader = new URLLoader(); url_loader.addEventListener(Event.COMPLETE, completeLoadHandler); url_loader.addEventListener(IOErrorEvent.IO_ERROR, errorLoadHandler); url_loader.dataFormat = URLLoaderDataFormat.TEXT; url_loader.load(new URLRequest(_url)); } private function errorLoadHandler(e:IOErrorEvent):void { var url_loader:URLLoader = e.target as URLLoader; url_loader.removeEventListener(Event.COMPLETE, completeLoadHandler); url_loader.removeEventListener(IOErrorEvent.IO_ERROR, errorLoadHandler); // _xml = <messages/>; testSaveMessage(); } private function completeLoadHandler(e:Event):void { var url_loader:URLLoader = e.target as URLLoader; url_loader.removeEventListener(Event.COMPLETE, completeLoadHandler); url_loader.removeEventListener(IOErrorEvent.IO_ERROR, errorLoadHandler); // _xml = new XML(url_loader.data); testSaveMessage(); } private function testSaveMessage():void { var message:XML = <message />; message.name = "Google"; message.text = "Dont be evil"; // ошибка форума, штрих внутри строки не воспринимается как часть строки _xml.appendChild(message); // var fr:FileReference = new FileReference(); fr.save(_xml, _url); } Последний раз редактировалось f.g.programmer; 18.09.2010 в 11:18. |
|
|||||
|
Регистрация: Oct 2007
Сообщений: 27
|
Добрый день, я очень благодарен Вам за помощь! ...но я еще новичок и не могу разобраться в этом коде, не вижу что за что отвечает...где переменные и каким образом (нажатием на кнопку?) это сохраняется....(
я просто хотел изменить немного изначальный код, чтобы добавить второе текстовое поле, которое бы сохранялось. Написал вот такую функцию...но больше одного текстового поля она не хочет сохранять, можете подсказать в чем ошибка? var xml:String; Save.addEventListener(MouseEvent.CLICK,stageClickHandler); var fr:FileReference = new FileReference(); function stageClickHandler(e:MouseEvent) { xml = "<message><name>" + Input_text.text + "</name></message>", "<message2><name2>" + Input_text2.text + "</name2></message2>; fr.save(xml, 'test.xml'); } |
|
|||||
|
Ошибка в том, что в твоём коде xml не имеет корневого тега
var xml:XML = <messages/>; stage.addEventListener(MouseEvent.CLICK, stageClickHandler); var fr:FileReference = new FileReference(); function stageClickHandler(e:MouseEvent):void { var message:XML; message = <message/>; message.name = Input_text.text; xml.appendChild(message); message = <message/>; message.name = Input_text2.text; xml.appendChild(message); fr.save(xml, 'test.xml'); } |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:00. |
|
|
« Предыдущая тема | Следующая тема » |
|
|