Форум программистов, компьютерный форум, киберфорум
Наши страницы
ActionScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
nafisakoff
2 / 2 / 2
Регистрация: 03.08.2012
Сообщений: 83
1

Не подгружается XML

02.10.2012, 09:55. Просмотров 1370. Ответов 13
Метки нет (Все метки)

Задача:Через заданный интервал выводить значение тега из XML (содержимое XML обновляется).
Происходит следующее:В случае, если xml-file.xml находиться локально, то всё замечательно (значение тэга обновляется)!,
Но если хочу тянуть из http://somesite/xml-file.xml, то XML подгружается единажды и всё(
Вопрос:
-Как заставить эту штуку работать как нада?
-Так же буду рад услышать замечания по содержанию кода (может избыточен, может можно сделать по грамотнее и т.д.)

ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import flash.events.Event; 
import flash.net.URLLoader; 
import flash.net.URLRequest; 
import flash.utils.setInterval;
 
var externalXML:XML; 
setInterval(function () {
var loader:URLLoader = new URLLoader(); 
var request:URLRequest = new URLRequest("http://somesite/xml-file.xml"); 
//var request:URLRequest = new URLRequest("xml-file.xml");  с этой строкой всё работает!!!
loader.load(request); 
loader.addEventListener(Event.COMPLETE, onComplete); 
},2000);
 
function onComplete(event:Event):void 
{ 
    var loader:URLLoader = event.target as URLLoader; 
    if (loader != null) 
    { 
        externalXML = new XML(loader.data);         
        txtti0.text=externalXML.ti.ti0;   
    } 
    else 
    { 
        trace("loader is not a URLLoader!"); 
    } 
}
Так же в корне http://somesite лежит файл crossdomain.xml
XML
1
2
3
4
<cross-domain-policy>
<allow-access-from domain="*" />
<site-control permitted-cross-domain-policies="all"/>
</cross-domain-policy>
Добавлено через 5 часов 50 минут
А мож дело в таймере?!
Почитал, что нужно вместо
XML
1
import flash.utils.setInterval;
нужно пользовать
XML
1
import flash.utils.Timer;
Как считаете в этом проблема?
Как это будет выглядеть?
(Пока нет возможности потестить)

Добавлено через 13 часов 41 минуту
С использованием Timer ничего не изменилось.
В случае, если xml-file.xml находиться локально, то всё замечательно (значение тэга обновляется)!,
Но если хочу тянуть из http://somesite/xml-file.xml, то XML подгружается единажды и всё(

ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import flash.events.Event; 
import flash.net.URLLoader; 
import flash.net.URLRequest; 
import flash.utils.Timer;
import flash.events.TimerEvent;
 
var timer:Timer = new Timer(2000,50);
timer.addEventListener(TimerEvent.TIMER, TimerHandler);
 
var externalXML:XML; 
function TimerHandler(event:TimerEvent):void
{
var loader:URLLoader = new URLLoader(); 
var request:URLRequest = new URLRequest("http://somesite/xml-file.xml"); 
//var request:URLRequest = new URLRequest("xml-file.xml"); 
loader.load(request); 
loader.addEventListener(Event.COMPLETE, onComplete); 
}
 
function onComplete(event:Event):void 
{ 
    var loader:URLLoader = event.target as URLLoader; 
    if (loader != null) 
    { 
        externalXML = new XML(loader.data);         
        txtti0.text=externalXML.ti.ti0;   
    } 
    else 
    { 
        trace("loader is not a URLLoader!"); 
    } 
}
timer.start();
Есть у кого идеи?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2012, 09:55
Ответы с готовыми решениями:

НЕ подгружается swf
вообщем вот что у меня получается: выставляю кнопку и добавляю слушатель: ...

Не подгружается
Доброго времени суток, форумчане. Возникла проблема: изменяю файл допустим...

Библиотека не подгружается.
Всем привет. Вчера поставил 2010 студию, расхлебываю... Подгрузил библиотеку...

Не подгружается изобржение
В переменной &quot;$photo&quot; хранится ссылка к локальному файлу, а константа...

Не подгружается шрифт
Всем привет! У меня сайт со шрифтами. Недавно решил сделать возможность...

13
TanaTiX
Модератор
2796 / 1650 / 168
Регистрация: 19.02.2011
Сообщений: 6,005
Завершенные тесты: 2
02.10.2012, 20:10 2
Цитата Сообщение от nafisakoff Посмотреть сообщение
Есть у кого идеи?
Кеширование
ActionScript 3
1
var request:URLRequest = new URLRequest("http://somesite/xml-file.xml?rnd=" + Math.random());
Таким образом мы будем грузить каждый раз новый файл, а не то, что осталось в кеше. Как вариант, использовать не рэндом, а значение даты.
1
nafisakoff
2 / 2 / 2
Регистрация: 03.08.2012
Сообщений: 83
02.10.2012, 20:25  [ТС] 3
А есть замечания по содержанию кода (может избыточен, может можно сделать по грамотнее и т.д.)?
Мож к файлу crossdomain.xml какие прерикания будут?
А какая разница между использванием рандом и даты?
0
TanaTiX
Модератор
2796 / 1650 / 168
Регистрация: 19.02.2011
Сообщений: 6,005
Завершенные тесты: 2
02.10.2012, 21:39 4
Цитата Сообщение от nafisakoff Посмотреть сообщение
А есть замечания по содержанию кода
Главное замечание - не в классе, следовательно, не соответствует принципам ООП.

Цитата Сообщение от nafisakoff Посмотреть сообщение
Мож к файлу crossdomain.xml какие прерикания будут?
Какие к нему со стороны клиента могут быть нарекания, если все необходимое загружается? Пусть сервер озадачится. Если это ваш кроссдомен, то не известно сколько он должен разрешать. Если разрешенная информация должна быть известна всем ("all" и "*"), то не вижу никаких проблем. А вообще на этот счет (секьюрность и права доступа) пару месяцев назад встречал отличный и объемный перевод одной статьи, вот только сейчас вряд ли вспомню где видел/найду.

Цитата Сообщение от nafisakoff Посмотреть сообщение
А какая разница между использванием рандом и даты?
Теоретически при использовании рэндома возможна загрузка из кеша. Вероятность стремиться к нулю, но все же есть. Впрочем, справедливости ради, если за основу брать локальное пользовательское время и предположить, что юзер будет менять это время, то такая вероятность тоже есть, она тоже стремиться к 0.
1
nafisakoff
2 / 2 / 2
Регистрация: 03.08.2012
Сообщений: 83
02.11.2012, 14:35  [ТС] 5
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import flash.events.Event; 
import flash.net.URLLoader; 
import flash.net.URLRequest; 
import flash.utils.setInterval;
 
var externalXML:XML; 
setInterval(function () {
var loader:URLLoader = new URLLoader(); 
var request:URLRequest = new URLRequest("http://somesite/xml-file.xml"); 
loader.load(request); 
loader.addEventListener(Event.COMPLETE, onComplete); 
},2000);
 
function onComplete(event:Event):void 
{ 
    var loader:URLLoader = event.target as URLLoader; 
    if (loader != null) 
    { 
        externalXML = new XML(loader.data);         
        txtti0.text=externalXML.ti.ti0;   // как округлить?!!!
    } 
    else 
    { 
        trace("loader is not a URLLoader!"); 
    } 
}
В результате выше указанного кода отображается значение 2999,8999.
Подскажите как округлить его до десятых? (2999,8999)
0
TanaTiX
Модератор
2796 / 1650 / 168
Регистрация: 19.02.2011
Сообщений: 6,005
Завершенные тесты: 2
02.11.2012, 21:05 6
nafisakoff, для начала код ужасен.
По теме
Округление
ActionScript 3
1
2
var val:Number = 2999.8999;
trace(Math.round(val*10)/10);
Изменение знака дроби
ActionScript 3
1
2
3
4
var val:String = "2999,8999";
val = val.replace(",", ".");//только в данном случае считается, что знак "," только один и других символов кроме цифр и "-" нет. Иначе - ошибка.
var newVal:Number = Number(val);
trace(newVal);
1
nafisakoff
2 / 2 / 2
Регистрация: 03.08.2012
Сообщений: 83
05.11.2012, 16:19  [ТС] 7
Рабочий, отвечающий на поставленную задчу код:
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import flash.events.Event; 
import flash.net.URLLoader; 
import flash.net.URLRequest; 
import flash.utils.Timer;
import flash.events.TimerEvent;
 
var timer:Timer = new Timer(3000,0);
timer.addEventListener(TimerEvent.TIMER, TimerHandler);
 
var externalXML:XML;
function TimerHandler(event:TimerEvent):void
{
var loader:URLLoader = new URLLoader(); 
var request:URLRequest = new URLRequest("http://myip/file.xml?rnd="+ Math.random()); 
loader.load(request); 
loader.addEventListener(Event.COMPLETE, onComplete); 
}
 
function onComplete(event:Event):void 
{ 
    
    var loader:URLLoader = event.target as URLLoader; 
    if (loader != null) 
    { 
        externalXML = new XML(loader.data);   
 
        txtti0.text=externalXML.ti.ti0;
        txtti1.text=externalXML.ti.ti1;
                //.........  
        txtti115.text=externalXML.ti.ti115;             
    } 
    else 
    { 
        trace("loader is not a URLLoader!"); 
    } 
}
timer.start();
,Но после слов
nafisakoff, для начала код ужасен
рука не поднимается кодить дальше(
Т.к. моя задача будет обрастать TanaTiX, "направь на путь истинный" покажи как должен выглядеть мой код, а я постораюсь не откланяться от заданного курса)
Т.к. я в программировании новичок слова класс и принцип ООП к сожалению ничего не объясняют
0
TanaTiX
Модератор
2796 / 1650 / 168
Регистрация: 19.02.2011
Сообщений: 6,005
Завершенные тесты: 2
05.11.2012, 16:52 8
nafisakoff, смотрим тут - это описание структуры проекта, там же принципы ООП на примере MVC. Вообще, что касается ООП - тут необходимо понимание, и в действительности это может оказаться сложнее, чем кажется на 1й взгляд.
Непосредственно по коду - вложенные функции - зло (смотрю на интервал в 1м примере), данные необходимо парсить с учетом всех проверок, если данные будут необходимы более чем показать один раз - обязательно выносить в переменные. Используйте мягкие ссылки. Ну и код должен быть в классах (см. выше ссылку на урок)
1
nafisakoff
2 / 2 / 2
Регистрация: 03.08.2012
Сообщений: 83
18.07.2013, 11:32  [ТС] 9
Tanatix, много времени прошло с момента последнего нашего диалого..
Много раз пытался привести свой "проект" в порядок, в "соответствии с принципами ООП".
В качестве руководства использовал хорошую статью "Урок.Структура АС3-проекта". Вроде делал(пытался делать) всё так как написано, шаг за шагом, галочка за галочкой, но так и не добился результата.
Всё как бы работает, но когда знаешь, что сделанно всё не поуму, удовлетворения от того что работает никакого!(
По всей видимости не хватает компетенции в этой теме(.
После очередной неудачной попытки, моё терпение иссякло.
Поэтому обращаюсь к Вам с просьбой показать как должен выглядить "правильный" проект на примере моего "корявого" но рабочего проекта.
Надеюсь после вашего ответа я увижу, а самое главное, пойму, как должен выглядеть мой проект, что бы исправить множество уже "коряво" сделанных проектов и приступить к созданию новых, но уже "правильных"!

Использую: Adobe Flash Professional CS6 version 12.0.2.529 и FlashDevelop 4.4.2 RTM for Microsoft.NET 2.0(R2684)
0
Вложения
Тип файла: rar AS3.rar (170.9 Кб, 2 просмотров)
TanaTiX
Модератор
2796 / 1650 / 168
Регистрация: 19.02.2011
Сообщений: 6,005
Завершенные тесты: 2
18.07.2013, 12:38 10
Примерно так, почти на коленке без дополнительных проверок и пр. Но смысл, думаю, будет ясен.
Цитата Сообщение от nafisakoff Посмотреть сообщение
Использую: Adobe Flash Professional CS6 version 12.0.2.529 и FlashDevelop 4.4.2 RTM for Microsoft.NET 2.0(R2684)
Последнего не увидел. Код нужно писать в классах.
1
Вложения
Тип файла: rar Новая папка.rar (514.4 Кб, 5 просмотров)
nafisakoff
2 / 2 / 2
Регистрация: 03.08.2012
Сообщений: 83
18.07.2013, 14:50  [ТС] 11
Вопросы:
Нужен ли код в снимке 1?
На что ругается при нажатии Debug FlashDeveloper на снимке 2 и как это решить?
Для чего нужен файл "Новая папка" в снимке 3?
0
Миниатюры
Не подгружается XML   Не подгружается XML   Не подгружается XML  

TanaTiX
Модератор
2796 / 1650 / 168
Регистрация: 19.02.2011
Сообщений: 6,005
Завершенные тесты: 2
18.07.2013, 15:02 12
Цитата Сообщение от nafisakoff Посмотреть сообщение
Нужен ли код в снимке 1?
Нет, со сцены можно удалить вообще все.
Цитата Сообщение от nafisakoff Посмотреть сообщение
На что ругается при нажатии Debug FlashDeveloper на снимке 2 и как это решить?
Не правильно указан путь к СДК. Установить СДК.
Цитата Сообщение от nafisakoff Посмотреть сообщение
Для чего нужен файл "Новая папка" в снимке 3?
Назвать можно как угодно, это файл проекта - название по умолчанию не самое лучшее. Лучше переименовать.
2
nafisakoff
2 / 2 / 2
Регистрация: 03.08.2012
Сообщений: 83
19.07.2013, 14:46  [ТС] 13
TanaTiX,
Со сцены всё удалил,
Установил СДК, теперь не ругается. Вопрос, а для чего нужен SDK?
И встатье "Урок.Структура АС3-проекта" SDK не фигурирует.
0
TanaTiX
Модератор
2796 / 1650 / 168
Регистрация: 19.02.2011
Сообщений: 6,005
Завершенные тесты: 2
19.07.2013, 17:00 14
SDK, Apache Flex
0
19.07.2013, 17:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.07.2013, 17:00

Не подгружается флеш
Извиняюсь если некорректно излагаю проблему но суть такова: сайт ...

Шрифт не подгружается
Пытаюсь использовать на двух сайтах один и тот же шрифт. Путь к файлу шрифта...

Не подгружается изображение из БД
Доброго времени суток. В БД Access добавляю название изображения и массив...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru