Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Проблема загрузки внешнего текстового файла в FireFox (http://www.flasher.ru/forum/showthread.php?t=148491)

Sinusoid 03.01.2011 20:12

Проблема загрузки внешнего текстового файла в FireFox
 
Приветствую.
Проблема: подгружаю текст в текстовое поле из внешнего текстового файлика. Все работает в IE и в Opera. текст выводится, все чин чином. А FireFox ну не выводит,и всё. хоть убейся, мучаюсь уже достаточно долго. пробовал вместо onLoad использовать onData с соответсвующим синтаксисом - результат тот же (нулевой).
вот код:
Код AS1/AS2:

System.useCodepage=true;
var loadvars_pb:mx.controls.ProgressBar;
var my_lv:LoadVars = new LoadVars();
loadvars_pb.mode = "manual";
this.createEmptyMovieClip("timer_mc", 999);
timer_mc.onEnterFrame = function() {
    var lvBytesLoaded:Number = my_lv.getBytesLoaded();
    var lvBytesTotal:Number = my_lv.getBytesTotal();
    if (lvBytesTotal != undefined) {
    pole.text="Loaded "+lvBytesLoaded+" of "+lvBytesTotal+" bytes.";
    loadvars_pb.setProgress(lvBytesLoaded, lvBytesTotal);
    }
};
my_lv.onLoad = function(success:Boolean) {
    loadvars_pb.setProgress(my_lv.getBytesLoaded(), my_lv.getBytesTotal());
    delete timer_mc.onEnterFrame;
    if (success) {
    pole.text=unescape(my_lv.toString());
    } else {
    pole.text="An error occurred while loading variables.";
    }
};
my_lv.load("/texts/about_content.txt");


mooncar 04.01.2011 15:32

Попробуйте так, если директория, где находится страница с опубликованной флешкой - родительская по отношению к texts:
Код AS1/AS2:

my_lv.load("texts/about_content.txt");

"/" в начале адреса означает корневую директорию.

rainbowrussia 04.01.2011 23:16

Для начала попробуйте убрать "System.useCodepage=true;" и содержимое "about_content.txt" привести в кодировку UTF-8. Если не поможет - залейте куда-нибудь флешку и дайте адрес.

Sinusoid 05.01.2011 20:01

быть может, вы меня неправильно поняли, я под "ничего не выводит" имел ввиду "отображается An error occurred while loading variables."

mooncar, зачем убирать slash?? в опере и эксплорере-то отображает, значит хост парсит правильно.

rainbowrussia, проблемы с кодировкой не могут быть причиной отрицательного ответа на подгрузку как таковую.

Добавлено через 6 часов 17 минут
проблема все еще актуальна! где вы, флэш гуру?

rainbowrussia 06.01.2011 08:34

Если не хотите показывать пациента, то попробуйте заменить
Код AS1/AS2:

my_lv.load("/texts/about_content.txt");

на
Код AS1/AS2:

my_lv.load("/texts/about_content.txt?");

на случай если в вашем FireFox закешировался факт отсутствия файла, когда его еще не было.

mooncar 06.01.2011 10:32

Цитата:

Сообщение от Sinusoid (Сообщение 962253)
быть может, вы меня неправильно поняли, я под "ничего не выводит" имел ввиду "отображается An error occurred while loading variables."

mooncar, зачем убирать slash?? в опере и эксплорере-то отображает, значит хост парсит правильно.

Я вас прекрасно понял. Ошибка, когда аргумент обработчика onLoad становится false, говорит либо о неправильном адресе, либо об отсутствующем файле по ожидаемому адресу.

Было не очень понятно, как вы тестили - из браузера локально или по http.
Потому и приходится гадать. Если у вас уже все на сервере, то проблема решается за 5 минут.
Ставьте себе HTTPFox или другой снифер и смотрите, какие идут запросы, т. е. увидите и адрес, который "парсит хост" и результат запроса (404 в случае ошибки - неверного URL или отсутствующего файла).

Присоединяюсь также к rainbowrussia и советую в конце адреса прикручивать что-то для исключения кэширования.
Я обычно к адресам добавляю ... + '?r=' + Math.rand()

Sinusoid 06.01.2011 15:43

Вот пациент:) www.эталонъ.рф
тестирую все на сервере, когда тестирую локально все норм.
насчет кэширования: всегда чищу кэш прежде чем смотреть после обновления. сейчас посмотрю сниффером. да, еще насчет кэширования. почему тогда в опере и эксплорере отображается нормально? меня очень смущает этот факт.

dark256 06.01.2011 15:58

1. Выключаю музыку - "не хватает системных ресурсов". вы там это.. чего курите?

2. РФ зона - ага. Локально пашет, удаленно - нет. Поздравляю. С русскими именами доменов уже пол рунета парится. Классная фишечка. Для дурачков.

3. about_content.txt - нормально грузится.
А то что внутри... нда... это ни текст, ни штмл, ни хмл... определитесь.
Зачем по 2-3-4 текстовых файла грузить при одном клике - тоже непонятно.
В одну XML все сразу затолкайте прямо при первичной загрузке и все.

В целом - смотреть и лечить нечего. Все надо убить и делать заново :)

rainbowrussia 06.01.2011 17:59

Я правильно понял что надо смотреть "О нас"? У меня в FireFox все нормально (portable, 3.0.5), думаю дело в русскоязычном домене. У меня он открывается как http://www.xn--80awgdr6cp.xn--p1ai/ и все показывает.

Думаю надо сделать следующее:

1) Добавить правильный crossdomain.xml в корень, разрешающий грузить данные с любого домена, на случай если флеш считает что данные грузятся с другого сайта и пытается его загрузить.
Код:

<cross-domain-policy>
<allow-access-from domain="*"/>
</cross-domain-policy>

2) Если не поможет, то оставить crossdomain.xml, но тексты грузить по абсолютной ссылке, только не с русскоязычного домена, а типа http://www.xn--80awgdr6cp.xn--p1ai/t...deo_header.txt в расчете на то, что флеш "не увидит" русских букв, загрузит crossdomain.xml, текст и останется доволен.

3) Если и это не поможет - дополнительно изменить адрес флешки с "main22.swf" на "http://www.xn--80awgdr6cp.xn--p1ai/main22.swf".

4) Уж если и это не поможет... завести дублирующий домен типа etalonrf.ru и грузить флешку и текстовые файлы с него. Или сделать редиект с эталон.рф -> etalonrf.ru, так как сайт все-равно на флеше и индексироваться не будет (файлы с текстами внешние).

Sinusoid 06.01.2011 21:13

dark256, а вы всегда, когда вас спрашивают, как поменять перегоревшую лампочку, отвечаете "подключайся к другой электростанции"? во-первых, "не хватает системных ресурсов" стоит не на включение музыки, а на фулскрин, ибо при нем оч жестко тормозит. я решил тупо обмануть всех и вставил эту надпись :) во-вторых, выбор рф зоны - дело заказчика. в третьих, при одном клике грузится только один файл основного содержимого. а про xml вы, пожалуй правы.


rainbowrussia, сейчас буду пробовать.

Добавлено через 1 час 13 минут
rainbowrussia, попробовал всё, кроме создания дублирующего домена - не работает. быть может глюк мозиллы? у меня стоит 3.6.9 версия.

можете объяснить почему не грузятся только тексты и только в мозилле?
просто я не верю, что все может быть так сложно...

dark256 06.01.2011 22:55

Цитата:

Сообщение от Sinusoid (Сообщение 962518)
dark256, а вы всегда, когда вас спрашивают, как поменять перегоревшую лампочку, отвечаете "подключайся к другой электростанции"?

Угу... есть у меня такой... экстремизъм :)

Цитата:

Сообщение от Sinusoid (Сообщение 962518)
во-первых, "не хватает системных ресурсов" стоит не на включение музыки, а на фулскрин, ибо при нем оч жестко тормозит. я решил тупо обмануть всех и вставил эту надпись

Фиговое юзабилити. Текст и рядом кнопка - естественно воспринимается как комментарий к кнопке. Тем более дизайн кнопки "фуллскрин" это уже стандарт дефакто, на коий вы наплюнули опять-таки в ущерб :)

Цитата:

Сообщение от Sinusoid (Сообщение 962518)
во-вторых, выбор рф зоны - дело заказчика.

Мои коллеги при выполнении заказа для .РФ, сразу умножают котировки на 1.75, ибо готовые компоненты и наработки приходится долго и мучительно допиливать :)

Цитата:

в третьих, при одном клике грузится только один файл основного содержимого. а про xml вы, пожалуй правы.
Ну я ж не гадаю на кофейной гуще. Я честно полез посмотреть что не так. Снифер при клике по кнопке "О НАС" и каким-то там еще показывает загрузку ТРЕХ файлов .txt, что не есть гут. Ну и контент в них странный. Отсюда и шаманство с .onData, которая вообще до недавних пор считалась недокументированной и работала криво :)

-----------

К слову сказать Mozilla Firefox 2.0.0.6 - все врехние кнопки работают и открывается все нормально. Снифер там не прицеплен у меня, поэтому более подробно не скажу что и как.
Кстати да, линк выглядит демонически - http://www.xn--80awgdr6cp.xn--p1ai/

Добавлено через 6 минут
Еще коммент, содержимое вашего кроссдомейна:

Цитата:

<cross-domain-policy>
<allow-access-from domain="*"/>
</cross-domain-policy>
два каких-то левых символа в самом начале

rainbowrussia 06.01.2011 23:04

Цитата:

Сообщение от Sinusoid (Сообщение 962518)
попробовал всё, кроме создания дублирующего домена - не работает. быть может глюк мозиллы? у меня стоит 3.6.9 версия.

Жаль, я надеялся что поможет. К сожалению сам не могу поэкспериментировать - нет русскоязычного домена в распоряжении. Попробуйте ради интереса свежую portable версию - http://portableapps.com/apps/internet/firefox_portable чтобы убедиться в ней ли глюк. Если есть свободный домен, можно попробовать алиас сделать, чтобы опять же убедиться в доменном имени проблема или нет. У вас в адресной строке Firefox как выглядит адрес? Как ....рф или ....xn--p1ai ?


Цитата:

Сообщение от Sinusoid (Сообщение 962518)
можете объяснить почему не грузятся только тексты и только в мозилле?
просто я не верю, что все может быть так сложно...

А у вас программно кроме текстов грузятся еще и картинки? Они отображаются нормально?

Если картинки грузятся, то стоит все же вернуться к началу и убрать useCodepage (ибо "...tells the Flash Player whether to use Unicode or the traditional code page of the operating system running the Player to interpret external text files..." что означает интерпретацию загружаемых файлов в соответствии с настройками ОС, а ОС бывают разные и далее "...To ensure that users on all platforms can view external text files used in your movies, you should encode all external text files as Unicode and leave System.useCodepage set to false by default. This way the Flash Player 6 will interpret the text as Unicode."), привести текст в Юникод, а еще лучше превратить .txt в .xml, так как по своей природе loadVars имхо больше предназначен для загрузки небольших строк, флагов и тд.

dark256 06.01.2011 23:05

Кстати теперь и в ИЕ все сдохло. Нажатие на кнопки вызывает 304 статус операции.

GET 304 * http://www.%D1%8D%D1%82%D0%B0%D0%BB%...es/polypic.jpg

ИЕ тащит файл из экша, но при этом:
(Content not found in cache)

HTTP Response Only headers returned as content has not changed Completed

Добавлено через 2 минуты
Цитата:

А у вас программно кроме текстов грузятся еще и картинки? Они отображаются нормально?
Я так понимаю что у него считается итем закэшированным, но в кэше оно с таким УРЛ-названием не находится либо не сохраняется. Поэтому получаем команду ВЗЯТЬ в кэше, а там пусто. Имена все эти дурацкие на чем-то глючат.

mooncar 06.01.2011 23:38

BTW
Цитата:

Сообщение от dark256 (Сообщение 962539)
Еще коммент, содержимое вашего кроссдомейна:

два каких-то левых символа в самом начале

Это BOM, сигнатура UTF-8.
Насколько я понимаю, тут она может мешать флешке обработать кроссдоменник. Флеш работает с XML ... несколько нестандартно (отлично от самого браузера - проверено опытным путем). И с нею бывают другие проблемы*
Автору бы ее убрать. Можно в в Notepad++ («Кодировки» -> «Преобразовать в UTF-8 без BOM») или просто убрать, открыв файл на редактирование в Far'e. Обычный Notepad ее не покажет.
----------------------
* По крайней мере, динамическим HTML-страницам эта сигнатура иногда сильно мешает (вплоть до непредсказуемого поведения некоторых php-скриптов, использующие кодировку UTF-8, которые генерируют страницу и требуют отсутствия каких-либо симоволов до передачи заголовков).

dark256 07.01.2011 01:28

Ну.... поскольку я вобщем-то чайник, то я использую доступные, понятные мне ХМЛ-и, которые флэшка адекватно хавает:) Не вдаваясь особо в тонкости :)

mooncar 07.01.2011 01:47

Ага, я тоже так делаю и использую Notepad++ для создания XML, у него почти отличный перекодировщик. А некоторые редакторы (тот же Блокнот) сохраняют XML с BOM...

Sinusoid 07.01.2011 02:53

попробовал сделать через xml - та же фигня. в мозилле не грузит. я в шоке. похоже, надо делать дублирующий домен.

rainbowrussia 07.01.2011 06:19

Цитата:

Сообщение от Sinusoid (Сообщение 962596)
попробовал сделать через xml - та же фигня. в мозилле не грузит. я в шоке. похоже, надо делать дублирующий домен.

Еще раз предлагаю попробовать а) убрать useCodepage; б) другой Firefox.
Даже сам Adobe не рекомендует использовать useCodepage.

Sinusoid 09.01.2011 18:51

Цитата:

Еще коммент, содержимое вашего кроссдомейна:
поправил - не помогло
Цитата:

У вас в адресной строке Firefox как выглядит адрес? Как ....рф или ....xn--p1ai ?
рф, причем я так понял, что если отображается рф, а не "демонический" линк, то тексты не грузятся, иначе все нормально.
Цитата:

Кстати теперь и в ИЕ все сдохло. Нажатие на кнопки вызывает 304 статус операци
у меня все нормально, опять же обрати внимание на линк, снова "демонические" символы
Цитата:

А у вас программно кроме текстов грузятся еще и картинки? Они отображаются нормально?
у меня почти всё грузится динамически - картинки,музыка, аудио-видео плееры,тексты, но не отображаются только тексты. все картинки, которые вы видите, они подгружены динамически. в том весь и прикол, что при одинаковых стилях прописания путей не грузятся только тексты.

Цитата:

Если картинки грузятся, то стоит все же вернуться к началу и убрать useCodepage
сделал - не помогло
Цитата:

Еще раз предлагаю попробовать а) убрать useCodepage; б) другой Firefox.
попробовал и А и Б - не помогает...

ЧТО ДЕЛАТЬ??? АААААААА

Добавлено через 3 минуты
да, еще.
при юзании httpfox при загрузке картинок, музыки и всего того, что грузится, отображается нормальный вид ссылки, откуда грузится, то есть xn--блабла./images/блабла

когда же происходит подгрузка текста, то ссылка ведет на win.mail.ru Oo что за?? оО

iNils 09.01.2011 18:57

В фф crossdomain.xml пытается загрузится с адреса http://www.%fd%f2%e0%eb%ee%ed%fa.%f0%f4/crossdomain.xml и не может, отсюда и проблемы с загрузкой данных.

Sinusoid 09.01.2011 19:13

Цитата:

В фф crossdomain.xml пытается загрузится с адреса http://www.%fd%f2%e0%eb%ee%ed%fa.%f0%f4/crossdomain.xml и не может, отсюда и проблемы с загрузкой данных.
и как это исправить?
во флэшке написано только это
Код AS1/AS2:

System.security.loadPolicyFile("http://xn--80awgdr6cp.xn--p1ai/crossdomain.xml");


mooncar 09.01.2011 19:42

Да куптие (уговорите купить) нормальный домен, а РФ для понтов оставьте, если они нужны заказчику, и с РФ просто сделайте редирект в нормальный домен.
В будущем тоже косяков немало будет, с разными браузерами, с разными технологиями.
Если разработчики браузеров еще и подумают о поддержке кириллицы в URL, то Адобу это нафиг не нужно (например, они много лет до сих пор не реализовали поддержку кириллицы в инпут-полях флешки с прозрачным фоном при публикации).

«Домены в зоне .РФ + динамческий контент = куча проблем разработчику, владельцу и пользователям. »

dark256 09.01.2011 20:27

приятель друпал к .РФ приколачивает....
все новогодние праздники.... хорошо что это аська, а не форум, можно писать то, что думаешь и чуствуешь :))))

rainbowrussia 09.01.2011 21:13

Тогда мне видится только такой вариант - заводить англоязычный домен-псевдоним и грузить флешку с него, и в нее грузить все по абсолютному англоязычному адресу. Ну или даже без домена, по ip адресу, если он у вас выделенный.
Непонял только почему при загрузке картинок не проверяется crossdomain.xml.

Sinusoid 10.01.2011 05:18

завели англоименный домен, все заработало. всем спасибо за участие.

но! все же хочется узнать как сделать так, чтобы работало и на рф зоне.

rainbowrussia 10.01.2011 08:51

Цитата:

Сообщение от Sinusoid (Сообщение 963247)
все же хочется узнать как сделать так, чтобы работало и на рф зоне.

Думаю что грамотно пока никак (думаю что браузеры должны подлатать свои коды, чтобы флеш не видел национальных символов). Вы можете с домена .РФ грузить флешку с нового домена, правда тогда во флешке придется прописать абсолютные пути на новый домен или принимать переменную во flashvars с именем нового домена. Думаю в этом случае флеш не "почует" .РФ домен вообще.

dark256 10.01.2011 12:06

Гы. Кстати. Основной трабл с .РФ имеют себе DNS-ы. Можно попробовать чисто по IP скрипты дергать и файлы грузить. http://186.185.184.183/my_scrit.php и понеслось....

alt57 16.06.2011 16:13

PS:Ребяты! Сам маюсь с подобной проблемой. Выяснил, что присутствует она начиная с ff 3.6.4. Т.е. они сделали нормальное отображение в строке навигации, а эта проблема сразу появилась. Самое обидное то, что на всех ff под ubuntu, все работает нормально.....


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

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