Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > Flash Приложения: AIR, Zinc и тд.

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.02.2009, 03:19
starserfer вне форума Посмотреть профиль Отправить личное сообщение для starserfer Найти все сообщения от starserfer
  № 1  
Ответить с цитированием
starserfer

Регистрация: May 2008
Сообщений: 41
По умолчанию Динамическое изменение атрибутов XML

Существует ли возможность динамического изменения содержимого атрибутов XML? Возьмем, к примеру, слайд-шоу. Выводимые картинки имеют подписи, которые прописаны в соответствующих атрибутах xml. Есть намерение реализовать возможность изменения этих подписей через input textfield, в случае, если у зрителя возникнет такое желание. Типа myXML.firstChild.firstChild.attributes["старая подпись"]=текущее содержимое input textfield. Но реально ли это? В мануале массив XML.attributes определен как
Цитата:
Совокупность (чтение - запись);
что как будто бы говорит о том, что данное свойство может быть перезаписано. Однако, может ли?

Старый 01.02.2009, 03:37
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 2  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Вы грузите хмл с атрибутами извне, верно?
Сам флэш не сможет сохранить измененный хмл на диск пользователя, хотя мгновенно, пока приложение запущено, надпись действительно может поменяться на новую именно как вы хотите. Но после рестарта будет загружен прежний хмл, и опять пользователь увидит прежние надписи, что не есть гуд.
Короче, вам надо найти способ сохранять из флэша измененный хмл на диск. В этом могут помочь либо оболочки, либо серверсайд.

Старый 01.02.2009, 04:33
starserfer вне форума Посмотреть профиль Отправить личное сообщение для starserfer Найти все сообщения от starserfer
  № 3  
Ответить с цитированием
starserfer

Регистрация: May 2008
Сообщений: 41
Все именно так и происходит: надпись меняется, но после перезапуска пропадает, в файле xml, естественно, ничего не меняется. А Zinc может помочь в этом случае?

Старый 01.02.2009, 10:22
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 4  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
А зачем тут Цинк?
Если Вы хотите изменить этот атрибут так, чтобы он отображался по-новому для ВСЕХ, тогда можно просто отправить новый XML (полученный путем редактирования) серверу, где он и сохранится в виде файла. А если Вы хотите, чтобы у пользователя (у конкретно ОДНОГО пользователя) надписи выглядели по-другому, тогда можно сохранить что и на что он заменил через SharedObject
__________________
...вселенская грусть

Старый 01.02.2009, 14:17
BBOY Ильич вне форума Посмотреть профиль Отправить личное сообщение для BBOY Ильич Найти все сообщения от BBOY Ильич
  № 5  
Ответить с цитированием
BBOY Ильич
 
Аватар для BBOY Ильич

Регистрация: Nov 2007
Сообщений: 256
Записей в блоге: 1
Отправить сообщение для BBOY Ильич с помощью ICQ
Zinс отлично справится с сохранением

Старый 01.02.2009, 15:48
starserfer вне форума Посмотреть профиль Отправить личное сообщение для starserfer Найти все сообщения от starserfer
  № 6  
Ответить с цитированием
starserfer

Регистрация: May 2008
Сообщений: 41
Вообще-то приложение изначально предусмотрено как десктопное и преобразуется в exe цинком. Только сначала пытался делать пересохранение xml средствами Flash, что как указал здесь alexcon314, конечно же, неправильно, а теперь хотелось бы поподробнее узнать о возможностях цинка при обработке xml и вижу, что нужно перемещаться в соответствующую ветку. Просьба модератору переместить тему в "Flash-приложения: Air, Zinc..." Или начинать новую тему?

Старый 01.02.2009, 16:32
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 7  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Перемещаемся.
Собственно, mdm.Filesystem.saveFile(), mdm.FileSystem.appendFile() в помощь. Ну и XML.toString().

Старый 01.02.2009, 19:23
starserfer вне форума Посмотреть профиль Отправить личное сообщение для starserfer Найти все сообщения от starserfer
  № 8  
Ответить с цитированием
starserfer

Регистрация: May 2008
Сообщений: 41
Спасибо, alexcon314, за проявленное понимание. И с ходу, пока еще ничего не делая из предложенных вариантов, хочу уточнить некоторые моменты. Если я правильно понимаю, обработка xml в данном случае производится путем чтения его в строку и затем предполагается дальнейшая обработка его именно как строки, стандартными средствами Flash по работе со строками? То есть у цинка не предусмотрено специальных инструментов для работы с xml: перебор узлов и чтение их содержимого и атрибутов?

Старый 01.02.2009, 23:04
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 9  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
надо делать примерно так:
-грузим хмл средствами флэша var xml:XML=new XML(); xml.load("myxml.xml");
-используя методы и свойства AS-класса XMLNode, работаем с загруженным хмл-ом: добавляем/удаляем ноды, модифицируем атрибуты и т.д.
-когда все готово для сохранения, вызываем mdm.Filesystem.saveFileUnicode("myxml.xml", xml.toString());

mdm.Filesystem.saveFileUnicode() нужен, если сохраняемая информация содержит русские буквы.Иначе потом флэш не сможет их корректно загрузить при последующем редактировании.

Т.е. методов для работы с хмл у флэша более, чем достаточно, чтобы желать еще чего-то. Цинк нужен только для сохранения, чего сам флэш делать не может. Впрочем, 10-й плеер лишен этого недостатка: он может сохранять файлы без дополнительных программ-оболочек. Тем не менее, у цинка много фич, которые делают его использование оправданным.


Последний раз редактировалось alexcon314; 01.02.2009 в 23:07.
Старый 01.02.2009, 23:23
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 10  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Ну ФП5 тоже мог сохранять Только это прикрыли из-за возможности сделать форматирование диска. В 10 ФП опять можно диск отформатировать???

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:20.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 22:20.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.