2010-11-02 40 views
0

我在尝试将XML文件的路径传递给Shockwave flash对象时出现Parameter url must be non-null错误。参数url必须为非空

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); 
     } 

回答

3

我通常在嵌入代码中使用flashvar参数做这种事情。

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

然后你需要像这样在您的ActionScript行...

private var xmlPath:string; 
    xmlPath = root.loaderInfo.parameters.xmlPath; 
相关问题