帮助检查嵌入代码AS3中的flashVars值
希望能在目前这个令人沮丧的问题上得到一些指导和帮助 起初我认为我的Try/Catch语句有问题,但实际上我的问题只是尝试在If/Else语句中进行检查,看看我的Flash播放器是否可以从flashVar获取任何数据。如果flashVar VID=great,则从XML文件读取 基本上这就是我需要发生的事情:帮助检查嵌入代码AS3中的flashVars值,flash,actionscript-3,if-statement,try-catch,Flash,Actionscript 3,If Statement,Try Catch,希望能在目前这个令人沮丧的问题上得到一些指导和帮助 起初我认为我的Try/Catch语句有问题,但实际上我的问题只是尝试在If/Else语句中进行检查,看看我的Flash播放器是否可以从flashVar获取任何数据。如果flashVar VID=great,则从XML文件读取 基本上这就是我需要发生的事情: 检查是否存在flashVar值 如果是这样,则加载其他类文件,而不获取XML文件 如果没有,则运行Catch语句中的代码并加载XML文件 更新代码我写了很多注释来解释我要做的事情:( 嵌
- 检查是否存在flashVar值
- 如果是这样,则加载其他类文件,而不获取XML文件
- 如果没有,则运行Catch语句中的代码并加载XML文件
Try-and-catch是捕获错误,而不是简单的条件 您所需要的只是:
if(stage.loaderInfo.parameters["VID"])
{
... load the embed version
}else{
... load the xml version
}
你不能试试这样的东西吗
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;
}
你调查过被捕获的异常吗?我假设它是一个NullReference,但是..我不确定异常会是什么?我想NullReference听起来不错,但不确定该写什么。谢谢,尝试一下,但是现在URL版本或嵌入版本都不起作用。应该是这个阶段吗?有什么区别吗?@Leon-试试下面是:
if(loaderInfo.parameters.VID)/*…*/
有效!Thx www0z0k:)和bjornson,以及其他建议将我的Try/Catch更改为if/elseThanks的人!尝试这些仍然不起作用,我将更新我的问题,因为它不是关于Try/Catch,而是如何检查页面上是否有特定的FlashVar。
if(stage.loaderInfo.parameters["VID"])
{
... load the embed version
}else{
... load the xml version
}
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;
}