【发布时间】:2011-02-03 18:21:36
【问题描述】:
希望能得到一些指导并帮助解决现在令人沮丧的问题。
最初我认为这是我的 Try / Catch 语句的问题,但实际上我的问题实际上只是尝试检查 If / Else 语句以查看我的 Flash 播放器是否可以从 flashVar 获取任何数据。如果 flashVar VID = 很好,则从 XML 文件中读取。
基本上这就是我需要发生的事情:
- 检查是否有 flashVar 值
- 如果是,则加载其他类文件,不要获取 XML 文件
- 如果没有,则运行 Catch 语句中的代码并加载 XML 文件
更新的代码我放了很多 cmets 来解释我要做什么:(
public function playerLive():void
{
// Attempt to load from HTML EMBED
// Maybe the problem is here?
// Tried different syntax / keywords no luck so far
//if (this.loaderInfo.parameters["VID"])
//if (stage.loaderInfo.parameters["file"])
//if (this.loaderInfo.parameters.hasOwnProperty("file"))
if(root.loaderInfo.parameters.hasOwnProperty("VID") && root.loaderInfo.parameters.VID != null)
{
// Trying keyword root
varVid = root.loaderInfo.parameters.VID;
varChid = root.loaderInfo.parameters.CHID;
vidURL = root.loaderInfo.parameters.file;
vidSplit = vidURL.split(".flv")[0].split("/");
vidTitle = root.loaderInfo.parameters.title;
vidKey = root.loaderInfo.parameters.keyURL;
// - Trying keyword stage
/*varVid = stage.loaderInfo.parameters.VID;
varChid = stage.loaderInfo.parameters.CHID;
vidURL = stage.loaderInfo.parameters.file;
vidSplit = vidURL.split(".flv")[0].split("/");
vidTitle = stage.loaderInfo.parameters.title;
vidKey = stage.loaderInfo.parameters.keyURL;*/
// - Trying keyword this
/*varVid = this.loaderInfo.parameters.VID;
varChid = this.loaderInfo.parameters.CHID;
vidURL = this.loaderInfo.parameters.file;
vidSplit = vidURL.split(".flv")[0].split("/");
vidTitle = this.loaderInfo.parameters.title;
vidKey = this.loaderInfo.parameters.keyURL;*/
setup();
} else {
varVid = urlVars.VID
varChid = urlVars.CHID
xmlURL = "http://www.howdini.com/H_player_xml.php?VID="+varVid+"&CHID="+varChid;
readXML();
}
// The old code
/*try {
varVid = this.loaderInfo.parameters.VID;
varChid = this.loaderInfo.parameters.CHID;
vidURL = this.loaderInfo.parameters.file;
vidSplit = vidURL.split(".flv")[0].split("/");
vidTitle = this.loaderInfo.parameters.title;
vidKey = this.loaderInfo.parameters.keyURL;
setup();
// Facebook Player
} catch (e) {
varVid = urlVars.VID
varChid = urlVars.CHID
xmlURL = "http://www.howdini.com/H_player_xml.php?VID="+varVid+"&CHID="+varChid;
readXML();
}
}*/
}
function readXML():void
{
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, onXmlLoadSuccess);
loader.addEventListener(IOErrorEvent.IO_ERROR, onXmlLoadFailed);
loader.load(new URLRequest(xmlURL));
}
function onXmlLoadFailed(event:IOErrorEvent):void
{
//xml failed to load;
}
function onXmlLoadSuccess(event:Event):void
{
//parse your xml, then run setup;
setup();
}
嵌入代码的样子(出于安全原因重命名了一些值):
<object width=450 height=292 border=0 >
<embed src="http://dev.mysite.com/flvplayer_lite.swf" width="450" height="292"
flashvars="file=http://limelightserver.net/o18/VideoName.flv&VID=13&CHID=6&title=Video Title&keyURL=118258&autostart=false&showfsbutton=false&c1=1&c2=8430754&c3=8430754&c4=Category Namec5=02" type="application/x-shockwave-flash" border="0" wmode="transparent">
</embed>
</object>
【问题讨论】:
-
您是否调查过正在捕获的异常?我假设它是一个 NullReference 但是..
-
我不确定会有什么例外?我猜 NullReference 听起来不错,但不知道该怎么写。
标签: flash actionscript-3 if-statement try-catch