Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
2 / 2 / 2
Регистрация: 03.08.2012
Сообщений: 83
1
AS 3.0

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

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

Author24 — интернет-сервис помощи студентам
Задача:Через заданный интервал выводить значение тега из 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.10.2012, 09:55
Ответы с готовыми решениями:

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

Если вызываю окно Window из своего же проекта, image подгружается, если и другой сборки image не подгружается
Привет всем! Есть проблема, то ли с WPF, то ли самим C#, то ли со мной.:) Может кто-нибудь...

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

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

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

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

Цитата Сообщение от nafisakoff Посмотреть сообщение
А какая разница между использванием рандом и даты?
Теоретически при использовании рэндома возможна загрузка из кеша. Вероятность стремиться к нулю, но все же есть. Впрочем, справедливости ради, если за основу брать локальное пользовательское время и предположить, что юзер будет менять это время, то такая вероятность тоже есть, она тоже стремиться к 0.
1
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
Модератор
2904 / 1763 / 179
Регистрация: 19.02.2011
Сообщений: 6,477
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
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
Модератор
2904 / 1763 / 179
Регистрация: 19.02.2011
Сообщений: 6,477
05.11.2012, 16:52 8
nafisakoff, смотрим тут - это описание структуры проекта, там же принципы ООП на примере MVC. Вообще, что касается ООП - тут необходимо понимание, и в действительности это может оказаться сложнее, чем кажется на 1й взгляд.
Непосредственно по коду - вложенные функции - зло (смотрю на интервал в 1м примере), данные необходимо парсить с учетом всех проверок, если данные будут необходимы более чем показать один раз - обязательно выносить в переменные. Используйте мягкие ссылки. Ну и код должен быть в классах (см. выше ссылку на урок)
1
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)
Вложения
Тип файла: rar AS3.rar (170.9 Кб, 2 просмотров)
0
Модератор
2904 / 1763 / 179
Регистрация: 19.02.2011
Сообщений: 6,477
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)
Последнего не увидел. Код нужно писать в классах.
Вложения
Тип файла: rar Новая папка.rar (514.4 Кб, 5 просмотров)
1
2 / 2 / 2
Регистрация: 03.08.2012
Сообщений: 83
18.07.2013, 14:50  [ТС] 11
Вопросы:
Нужен ли код в снимке 1?
На что ругается при нажатии Debug FlashDeveloper на снимке 2 и как это решить?
Для чего нужен файл "Новая папка" в снимке 3?
Миниатюры
Не подгружается XML   Не подгружается XML   Не подгружается XML  

0
Модератор
2904 / 1763 / 179
Регистрация: 19.02.2011
Сообщений: 6,477
18.07.2013, 15:02 12
Цитата Сообщение от nafisakoff Посмотреть сообщение
Нужен ли код в снимке 1?
Нет, со сцены можно удалить вообще все.
Цитата Сообщение от nafisakoff Посмотреть сообщение
На что ругается при нажатии Debug FlashDeveloper на снимке 2 и как это решить?
Не правильно указан путь к СДК. Установить СДК.
Цитата Сообщение от nafisakoff Посмотреть сообщение
Для чего нужен файл "Новая папка" в снимке 3?
Назвать можно как угодно, это файл проекта - название по умолчанию не самое лучшее. Лучше переименовать.
2
2 / 2 / 2
Регистрация: 03.08.2012
Сообщений: 83
19.07.2013, 14:46  [ТС] 13
TanaTiX,
Со сцены всё удалил,
Установил СДК, теперь не ругается. Вопрос, а для чего нужен SDK?
И встатье "Урок.Структура АС3-проекта" SDK не фигурирует.
0
Модератор
2904 / 1763 / 179
Регистрация: 19.02.2011
Сообщений: 6,477
19.07.2013, 17:00 14
SDK, Apache Flex
0
19.07.2013, 17:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.07.2013, 17:00
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru