Вопрос обновлен для Bounty
Во Flash мне нужно загрузить динамически сгенерированный файл XML, созданный с помощью PHP.
Я использую [Bulk-loader library] [1] для всей моей загрузки.
В настоящее время мой Flash может загружать только XML-файл, созданный вручную, для этого мне нужно, чтобы Flash загружал XML-файл, сгенерированный PHP, например так:--- Путь XML удален ---
Когда я тестирую фильм во Flash с использованием этого XML-файла, сгенерированного PHP, он будет работать, однако проблема заключается в том, что я пытаюсь выполнить локальное тестирование на странице HTML или в Интернете.Flash не отображается полностью из-за проблем с получением данных из XML.
Вот несколько ссылок, чтобы показать, где я сейчас нахожусь:
[FLASH с использованием сгенерированного вручную XML-файла] [2]^ Использует: [XML-файл] [3]
[Flash с использованием сгенерированного PHP файла XML] [4]^ Использует: [PHP сгенерированный XML-файл] [5]
Я искал вики Bulk-Loader о том, как загрузить файл PHP и информацию о типе загрузки, и нашел это: [http://code.google.com/p/bulk-loader/][6]
bulkInstance.add("http://mysite.com/top-ten.php", {type:"text"});
bulkInstance.add("http://mysite.com/top-ten.php", {type:"xml"});
bulkInstance.add("http://mysite.com/top-ten.php", {type:"image"});
Фрагменты кода
Вот мой текущий код, который загружает файл XML: Переменная ' theXML ' получается из FlashVars из HTML
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
theXML = this.loaderInfo.parameters.theXML;
loader = new BulkLoader("bulky");
loader.logLevel = BulkLoader.LOG_INFO;
loader.addEventListener(BulkLoader.COMPLETE, onBulkLoadComplete);
loader.addEventListener(BulkLoader.PROGRESS, onBulkLoadProgress);
/* ------------------------------------------- TESTING */
//Below is manual XML, works when tested local & online
//loader.add("client_user.xml",{id:"xmldata"});
//Below uses PHP generated XML, works when tested in Flash, but no where else
//loader.add("--- XML path removed ---",{id:"xmldata", type:"xml", maxTries: 6, preventCache:true});
/* ------------------------------------------- LIVE */
//loader.add(theXML,{id:"xmldata"});
loader.add(theXML,{id:"xmldata", type:"XML", maxTries: 6, preventCache:true});
loader.start();
}
onBulkLoadПолный код
private function onBulkLoadComplete(e:Event):void
{
trace("[BulkLoader] COMPLETE"+"\r");
Global.xml = loader.getXML("xmldata");
HEX = Global.xml.config.hex.toString(),{id:"hex"};
globalWidth = Global.xml.config.width.toString();
globalHeight = Global.xml.config.height.toString();
videoHeight = (globalHeight - (thumbMenuH + videoY + spacedBtn));
controlsY = (videoHeight + videoY);
trace("············· Config ·············");
//trace(" HEX = "+HEX);
//trace(" globalWidth = "+globalWidth);
//trace(" globalHeight = "+globalHeight);
//trace("··································");
//trace("\r");
// ------------------------------------------------------ XML ARRAY
var x, i;
for(x in Global.xml.tab) {
for(i in Global.xml.tab[x].vid) {
videos.push(Global.xml.tab[x].vid[i].@flv);
thumbTitles.push(Global.xml.tab[x].vid[i].@title);
thumbPaths.push(Global.xml.tab[x].vid[i].@thumb);
}
}
// ------------------------------------------------------ XML ARRAYS
videoName = videos[0]; // Current video is the 1st video
drawBackground();
drawVideo();
drawControls();
drawTabMenu();
// -------------------------------- FIND DEFAULT IMAGE/VIDEO TO LOAD
for(x in Global.xml.tab) {
for(i in Global.xml.tab[x].vid) {
if (Global.xml.tab[x].vid[i].@default == "true") {
//override any flv qued in the display
firstTitle = Global.xml.tab[x].vid[i].@title;
vd.flvPath = Global.xml.tab[x].vid[i].@flv;
//load the default thumbnail
loader = new BulkLoader("thumb");
loader.addEventListener(BulkLoader.COMPLETE, onThumbComplete);
loader.add(new URLRequest(Global.xml.tab[x].vid[i].@thumb),{id:"defaultThumbnail"});
loader.start();
break;
}
}
}
}
HTML-код для вставки:
<div>
<h2>Testing TEN player on external domain</h2>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="301" height="353">
<param name="movie" value="http://www.domain1.com/N/N.swf">
<param name="quality" value="high">
<param name="flashVars" value="theXML=http://dev.domain2.com/admin2/client.php?id=2" />
<embed src="http://www.domainname.com/N/N.swf" flashVars="theXML=http://dev.domain2.com/admin2/client_user.php?id=2" allowscriptaccess="always" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="301" height="353">
</embed>
</object>
</div>
Вопрос:
1) Как загрузить динамически сгенерированный XML-файл, заканчивающийся на .php во Flash, и правильно отобразить Flash в HTML
ОБНОВЛЕНИЕ
Мы получили Flash для чтения сгенерированного PHP-файла XML, однако мы можем просматривать рабочие результаты только тогда, когда мы тестируем фильм изнутри Flash.Когда мы пытаемся заставить его работать на HTML-странице локально или онлайн, он не будет правильно отображаться.