Немного подробного объяснения ниже, с, надеюсь, кратким кратким описанием вопроса здесь:
Может ли элемент управления .NET WebBrowser (64-разрядная версия Win7, IE9, текущая версия Flash 10.3.183.7) загружать SWF-файл в тег , где SWF-файл находится в отдельной папке, которая также содержит файл данных XML таким образом, чтобы SWF-файл загружался и отображал данные XML?
ОБНОВЛЕНИЕ : Добавлена дополнительная информация ниже, основанная на некоторых дальнейших экспериментах ...
Гори, деталь:
Это мучило меня на пару дней. Учтите следующее:
C:\dev\wb.exe
- программа, использующая веб-браузер для отображения локального SWF-файла с диска
c:\data\mySWF.swf
- SWF-файл, который я хочу воспроизвести
c:\data\myData.xml
- файл с данными, которые ищет mySWF.swf
C:\html\index.html
- HTML-файл, загруженный wb.exe. Этот файл имеет тег для настройки элемента управления Flash ActiveX, воспроизводящего c: \ data \ mySWF.swf.
Первоначально, это началось с использования swfobject.js
, и когда я не увидел ожидаемых результатов, я продолжал упрощаться, пока не дошел до того, что у меня нет ничего, кроме HTML-файла без дополнительных библиотеки.
Если я загружаю index.html
в IE9, это работает. Я вижу, что SWF-файл воспроизводится с данными из загруженного XML-файла.
Когда я запускаю wb.exe, он загружает файл C:\html\index.html
, и я вижу воспроизведение SWF. Но поля данных пусты. Если я копирую index.html в C:\data\index.html
и загружаю его в wb.exe, ТОГДА я вижу свои данные.
Мой файл index.html:
<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
* {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
overflow: hidden;
}
</style>
</head>
<body MARGINWIDTH="0" MARGINHEIGHT="0" LEFTMARGIN="0" RIGHTMARGIN="0" TOPMARGIN="0" BOTTOMMARGIN="0">
<object type="application/x-shockwave-flash" width=100%" height="100%" id='player1' name='player1'>
<param name='movie' value='C:\data\mySWF.swf'>
<param name='allowfullscreen' value='true'>
<param name='allowscriptaccess' value='always'>
<param name='base' value='C:\data\'>
<param name='menu' value='false'>
<param name='quality' value='best'>
<param name='scale' value='exactfit'>
</object>
</body>
</html>
Параметр base
, казалось, был частью того, чтобы заставить это работать, но я заблуждаюсь относительно того, почему (или могу ли я) заставить элемент управления ActiveX Flash работать так, как мне нужно, без необходимости загружать HTML-файл из той же папки, что и SWF-файл.
ОБНОВЛЕНИЕ: Если я помещаю файл myData.xml в папку C: \ html и загружаю из C: \ html \ index.html, я получаю значения данных в SWF. Таким образом, похоже, что плагин Flash использует путь к файлу index.html, а НЕ базовый параметр.
ОБНОВЛЕНИЕ: Мы выяснили, в результате дополнительных экспериментов, что эта проблема НЕ возникает, если SWF-файл использует Action Script 2 (AS2) для обработки XML (через XML.load ()), но SWF-файл файл с использованием Action Script 3 (AS3) (через URLLoader.load ()) НЕ работает должным образом. Это становится еще более странным.
Я ценю ваше терпение, если вы застряли так далеко, и, надеюсь, вы сможете рассказать мне о моей проблеме.
Спасибо.