これが問題のパート 1 (動的に生成された XML ファイルを PHP として Flash にロードする)です。
これで、Flash に XML ファイルを読み取らせることができましたが、実際の Flash プログラムからテスト (テスト ムービー) した場合にのみ、Flash が正しくレンダリングされることを確認できます。ただし、ファイルをオンラインでアップロードしてプレビューすると、Flash が正しくレンダリングされず、いくつかの重要な情報 (サムネイル、タイトル、ビデオなど) が失われます。
追加情報:
ドメイン 1 に SWF ファイルが存在する ドメイン 2 に XML と PHP ファイルの両方が存在し、埋め込みコードを含む HTML ファイルがドメイン 3 に存在する
これがクロスドメインの問題である可能性があるかどうか疑問に思っていますか? これらのファイルの 1 つをドメイン 1 と 2 に配置してアクセスできますが、ドメイン 3 には crossdomain.xml ファイルを配置できません。
PHPコードは次のとおりです。
$xml = new XMLWriter();
$xml->openMemory();
$xml->setIndent(true);
$xml->setIndentString("\t");
$xml->startDocument();
$xml->startElement('data');
$xml->startElement('config');
$xml->startElement('hex');
$xml->writeCData('0x' . $widget_profile['background_color']);
$xml->endElement();
$xml->startElement('width');
$xml->writeCData($widget_profile['width']);
$xml->endElement();
$xml->startElement('height');
$xml->writeCData($widget_profile['height']);
$xml->endElement();
$xml->startElement('fullscreen');
$xml->writeCData('false');
$xml->endElement();
$xml->startElement('special');
$xml->writeCData('false');
$xml->endElement();
$xml->startElement('specialName');
$xml->writeCData('Tools & Offers');
$xml->endElement();
$xml->startElement('specialLink');
$xml->writeCData('XXXXXX');
$xml->endElement();
$xml->startElement('client');
$xml->writeCData($widget_profile['site_url']);
$xml->endElement();
$xml->endElement();
if (count($widget_content) > 0) {
foreach ($widget_content as $tab) {
$xml->startElement('tab');
$xml->writeAttribute('id', $tab['tabname']);
if (count($tab['video']) > 0) {
foreach ($tab['video'] as $video) {
$video_sql = "select VID, flvdoname, title
from video
where VID='" . $video . "'";
$video_result = $howdini->query($video_sql);
if ($video_result->rowCount() > 0) {
foreach ($video_result as $video_row) {
$video_row['flvdoname'] = substr($video_row['flvdoname'], 35, -4);
$xml->startElement('vid');
$xml->writeAttribute('flv', $video_row['flvdoname']);
$xml->writeAttribute('thumb', 'XXXXXXXXX' . $video_row['VID'] . '.jpg');
$xml->writeAttribute('title', $video_row['title']);
$xml->endElement();
}
}
}
}
$xml->endElement();
}
}
$xml->endElement();
$xml->endDocument();
header('Content-Type: text/xml; charset=UTF-8');
echo $xml->flush();
ご回答ありがとうございます。編集:変更を含めたので、Firebug は XML を認識します。現在、swf ファイルが表示されていませんが、ページの他の部分に swf ファイルが表示されています。