Flashvars передаются как набор пар имя / значение в том же формате, что и параметры GET или POST (в кодировке url).Таким образом, для имени и значения вам нужно, чтобы содержимое было строкой, правильно экранированной.Кроме жесткого кодирования строки JSON, которая подвержена ошибкам, вы можете записать свои данные в массив php assoc, затем закодировать их в JSON и затем url-кодировать.Полученная строка - это то, что вы передадите в качестве значения.
Примерно так (на самом деле я не проверял этот фрагмент!)
<?php
$preload_data = array(
"url" => "flash/someflash.swf",
"x" => "375",
"y" => "237"
);
$preload_flashvar = rawurlencode(json_encode($preload_data));
?>
var flashvars = {
xmlFile: '<?php echo $preface.$xmlpath; ?>',
preface: '<?php echo $preface; ?>',
preload: '<?php echo $preload_flashvar; ?>'
};
PS
Если подумать, вполне вероятно, что SWFObject (который вы, кажется, используете для встраивания SWF-файла) выполняет экранирование URL (через encodeURIComponent или какую-то самодельную функцию);Я не помню, так ли это, но если это так, вам не нужно вызывать rawurlencode
в вашем php-коде, так как ваши данные будут дважды закодированы в urlencoded.Я не могу проверить это прямо сейчас, но попробуйте с и без url-кодировки в php;один из двух должен работать нормально.