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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

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

Регистрация: May 2017
Сообщений: 5
По умолчанию loader - не грузит новую версию файла

Необходимо подгружать данные с XML файла из интернета. В принципе все данные получаются, но они как то закешировались что ли. Вообщем любое изменение XML файла на серве не доходит до флеша - попросту выводятся данные первой удачной загрузки этого файла.
Может я не правильно понял структуру загрузки данных? подскажите пожалуйста: что не так?
Код AS3:
public function XMLread(){
            var request:URLRequest = new 
            URLRequest("http://***/the.xml"); 
            var loader:URLLoader = new URLLoader(); 
            loader.addEventListener(Event.COMPLETE, completeHandler); 
            try 
            { 
                loader.load(request);
            } 
            catch (error:ArgumentError) 
            { 
                trace("An ArgumentError has occurred."); 
            } 
            catch (error:SecurityError) 
            { 
                trace("A SecurityError has occurred."); 
            } 
		}
		private function completeHandler(event:Event):void 
        { 
            var dataXML:XML = XML(event.target.data); 
            trace(dataXML);
        }

Старый 18.06.2017, 10:31
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 2  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
Чтоб данные не кешировались добавляй к урлу
Код AS3:
var request:URLRequest = new URLRequest("http://***/the.xml"+"?p="+String(Math.random()));
PS:А отписываться от Event.COMPLETE кто будет?


Последний раз редактировалось undefined; 18.06.2017 в 11:50.
Старый 18.06.2017, 19:12
rodich95 вне форума Посмотреть профиль Отправить личное сообщение для rodich95 Найти все сообщения от rodich95
  № 3  
Ответить с цитированием
rodich95

Регистрация: May 2017
Сообщений: 5
Спасибо! всё получилось!
А можно по подробней насчёт этого:

Цитата:
Сообщение от undefined Посмотреть сообщение
PS:А отписываться от Event.COMPLETE кто будет?
а то не совсем понимаю о чём речь, сорян за такое ламерство.

Старый 18.06.2017, 20:55
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 4  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
это значит после загрузки данных слушатель надо удалять, иначе утечка памяти будет:
Код AS3:
private function completeHandler(event:Event):void 
        { 
            event.target.removeEventListener(Event.COMPLETE, completeHandler);
            var dataXML:XML = XML(event.target.data); 
            trace(dataXML);
        }
Вообще то класс Loader служит для загрузки чего-то,что будет рисоваться на экране(картинка/другая флэшка).Для загрузки текстовиков лучше использовать класс URLLoader.

Старый 18.06.2017, 23:25
rodich95 вне форума Посмотреть профиль Отправить личное сообщение для rodich95 Найти все сообщения от rodich95
  № 5  
Ответить с цитированием
rodich95

Регистрация: May 2017
Сообщений: 5
Спасибо!

Старый 19.06.2017, 06:00
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 6  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
это значит после загрузки данных слушатель надо удалять, иначе утечка памяти будет:
В этом случае не будет никакой утечки. Это локальный загрузчик, который соберется сборщиком мусора вместе со своими слушателями. Но в общем да, соглашусь, лучше всегда удалять принудительно.
Цитата:
Код AS3:
try 
            { 
                loader.load(request);
            } 
            catch (error:ArgumentError) 
            { 
                trace("An ArgumentError has occurred."); 
            } 
            catch (error:SecurityError) 
            { 
                trace("A SecurityError has occurred."); 
            }
Напомнило джаву)
п.с. Это вообще работает? Здесь же одной и той же переменной error задается разный тип. В as3 область видимости переменной шире, чем в джаве, для которой это были бы разные переменные. В as3 error будет считаться здесь одной и той же переменной
__________________
Ко мне можно и нужно обращаться на ты)

Старый 19.06.2017, 13:21
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 7  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
Цитата:
В этом случае не будет никакой утечки. Это локальный загрузчик, который соберется сборщиком мусора вместе со своими слушателями. Но в общем да, соглашусь, лучше всегда удалять принудительно.
Хочешь сказать что если создать локальный спрайт, повесить на него ENTER_FRAME и потом затереть его,то и слушатель снесется?

Добавлено через 6 минут
хех,действительно сносится

Старый 19.06.2017, 17:32
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 8  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Хочешь сказать что если создать локальный спрайт, повесить на него ENTER_FRAME и потом затереть его,то и слушатель снесется?
Главное, чтобы внешних ссылок не было на объект
__________________
Ко мне можно и нужно обращаться на ты)

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

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

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


 


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


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