2011-02-07 4 views
0

У меня есть этот проект для школы, где я должен заполнить выпадающий список из XML-файла. Я собираюсь сделать это для управления меткой/текстовым вводом, но я не могу это сделать при выпадающем списке. я получаю эту ошибку любое время я сказать ему «AddItem» с запросом XML (не получает его с простым текстом): «# 1009 Невозможно получить доступ к свойству или методу нулевой ссылки на объект»Ввод XML-запроса внутри элемента управления выпадающего списка

Это функция, которая получает файл XML:

private function myFunc(event:ResultEvent):void 
{ 
    myXml=event.result as XML; 
} 

Это функция, запуск после контроля получил сборки:

protected function ActivityDropDown_creationCompleteHandler(event:FlexEvent):void 
{ 

    droplistdb=new ArrayList(); 
    ActivityDropDown.dataProvider=droplistdb; 
    droplistdb.addItem({label:myXml.Activity.(attribute("publish")=="true").ActivityName}); 
} 
+0

Вы уверены, что есть элемент Activity с атрибутом publish, который является истинным в вашем XML-файле? – jswolf19

ответ

0

Вот несколько настроек, которые должны сделать отладки это немного проще.

Во-первых, не создавайте новый ArrayList только для DataProvider DropDown. Просто установите XMLList Actitivies как dataProvider и используйте функцию labelFunction для захвата ActivityName из XML.

Вот ваш отлаживать labelFunction:.

//set a breakpoint on each line 
function(obj:XML):String{ 
    var activityName:XML = obj.ActivityName; 
    return activityName.toString(); 
} 

Если вы не получите функции этикетки, то этот запрос E4X неправильно -> myXml.Activity (атрибут ("публиковать") == "истина"). Вы захотите сломать это по частям. Попробуйте получить правильный XMLList из узлов myXml.Activity?

trace(myXml.Activity.length());//should show the number of Activity nodes 

Попробуйте это и сообщите нам, как это получается.

+0

Спасибо за быстрый ответ, прежде всего, запрос e4x правильный, я знаю, потому что я установил его на ярлык, и он дал мне то, что я хотел. Во-вторых, я узнал, в чем проблема: частью этого был не обновленный флеш-плеер. Другая часть состоит в том, что полная функция создания не получает инициализированную переменную «myXml». что означает, что он получает пустую переменную. Если я тестирую запрос в первой функции «myfunc», это отлично работает. – Dudipoli

+0

хорошо крутой. отладка XML может быть немного больно время от времени, поскольку она не структурирована, как традиционный объект (цена за синтаксис сладкого запроса). – Shakakai

+0

Итак, после того, как я нашел то, что кажется проблемой, я смешал две функции и теперь ее работу. Спасибо за попробовать здесь то, что работает для меня: частная функция MyFunc (событие: ResultEvent): недействительным \t \t \t { \t \t \t \t myXml = event.result в XML; \t \t \t \t droplistdb = new ArrayList(); \t \t \t \t АктивностьDropDown.dataProvider = droplistdb; \t \t \t \t droplistdb.addItem ({label: myXml.Activity. (Attribute ("publish") == "true"). ActivityName}); \t \t \t} – Dudipoli

Смежные вопросы