帮助检查嵌入代码AS3中的flashVars值

帮助检查嵌入代码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文件 更新代码我写了很多注释来解释我要做的事情:( 嵌

希望能在目前这个令人沮丧的问题上得到一些指导和帮助

起初我认为我的Try/Catch语句有问题,但实际上我的问题只是尝试在If/Else语句中进行检查,看看我的Flash播放器是否可以从flashVar获取任何数据。如果flashVar VID=great,则从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;
    }