Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблема с перезаписью XML (http://www.flasher.ru/forum/showthread.php?t=157175)

stweet 01.06.2011 17:37

Проблема с перезаписью XML
 
Собственно проблема в том что флэшка не обновляет XML.

мои действия:

Запускаю ролик, проверяю: находится ли нужная нам xml-ка в нужном месте для сохранения в неё ребёнка?
Нет, нету xml-ки, хорошо, создаю и сохраняю в нужном месте, вписав в неё первого ребёнка.

Перезапускаю плеер, проверяю, всё "зер гуд" xml-ка с ребёнком на месте можно работать далее.

Пытаюсь вновь повторить операцию с добовлением ребёнка, пишет что ребёнок добавлен, а xml - ка мне показывает 1. Не могу понять почему при тесте !НЕ закрывая приложения при запросе, обращение к файлу идёт один раз??? Такое ощущение что флешка обращается к xml а после её кеширует и когда я делаю повторный запрос она не вновь пытается прочесть, нужный мне файл, а берёт из кеша предыдущию загрузку. и говорит что типа она своё дело выполнила.

Сохраняю через php скрипт 100% рабочий.

Код AS3:

package
{
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.events.IOErrorEvent;
        import flash.net.URLLoader;
        import flash.net.URLRequest;
 
        public class XMLTest extends Sprite
        {
                private var loader        :URLLoader;
 
                private var _COMPLETE:int;
                private var GET_CONTENT:XML;
 
                public function XMLTest(ar:String)
                {
                        _COMPLETE = 0;
 
                        loader = new URLLoader(new URLRequest(ar));
 
                        loader.addEventListener(Event.COMPLETE, LOAD);
                        loader.addEventListener(IOErrorEvent.IO_ERROR, ERROR);
                }
 
                private function ERROR(e:IOErrorEvent):void
                {
                        _COMPLETE = -1;
                }
 
                private function LOAD(e:Event):void
                {
                        _COMPLETE = 1;
                }
 
                public function get CONTENT ():XML
                {
                        if (COMPLETE != -1) GET_CONTENT = XML(loader.data);
                        else GET_CONTENT = XML("<arg ='null'/>");
 
                        return GET_CONTENT;
                }
 
                public function get COMPLETE():int
                {
                        return _COMPLETE;
                }
        }
}

1 = делаю первую проверку, говорит что файла нет.
2 = я тогда создаю этот файл автоматом и вписываю в него первый чилд.
3 = делаю повторную проверку, всё как и должно быть, файлик есть, ребёнок в нём есть.
4 = добовляю нового ребёнка.
5 = вновь проверяю, ответ: "один ребёнок" ?!...
6 = открываю файлик блокнотом, там 2 чилда.
7 = закрываю флешку и вновь запускаю, показывает 2 чилда, вроде бы всё "зер гуд"
8 = добовляю нового чилда, пишет мне в ответ, 2 чилда?!?!
9 = повторяю 6 действие, в файлике 3 чилда.
10 = перезапускаю ролик проверяю 3 чилда.
11 = 8;
12 = 9: +1
13 = 10 ответ: 4 чилда.

Я грешу на то что ЮРЛЛоадер нужно после проверки подчистить

-De- 01.06.2011 17:46

Может, это таки кеширование? Самый простой способ - добавлять в урл запроса к пхп что-то рандомное или время в миллисекундах от Рождества Линуксового (доп переменной например). Ну и вообще поищите по форуму про кеширование браузерное, это весьма возможно не лучшее решение.

stweet 01.06.2011 18:25

в целом идея не плохая.
Суть в том, что бы добавить нового ребёнка, я присваиваю ему ID а этот айди строиться из количества детей в XML-ке. Т.е. прежде чем добавить я считатаю сколько детей и присваиваю новому ребёнку следующий айди, получается, сохраняются по очереди.

Может есть у кого ещё предложения?

in4core 01.06.2011 18:35

А что за любовь к КАПС_КОнстантам?


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

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