参数url必须为非null

时间:2010-11-02 21:28:28

标签: flash actionscript flashvars adobe-flash-cs3

我在尝试将XML文件的路径传递给Shockwave Flash对象时遇到Parameter url must be non-null错误。

javascript代码如下

<script type="text/javascript">
    var so = new SWFObject("preview.swf", "", "100%", "100%", "9", "#ffffff");
    so.addParam("allowFullScreen", "true");
    so.addParam("scale", "noscale");
    so.addParam("menu", "false");
    so.addVariable("xmlPath", "xml/exampleData.xml");
    so.write("flashcontent");
</script>

正如您所见,我试图在SWF文件中加载的XML文件是exampleData.xml

在ActionScript中,我声明了变量xmlPath,如下所示......

 public var xmlPath:String

并且在加载事件中我做了相应的更改

private function loadComp(data:String):void
        {
            xmlModel.xml = new XML(data);
            new LoadXml(xmlPath, picHandler);
        }

这就是问题所在。

我在这里做错了什么? 为什么我会收到Parameter url must be non-null错误?

P.S。如果我硬编码路径,在actionscript文件中,一切都很棒!

private function loadComp(data:String):void
        {
            xmlModel.xml = new XML(data);
            new LoadXml('xml/exampleData', picHandler);
        }

1 个答案:

答案 0 :(得分:3)

我通常在嵌入代码中使用flashvar参数执行此类操作。

   so.addParam('flashvars','xmlPath=xml/exampleData.xml');

然后你需要在你的Actionscript中使用这样的一行...

   private var xmlPath:string;
   xmlPath = root.loaderInfo.parameters.xmlPath;