Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   loader - не грузит новую версию файла (http://www.flasher.ru/forum/showthread.php?t=214338)

rodich95 18.06.2017 00:48

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);
        }


undefined 18.06.2017 10:31

Чтоб данные не кешировались добавляй к урлу
Код AS3:

var request:URLRequest = new URLRequest("http://***/the.xml"+"?p="+String(Math.random()));

PS:А отписываться от Event.COMPLETE кто будет?

rodich95 18.06.2017 19:12

Спасибо! всё получилось!
А можно по подробней насчёт этого:

Цитата:

Сообщение от undefined (Сообщение 1201026)
PS:А отписываться от Event.COMPLETE кто будет?

а то не совсем понимаю о чём речь, сорян за такое ламерство.

undefined 18.06.2017 20:55

это значит после загрузки данных слушатель надо удалять, иначе утечка памяти будет:
Код AS3:

private function completeHandler(event:Event):void 
        {
            event.target.removeEventListener(Event.COMPLETE, completeHandler);
            var dataXML:XML = XML(event.target.data);
            trace(dataXML);
        }

Вообще то класс Loader служит для загрузки чего-то,что будет рисоваться на экране(картинка/другая флэшка).Для загрузки текстовиков лучше использовать класс URLLoader.

rodich95 18.06.2017 23:25

Спасибо!

caseyryan 19.06.2017 06:00

Цитата:

это значит после загрузки данных слушатель надо удалять, иначе утечка памяти будет:
В этом случае не будет никакой утечки. Это локальный загрузчик, который соберется сборщиком мусора вместе со своими слушателями. Но в общем да, соглашусь, лучше всегда удалять принудительно.
Цитата:

Код 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 будет считаться здесь одной и той же переменной

undefined 19.06.2017 13:21

Цитата:

В этом случае не будет никакой утечки. Это локальный загрузчик, который соберется сборщиком мусора вместе со своими слушателями. Но в общем да, соглашусь, лучше всегда удалять принудительно.
Хочешь сказать что если создать локальный спрайт, повесить на него ENTER_FRAME и потом затереть его,то и слушатель снесется?

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

caseyryan 19.06.2017 17:32

Цитата:

Хочешь сказать что если создать локальный спрайт, повесить на него ENTER_FRAME и потом затереть его,то и слушатель снесется?
Главное, чтобы внешних ссылок не было на объект


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

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