我一直在Flash媒體服務器下爲應用程序實例獲取'null'。我似乎無法從一個函數傳遞值到另一個功能AS3在兩個函數之間連接xml中的rtmp連接字符串
XML示例
<bsettings>
<obj title="instance">19046</owner>
<obj title="id">uniqueid</owner>
<obj title="name">somename</owner>
<obj title="date">08/01/2012</owner>
<obj title="gender">female</owner>
</bsettings>
AS3代碼
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
applicationComplete="initConnection(event)">
private var xinstance:String;
private var xmlstring:String = "http://www.blah.com/blahblah.xml";
protected function getXML():void{
XML.ignoreWhitespace = true;
var myXML:XML;
var myLoader:URLLoader=new URLLoader();
myLoader.load(new URLRequest(xmlstring));
myLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void {
myXML = new XML(e.target.data);
for (var i:int = 0; i<myXML.*.length(); i++){
xinstance = myXML.obj[0];
xblah = myXML.obj[1];
xblah1 = myXML.obj[2];
xblah2 = myXML.obj[3];
xblah3 = myXML.obj[4];
}
}
}
private function initConnection(event:FlexEvent):void{
getXML();
//problem here, the xinstance isn't saved in the fmsstring
var fmsstring:String = "rtmp://blah.com/appname/" + xinstance;
nc = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
nc.connect(fmsstring);
nc.client = this;
}
您似乎不會聲明'xinstance'eg。私人變種xinstance:字符串。此外,您循環訪問xml列表併爲每個迭代的xinstance分配一個值。發佈你的XML文檔,我會給你一些關於如何更好地實現這一點的提示。 – BadFeelingAboutThis 2012-08-08 00:52:47
我添加了XML示例數據並已聲明xinstance,但忘記將其複製過 – Patriotec 2012-08-08 01:03:47
更新了我的答案,如果它不起作用請評論它。 – BadFeelingAboutThis 2012-08-08 01:11:35