2011-02-07 2 views
0

나는 XML 파일에서 드롭 다운 목록 컨트롤을 채워야하는 학교에이 프로젝트를 가지고있다. 레이블/텍스트 입력 컨트롤에 대해 그렇게 할 것입니다. 그러나 드롭 다운에서 그렇게 할 수는 없습니다. 이가있다드롭 다운 목록 컨트롤 안에 XML 쿼리 넣기

"# 1009 null 객체 참조의 속성이나 메서드에 액세스 할 수 없습니다" 나는 내가 XML 쿼리 (간단한 텍스트와 함께 점점되지 않음)와 "addItem를"하라고이 오류 언제든지 얻을 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

XML 파일에 true라는 게시 속성이있는 활동 요소가 있습니까? – jswolf19

답변

0

을 다음이 좀 더 쉽게 디버깅해야 몇 개조하면 되겠이다.

먼저 DropDown의 dataprovider 용으로 새 ArrayList를 만들지 마십시오. Actitivies의 XMLList를 dataProvider로 설정하고 labelFunction을 사용하여 XML에서 ActivityName을 가져 오면됩니다. .> myXml.Activity (속성 ("게시") == "true"로 -

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

당신이 라벨 기능에 도착하지 않는 경우,이 E4X 쿼리입니다 잘못된 :

여기 디버그의 labelFunction입니다). 그걸 조각으로 나누고 싶을거야. myXml.Activity 노드에서 적절한 XMLList를 가져 오십시오.

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

알아보기. 어떻게되는지 알려주십시오.

+0

빠른 답변을 주셔서 감사합니다, 우선 모든 e4x 쿼리는 정확합니다. 왜냐하면 내가 레이블을 설정했기 때문에 그것이 내가 원하는 것을 주었기 때문입니다. 둘째, 나는 문제가 무엇인지 알아 냈다. 그것의 일부는 업데이트되지 않은 플래시 플레이어였다. 다른 부분은 생성 완료 함수가 초기화 된 "myXml"변수를 가져 오지 않는다는 것입니다. 빈 변수를 얻는다는 의미입니다. 첫 번째 함수 "myfunc"에서 쿼리를 테스트하면 멋지게 작동합니다. – Dudipoli

+0

좋습니다. 디버깅 XML은 전통적인 객체 (달콤한 쿼리 구문에 대해 지불해야하는 가격)처럼 구조화되지 않았기 때문에 때로는 약간의 고통이 될 수 있습니다. – Shakakai

+0

그래서 문제가되는 것을 발견 한 후에, 나는 두 함수를 혼합하여 현재 작동합니다. 개인 기능 MYFUNC (이벤트 :의 ResultEvent) 다음 여기에 시도 주셔서 감사합니다 나를 위해 일한 무엇을 XML로 \t \t \t { \t \t \t \t 인 myXML = event.result 무효; \t \t \t \t droplistdb = new ArrayList(); \t \t \t \t ActivityDropDown.dataProvider = droplistdb; \t \t \t \t droplistdb.addItem ({label : myXml.Activity. (attribute = "publish") == "true"). \t \t \t} – Dudipoli