Во-первых, я использую Flash CS5.5, AS3.
Я пытаюсь передать переменные, представляющие имя и адрес электронной почты, в SWF-файл.SWF делает снимок с веб-камеры пользователя и отправляет изображение в файл save.php для дальнейшей обработки.В настоящее время у меня есть текстовые поля, чтобы пользователь мог ввести имя и адрес электронной почты, но я бы хотел их исключить и добавить информацию за кулисы.В основном это то, что я пытаюсь выполнить:
1.Page loads and stores name and email address in variables(index.php).
2.I'd like to pass name and email address variables to flash to be included with
the image the swf sends to a php file for processing (save.php)
3.Page loads flash content(take_picture.swf) and does it's thing.
Я работал в аналогичной ситуации, используя Zend AMF, где swf получает всю информацию, переданную обратно с другой страницы, обращающейся к базе данных.Здесь у меня есть данные, которые мне нужны без доступа к базе данных.Я пробовал много вариантов, используя FlashVars, но пока ничего не получалось.Кажется, мне не хватает одной вещи, когда я публикую fla, в HTML-коде, который публикует Flash, нет ac_fl_runcontent
.И <embed src=...
тоже нет.Этот div - тело html-файла, который мне дает Flash:
<div id="flashContent">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="760" height="1000" id="take_picture" align="middle">
<param name="movie" value="take_picture.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="wmode" value="window" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="sameDomain" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="take_picture.swf" width="760" height="1000">
<param name="movie" value="take_picture.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="wmode" value="window" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="sameDomain" />
<!--<![endif]-->
<a href="http://www.adobe.com/go/getflash">
<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
</a>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</div>
Я пробовал <param name="FlashVars" value="first_name=<?php echo $first_name; ?>&email=<?php echo $email ?>" />
с чем-то вроде this.loaderInfo.parameters.first_name
и this.loaderInfo.parameters[first_name]
на панели действий вместе с некоторыми другимивещи, но еще не заставили его работать.Любая помощь будет оценена.
Большое спасибо,
Марк
РЕДАКТИРОВАТЬ: Это моя последняя попытка:
var f_name:String;
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
f_name = String(paramObj[first_name]);
first_name.text=f_name;
С этим вhtml:
<param name="FlashVars" value="first_name=<?php echo $first_name; ?>"/>