Форум 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)
-   -   Проблема с динамической загрузкой картинок в ролик (http://www.flasher.ru/forum/showthread.php?t=169439)

ashDesigner 05.10.2011 12:58

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

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

Я заметил, что проблема возникает только на WinXP на FlashPlayer 10.2.xx (последний раз смотрел 10.2.153). Версия 10.3.xx на Win7 работает отлично. На XP помогло только обновление версии FlashPlayer до 11.0.

Посмотреть трабл можно на интерактивной схеме на главной странице здесь: http://www.vent-pro.rfuture.ru/

Буду признателен за дельные советы, спасибо!

mooncar 05.10.2011 13:22

Для начала, у вас XML-документ не корректный.
В нем нет корневого элемента.
Все браузеры на это ругаются - считают первый <object> за корневой, и, поскольку за ним есть еще другие, выдают ошибку на присутствие каких-то данных после него.
Поместите весь список <object> в корневой узел, например, <objects> и внесите соотв. изменения в свой парсер.

PS. У меня XP и FP11, картинок нет ни в одном браузере.

ashDesigner 05.10.2011 13:34

А почему же тогда комментарии к картинкам загружаются? Кроме этого, XML парсится самим роликом, а не браузером.

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

mooncar 05.10.2011 13:54

Но получает XML для ролика все равно браузер.

Почему где-то работает, сказать не точно могу.
К тому же кодировка XML для флеша должна быть utf-8.
Если у вас CMS-ка генерирует XML в другой кодировке (а так оно, судя по всему, и есть), надо поправить скрипт, сделать преобразование кодировки.

PS. Запросы на картинки вообще не идут, то есть флеш их не инициирует.

ashDesigner 05.10.2011 14:49

Да, неправильную кодировку XML сейчас увидел. Скажу программисту, чтобы поправил ее: пока файл был статичным, кодировка была UTF-8, а сейчас слетела. Запросы на картинки должны быть, по идее, т.к. на Win7/FP11.0 (а также в некоторых WinXP/10.x) все работает.

Добавлено через 16 минут
Тогда получается, что принципиально нужно решить как минимум две проблемы:

1. Добавить корневой узел в XML.
2. Исправить кодировку XML-файла на UTF-8.

Надеюсь, что после этого заработает, т.к. других мыслей у меня пока ноль.

Добавлено через 46 минут
Заменил кодировку на UTF-8. Заработало, вроде. Спасибо!

dark256 05.10.2011 22:32

Вот такой кусочек еще полезен быть может при анализе полученных данных.

Код AS1/AS2:

function LoadDat( urlxml ){
 
 
        var prof:XML = new XML();
        prof.ignoreWhite = true;
        prof.load(urlxml);
 
        prof.onLoad = function(success)
        {
                if (success)
                {
                        var node = prof.firstChild
                        trace("XML LOAD NODES:"+node.childNodes.length )
 
 
                        if (prof.status != 0)
                        {
                                var errorMessage:String;
                                switch (prof.status)
                                {
                                        case -2 :
                                                errorMessage = "A CDATA section was not properly terminated.";
                                                break;
                                        case -3 :
                                                errorMessage = "The XML declaration was not properly terminated.";
                                                break;
                                        case -4 :
                                                errorMessage = "The DOCTYPE declaration was not properly terminated.";
                                                break;
                                        case -5 :
                                                errorMessage = "A comment was not properly terminated.";
                                                break;
                                        case -6 :
                                                errorMessage = "An XML element was malformed.";
                                                break;
                                        case -7 :
                                                errorMessage = "Out of memory.";
                                                break;
                                        case -8 :
                                                errorMessage = "An attribute value was not properly terminated.";
                                                break;
                                        case -9 :
                                                errorMessage = "A start-tag was not matched with an end-tag.";
                                                break;
                                        case -10 :
                                                errorMessage = "An end-tag was encountered without a matching start-tag.";
                                                break;
                                        default :
                                                errorMessage = "An unknown error has occurred.";
                                                break;
                                }
                                trace ( "XML Structure Error:"+prof.status+" - "+errorMessage );
                        }
                        else
                        {
                                // Парсим и работаем далее
                        }                               
 
                }
                else
                {
                        trace ( "XML LOAD ERROR: "+urlxml );
                }
        }
}


ashDesigner 10.10.2011 13:58

Вложений: 1
Друзья, всем большое спасибо за комменты: кодировку сменил, добавил в структуру корневой узел, добавил в код трассировку статусов (dark256) - НО! Начались какие-то странные вещи.

Конкретнее, внутри клипов, динамически размещаемых на схеме, перестали корректно отображаться текстовые поля, связанные с переменными (dynamic text) - речь идет о названии и кратком комментарии для каждого из блоков на схеме. Текст отображается какими-то фрагментами. А картинки не загружаются вообще. Тем не менее, когда в _root я добавил dynamic text для отображения процесса загрузки и отработки скрипта, в этом поле любой текст, включая все названия и пути к файлам отображаются совершенно адекватно. И все это произошло, когда я перешел на версию Flash CS5 и перекомпилировал клип после внесения изменений в код.

В общем, я теперь вообще не могу понять, в чем там дело. Есть идеи? Исходник клипа - в приложении.

mooncar 10.10.2011 14:50

По тексту - внедрите шрифт в динамические поля (выделяете поле, жмете кнопочку Embed, выбираете нужные наборы глифов - обычно достаточно - цифры, пунктуацию, базовые латинские, кириллицу).

И еще - не пользуйтесь в дальнейшем ассоциированными переменными, задавайте свойство text у поля, задав ему имя:
Код AS1/AS2:

myTextField.text = 'Использование ассоциированных переменных может привести к неожиданным проблемам';


ashDesigner 10.10.2011 14:54

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

mooncar 10.10.2011 14:56

Цитата:

Сообщение от ashDesigner (Сообщение 1038136)
Насчет ассоциированных переменных: вы имеете в виду, что вместо указания "var" в свойствах динамического текста следует дать этому поле имя - и тогда уже обращаться к его свойству ".text", как в примере?

Именно. Разумеется, свойство должно назначаться, когда поле присутствует в области видимости.
И второе - не пишите код на объектах. Причин много, просто так не делайте и всё.


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

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