Просмотр полной версии : загрузка XML. По разному на разных компах
Один и тот же проект. Фото с описанием подгружаются из XML файла.
Сам файл формируется по запросу пользователя из БД. При замене критериев изменяется XML и подгружается новый.
Этот проект копирую на другой комп без изменений. Загружается первый сформированный XML файл.Всегда. Вне зависимости от того изменяется ли файл или нет.
И там и там стоит один и тот же денвер, флеш плейер 9.
Что еще может влиять....
Сегодня нужно показывать проект. щас пойду вешаться....... подскажите плииз. что делать
screamge
09.06.2007, 11:25
это локально или в нете?
chingachgoog
09.06.2007, 20:38
Я только не пойму: это ЧИСТЫЙ флеш-проект или флеш+оболочка?
Сам флеш записывать на комп XML не умеет.
xml файл обновляется с помощью пхп. ПХП со своей работой справляется замечательно. Поясняю ситуацию:
КОМП № 1.
1. Нажимаем кнопку выбрать категорию из комбобокса
2. вызываем пхп
3. пхп берет из базы данных соответсвтующие данные и записывает их в xml файл
4. по окончании работы пхп скрипта флеш начинает загружать свжесозданный xml
КОМП № 2
п.п.1-3 работают нормально
на четвертом этапе флеш наотрез отказывается загружать свежий файл, а обновляет данные на странице. причем данные уже физически на диске не существуют (в xml файле совсем другие свежие данные)
если работает с пхп (но все же локально) - значит какойто сервак развернут типа Денвера. С кэшированием надеюсь боритесь? Там оно есть. Если не боритесь, то положительных результатов ждать не приходится.
плюс НЕ ДОЛЖНО быть в коде AS такого "System.useCodepage = true".
типа денвера:-)
useCodepage отсутствует
а как бороться с кешированием?:-)
самый простой - при загрузке xml приписывать случайное число:
result = new XML();
result.ignoreWhite = true;
result.load(filename+"?v="+Math.random(9999));
result.onLoad = Delegate.create(this, handleLoaded);
И еще совет: не совершать лишних движений - не надо скриптом сохранять xml, можно из флешки сразу обратиться к php скрипту и получить в ответ xml result.load("http://localhost/getXml.php?v="+Math.random(9999));
result.onLoad = Delegate.create(this, handleLoaded);
Непонятно, что делает данная строка
to flskif
Эх, можно я вас расцелую:-))
Не откажусь =)
result.onLoad = Delegate.create(this, handleLoaded);
Эта строка позволяет на событие onLoad повесить функцию handleLoaded, где this указывает на целевую область видимости (это может быть конкретный экземпляр класса или мувиклип, именно на него будет указывать ключевое слово this в вызываемом методе или функции-обработчике, handleLoaded-- это метод-обработчик данного класса (или функция на таймлайне мувиклипа).
Это позволяет решить проблему области видимости, примерно такого плана:
// здесь this указывает на одну область видимости
// например какой-нибудь обьект (допустим MyObject)
result.onLoad = function()
{
// здесть this указывает не на MyObject а на result
}
Обычно это решалось так:
var parentObj:Object = this;
result.onLoad = function()
{
paparentObj.doSomething();
}
Читать вот это: http://flash-ripper.com/archives/000680.htm
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.