URL параметра должен быть ненулевым

Я получаю Parameter url must be non-null ошибка при попытке передать путь файла XML к Flash-объекту Shockwave.

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>

Как вы можете видеть, XML-файл, который я пытаюсь загрузить в SWF-файл, является 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 ошибка?

PS Если я жестко закодирую путь в файле actionscript, все отлично работает!

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

1 ответ

Решение

Я обычно делаю такие вещи с параметром flashvar в коде встраивания.

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

И тогда вам понадобится такая строка в вашем ActionScript...

   private var xmlPath:string;
   xmlPath = root.loaderInfo.parameters.xmlPath;
Другие вопросы по тегам