[使用手动生成的XML文件进行闪存][2]
^使用:【XML文件】【3】
[flash using php generated xml file][4]
^用途:【PHP生成的xml文件】【5】
<>
我搜索了批量加载程序wiki,了解如何加载PHP文件以及如何加载类型信息,发现了以下信息:[
http://code.google.com/p/bulk loader/][6]
bulkainstance.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'变量是从HTML的flashvars获得的
private function init(e:event=null):void
{
removeEventListener(event.added_to_stage,init);
stage.scaleMode=阶段缩放模式。无缩放;
stage.align=StageAlign.Top_Left;
xml=this.loaderinfo.parameters.thexml;
装载机=新的散装装载机(“散装”);
loader.loglevel=bullkloader.log_信息;
loader.addEventListener(bulkloader.complete,onBulkloadComplete);
loader.addEventListener(Bulkloader.progress,onBulkloadProgress);
/*——————————————————————————测试*/
//以下是手动XML,在本地和联机测试时可用
//loader.add(“client_user.xml”,id:“xmldata”));
//下面使用php生成的xml,在flash中测试时有效,但在其他地方无效
//loader.add(“---xml path removed---”,id:“xmldata”,type:“xml”,maxtries:6,preventcache:true);
/*————————————————————————现场*/
//loader.add(thexml,id:“xmldata”);
loader.add(thexml,id:“xmldata”,type:“xml”,maxtries:6,preventcache:true);
加载器.Stand();
}
< /代码>
onBulkloadComplete code
private function onBulkLoadComplete(e:event):void
{
跟踪(“[Bulkloader]完成“+”\r”);
global.xml=loader.getxml(“xmldata”);
hex=global.xml.config.hex.toString(),id:“hex”
globalWidth=global.xml.config.width.toString();
global height=global.xml.config.height.toString();
videoheight=(全局高度-(thumbmenuh+videoy+spacedbtn));
controlsy=(视频高度+视频);
trace(“_·_·_·_·_·_·_·_·_·_·_·_·_·_·配置_·_·_·_·_·_·_·_·_·_·_·_·_·_·_·_”);
//跟踪(“hex=”+hex);
//trace(“globalwidth=”+globalwidth);
//trace(“globalheight=”+globalheight);
//trace(“········································································································································194···········
//跟踪(“r”);
//————————————————————————————————————————XML数组
VaR x,I;
for(global.xml.tab中的x){
对于(global.xml.tab[x].vid中的i){
videos.push(global.xml.tab[x].vid[i].@flv);
thumbtitles.push(global.xml.tab[x].vid[i]。@title);
thumbpath.push(global.xml.tab[x].vid[i].@thumb);
}
}
//——————————————————————————————————————————XML数组
videoname=videos[0];//当前视频是第一个视频
缺点接地();
DouthVIEW();
绘图控件();
drawtabmenu();
//——————————————————————————————查找要加载的默认图像/视频
for(global.xml.tab中的x){
对于(global.xml.tab[x].vid中的i){
if(global.xml.tab[x].vid[i]。@default==“true”)。{
//覆盖显示中的任何FLV队列
firsttitle=global.xml.tab[x].vid[i]。@title;
vd.flvpath=global.xml.tab[x].vid[i]。@flv;
//加载默认缩略图
加载器=新的散装加载器(“拇指”);
loader.addEventListener(bulkloader.complete,onthumbComplete);
loader.add(new urlrequest(global.xml.tab[x].vid[i].@thumb),id:“defaultThumbnail”);
加载器.Stand();
断裂;
}
}
}
}
< /代码>
html嵌入代码:
<div>
<h2>在外部域上测试10个播放器</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“/gt;
<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=shockwave flash“type=”application/x-shockwave-flash“width=”301“height=”353“>
& /嵌入& gt;
& /对象& GT;
&L/DIV & GT;
< /代码>
问题:
1)如何在flash中加载以.php结尾的动态生成的xml文件,并在html中正确呈现flash
<>
< H2>更新< /H2>
我们使用flash读取PHP生成的XML文件,但是我们只能在flash内部“测试影片”时查看工作结果。当我们尝试让它在本地或联机的HTML页面中工作时,它将无法正确呈现。
我正在使用[批量加载程序库][1]进行所有加载。
目前我的flash只能加载一个手工创建的xml文件,我需要flash来加载一个php生成的xml文件,如下所示:
---XML路径已删除---
当我使用该PHP生成的XML文件在Flash中测试电影时,它将起作用,但是问题在于当我尝试在HTML页面中本地测试或在线测试时。由于从XML获取数据时出现问题,Flash无法完全呈现。
以下是一些显示我现在在哪里的链接:
^用途:【XML文件】【3】
^用途:【PHP生成的XML文件】【5】
我在批量加载程序wiki上搜索了如何加载PHP文件以及如何加载类型信息,发现了:[
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文件的代码:
’塞克斯ML'变量从HTML的flashvars获取
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();
}
散装货物完整代码
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)如何在flash中加载以.php结尾的动态生成的xml文件,并在html中正确呈现flash
更新
我们使用flash读取PHP生成的XML文件,但是我们只能在flash内部“测试影片”时查看工作结果。当我们尝试让它在本地或联机的HTML页面中工作时,它将无法正确呈现。