Невозможно извлечь flashvars в SWF - PullRequest
1 голос
/ 01 апреля 2011

У меня есть SWF, который собирает отзывы пользователей на веб-сайте. Заданные вопросы извлекаются в виде XML с использованием URL-адреса, предоставленного через flashvars, встроенный в страницу. К сожалению, это, кажется, сломалось в последней версии моего SWF.

Вот как я встраиваю объект:

<script src="swfobject.js"></script>
    <script type="text/javascript">
        swfobject.embedSWF("http://localhost/mysite/q.swf", "flashcontent", "900", "360", "9.0.0", "http://localhost/mysite/expressInstall.swf", { loadurl: escape("http://localhost/mysite/q.php?q=13") }, {}, {});
    </script>
  </head>
  <body>
    <div id="flashcontent">

    </div>
  </body>

Я пытаюсь вытащить флэшвар loadurl следующим образом:

this.loaderInfo.addEventListener(Event.COMPLETE, function(e:Event) {
                                    init();
                                 });
function init()
{
    *snip*
    loadurl = unescape((loaderInfo.parameters.loadurl));
}

Использование ExternalInterface.call() для вызова console.log в браузере выводит ноль, но в предыдущей версии (где этот код остался неизменным) он работает и выводит URL, как я и ожидал. Я могу переключаться между ними, видеть, как он работает на более ранних версиях, а затем обновляться до новых и снова выводить ноль.

Единственное изменение в этой более новой версии ресурса - это то, что я добавил символ и немного кода, чтобы добавить его на этап после загрузки XML - но это никоим образом не изменило код, получающий URL из HTML-кода страницы.

Я использую Flash CS5, и это проект ActionScript 3.0.

Кто-нибудь может подсказать, где я иду не так? Я потратил целую вечность, натягивая свои волосы на этот, поэтому любая помощь будет принята с благодарностью. Я где-то читал, что это можно сделать через ExternalInterface - будет ли это более подходящим для такого сценария, как этот? Это жизнеспособная альтернатива, если по какой-то причине я не могу заставить это работать должным образом?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 07 апреля 2011

Обходной путь здесь должен был в конечном итоге использовать ExternalInterface.call. К сожалению, я не мог понять, почему flashvars не были правильно переданы в SWF, несмотря на то, что он много возился с HTML, SWFObject и т. Д.

0 голосов
/ 01 апреля 2011

Если вы использовали ExternalInterface.call() для вызова console.log, и это сработало, но теперь возвращает ноль, то, возможно, местоположение console.log изменилось?

...