希望有一点方向,并帮助解决令人沮丧的问题。
最初我认为这是我的Try / Catch语句的问题,但实际上我的问题实际上只是尝试检查If / Else语句以查看我的Flash播放器是否可以从flashVar获取任何数据。如果flashVar VID = great,则Else从XML文件中读取。
基本上这就是我需要发生的事情:
更新后的代码我提出了很多意见来解释我正在尝试做的事情:(
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>
答案 0 :(得分:3)
尝试和捕获是捕获错误,而不是简单的条件。
您只需要:
if(stage.loaderInfo.parameters["VID"])
{
... load the embed version
}else{
... load the xml version
}
答案 1 :(得分:2)
你能不能尝试这样的事情......
function init():void
{
// check to see if loaderInfo params are available
// if they are initalise vars and run setup()
// else load xml, parse it, and then call setup()
if(root.loaderInfo.parameters.hasOwnProperty("VID") && root.loaderInfo.parameters.VID != null)
{
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;
// comScore
c1 = root.loaderInfo.parameters.c1;
c2 = root.loaderInfo.parameters.c2;
c3 = root.loaderInfo.parameters.c3;
c4 = root.loaderInfo.parameters.c4;
c5 = root.loaderInfo.parameters.c5;
setup();
}
else
{
// variables in URL not FlashVars: http://mysite.com/player.swf?VID=13&CHID=2
varVid = urlVars.VID
varChid = urlVars.CHID
xmlURL = "http://www.mysite.com/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();
}
function setup():void
{
drawVideo();
drawSplash();
drawControls();
drawBorder();
vd.playerCntrls = pc;
pc.videoDsply = vd;
pc.scrnButton = sp;
}