Необычное поведение доступа XML в .NET WebBrowser между Action Script 2 и Action Script 3 - PullRequest
0 голосов
/ 30 сентября 2011

Я начал обсуждение проблемы с SWF-файлом, не загружающим файл данных XML при визуализации в элементе управления .NET WebBrowser (см. здесь )

Дальнейшие исследования показали, что если файл данных XML загружается с использованием Action Script 2 (через XML.load ()), он работает. Но если в рассматриваемом SWF-файле используется Action Script 3 (я думаю, что через URLLoader.load ()), файл данных НЕ загружается, ЕСЛИ файл XML не находится в той же папке, что и файл HTML.

Если какой-либо SWF-файл загружен с использованием Internet Explorer 9, то все работает нормально.

Есть ли какие-либо известные проблемы (которые, очевидно, были бы хорошо скрыты от поисковых систем Интернета, потому что мы их опережали), касающиеся производительности SWF + Action Script 3 + .NET WebBrowser?

Просто так странно, что есть способы заставить решение AS3 работать, перемещая файлы (на самом деле не вариант того, что мы хотим сделать), и у Internet Explorer 9 нет проблем, кроме элемента управления WebBrowser (который каждый Говорит, "это просто оболочка для IE") НЕ работает так же.

Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 20 марта 2012

Я добавлю заключение к грязной саге ...

В ходе обсуждений с Microsoft и Adobe мы решили, что это действительно проблема с элементом управления Flash ActiveX, используемым в элементе управления WebBrowser.,Adobe описывает это как «неподдерживаемый вариант использования», и это конец истории.Там не будет "исправить".Мне удалось воспроизвести проблему и с помощью элемента управления ActiveX WebBrowser, так что это не только вещь .NET.И, как уже упоминалось, используемая версия ActionScript также способствует успеху или провалу.

Что в конечном итоге было сделано, так это динамически корректировать тег <base> в общем HTML-документе во время загрузки и указывать ссылку на папку, содержащую файлы SWF и XML.Кажется глупым, но это работает.

0 голосов
/ 30 сентября 2011

На самом деле, это не проблема кросс-браузера - SWFObject не является волшебной пулей в этом отношении.Сначала мы столкнулись с проблемой при использовании SWFObject и удалили ее из уравнения, чтобы убедиться, что она относится только к элементу управления C # WebBrowser (а не к какому-либо конкретному браузеру).

Проблема связана с передачей BASEинформация о параметрах для управления C #.Похоже, что успешно прошло при запуске в IE, Firefox и других.Только в контексте элемента управления C # WebBrowser эти данные, похоже, теряются.И, в частности, только в случае SWF AS3 в отличие от SWF AS2.Используя стандартные операции загрузки для каждого случая, просто читая файл, где базовый путь указан на HTML-странице хоста, используя самый простой метод встраивания (без специальных каркасов или API), эта информация (данные параметра BASE), по-видимому, являетсяне принимается Flash в случае файлов AS3.Кажется, что он постоянно принимается и обрабатывается файлами AS2, и файл может быть найден.

Это довольно неприятно, и немного удивительно, что мы не смогли найти больше сообщений людей, имеющихпроблема.В любом случае, это не проблема кросс-браузера, как таковая.Все браузеры работают должным образом с параметром BASE.Проблема проявляется только в этом случае использования элемента управления C # WebBrowser.Как будто он не поддерживает новый движок AS3 или что-то в этом роде.

В любом случае, я надеюсь, что это несколько прояснит проблему ...

...