как я могу загрузить SWF-файл в другой SWF-файл с помощью файла чтения php и сохранить параметры URL-адреса?

Я использую php для чтения файла (указанного файлом cookie на компьютере пользователя) с помощью функции readfile (). файл, который я читаю, является флэш-файлом actionscript 3, правильная работа которого зависит от файла конфигурации, добавленного к URL-адресу.

пример: http://www.pathToFlash.com/file.swf?CONFIG_URL=http://www.pathToConfig.com/config.xml

Когда я использую readfile - заголовки устанавливаются правильно, и swf возвращается браузеру, который затем его запускает. Я обнаружил, что при использовании этого метода файл конфигурации (CONFIG_URL) должен быть добавлен к URL-адресу php-файла, чтобы его правильно прочитал swf - поскольку swf считает путь к собственному файлу php.

Это нормально, когда задействованы только два элемента, но при загрузке комбинации php> read (swf) в другой swf-файл 'read' возвращает нулевой URL-адрес (с использованием this.root.loaderInfo.url) и, следовательно, не может выполняться должным образом из-за отсутствия файла конфигурации (CONFIG_URL).

Мой вопрос: как я могу загрузить SWF-файл со страницы php (используя readfile, fopen, что угодно) и передать параметры $ get?


person nathan king    schedule 11.03.2011    source источник


Ответы (1)


Прежде всего: this.root.loaderInfo.url должно быть: this.root.loaderInfo.parameters.url.

Во-вторых, доступ к root.loaderInfo.parameters возможен только из корневого swf. Это означает, что вы не можете сказать php: load.php? Swf = second.swf & someParameter = 1234 внутри swf и напрямую проанализировать какой-либо параметр для загруженного swf.

Решение (есть и другое):

  1. Все эти параметры нужно выставить для root.swf (при его загрузке)

mainConfig = xml / config.xml secondSWFconfig = xml / secondconfig.xml

и так далее...

  1. во втором.swf, который будет загружен root.swf, вам нужно создать функцию:

    общедоступная функция устанавливает параметры (значение: объект) {// здесь все назначение параметров}

  2. В функции root.swf, которая запускается после загрузки second.swf:

    частная функция onSecondSWFLoaded (e: Event): void {e.currentTarget.content ['parameters'] = this.root.loaderInfo.parameters; }

И тогда во втором swf вы получите эти параметры, и после них вы сможете запускать все, что вам нужно.

С уважением.

person Jevgenij Dmitrijev    schedule 13.03.2011