2011-08-02 2 views
0
코드를 다음 실행하는 동안, 나는 아래와 같은 오류 메시지를 받았습니다

,데이터 공급자 문제가

function urlLoader_complete(evt:Event) 
{ 
    XMLdata=(evt.target.data).toString(); 
    XMLdata=XMLdata.split("&lt;").join("<"); 
    XMLdata=XMLdata.split("&gt;").join(">"); 
    xml=new XML(XMLdata); 
    **fnctn();** 
} 

function fnctn() 
{ 
    var tp:int = bulb1 + bulb2 + bulb3 + bulb4; 
    if(tp == 1) 
    { 
     **gep.addItem(new Object());** 
     gep[gep.length-1].voltage1 =evt.result.Array.Voltage.Val; 
     gep[gep.length-1].current1 = evt.result.Array.Current.Val; 
     gep[gep.length-1].voltage2 = 0; 
     gep[gep.length-1].current2 = 0; 
     gep[gep.length-1].voltage3 = 0; 
     gep[gep.length-1].current3 = 0; 
     gep[gep.length-1].voltage4 = 0; 
     gep[gep.length-1].current4 = 0; 
    } 

오류가 오류가있는

ReferenceError: Error #1065: Variable evt is not defined. 

at vi_fla::MainTimeline/fnctn()[vi_fla.MainTimeline::frame2:449] 

at vi_fla::MainTimeline/urlLoader_complete()[vi_fla.MainTimeline::frame2:436] 

at flash.events::EventDispatcher/dispatchEventFunction() 

at flash.events::EventDispatcher/dispatchEvent() 

at flash.net::URLLoader/onComplete() 

두 라인은 위의 코드에 표시되어 있습니다 ... 무엇을 이 오류가 발생하는 이유는 무엇입니까?

** *UPDATE* ** * ****

지금은 코드를 아래와 같이 수정했습니다.

함수 fnctn (EVT 이벤트)

{ VAR의 TP : = INT bulb1 bulb2 + + + bulb3 bulb4;

(TP == 1)

{

ChartDataProvider1.push(xml.Value.Array.Voltage.Val.text()) 

ChartcategoryNames.push(); 

trace("value= "+xml.Value.Array.Voltage.Val.text()) 

}

}

지금 실행 동안 에러가 없지만 추적 값이 어떤 값을 표시하지 않는 경우. 값 =

이 문제를 해결하는 방법은 무엇입니까?

** * ****UPDATE* ** * ** * ** * ****

내가 수정 아래 코드로

var ChartcategoryNames : Array = new Arra 와이();

var ChartDataProvider1 : Array = new Array();

var lineArray1 : LineSeries = new LineSeries(); 또한 ChartDataProvider1.But lineArray1에서 볼 (TP == 1)

{

      ChartDataProvider1.push(xml.graph.Voltage.text()); 

      ChartcategoryNames.push(); 

      trace("hi= "+xml.graph.Voltage.text()); 

         yAxis = new NumericAxis(); 

      yAxis.maximum=10; 

      yAxis.minimum=0; 

      yAxis.majorUnit=2; 

      Exp_Content.input_mc.in_graph.verticalAxis=yAxis; 

      //Exp_Content.input_mc.in_graph.dataProvider=ChartDataProvider1 

         lineArray1.dataProvider=ChartDataProvider1; 

}

지금 추적 하이가 정확한 값을 나타낸다는, 어떤 값이없는

경우 ...이 문제에 대한 해결책을 제안하십시오.

+3

정말 이름 지정 규칙을 수정하고 싶습니다. – Taurayi

답변

2

당신은 주위에 당신의 이벤트를 전달해야합니다.

3

이 함수는 fnctn에서 정의되지 않은 변수 evt을 사용하고 있습니다.

evt은 들어오는 이벤트 개체가 urlloader_complete이므로 해당 기능에 국한됩니다. 모든 코드를 이벤트 처리기에 배치하거나 이벤트 객체를 fnctn으로 전달하십시오. ,

fnctn(evt); 
... 
function fnctn(evt : Event); 
+0

고마워요 ... 답변에 따라 코드를 수정했습니다 ... 이제 오류 메시지는 ReferenceError와 같습니다. 오류 # 1069 : flash.events.Event에 속성 결과가 없으며 기본값이 없습니다. vi_fla에서 \t :: MainTimeline은/fnctn() vi_fla.MainTimeline : 프레임 2 : 451]에 vi_fla \t :: MainTimeline/urlLoader_complete() vi_fla.MainTimeline : 프레임 2 : 439] \t flash.events에서 ::\t at flash.events::EventDispatcher/dispatchEvent() \t at flash.net::LLLLoader/onComplete() –

+0

Event 클래스에는 'result'라는 속성이 없습니다. http : // help .adobe.com/ko/FlashPlatform/reference/actionscript/3/flash/events/Event.html을 참조하십시오. 이 시점에서 XML 객체를 읽는 것을 의미합니까? – shanethehat

+0

XML 파일 형식은 그래서 그 대신 evt.result.Array.Voltage.Val의 16.042349 0.002555 .... 같은; 나는 무엇을 쓸 것인가? –

0
function urlLoader_complete(evt:Event) 
{ 
    XMLdata=(evt.target.data).toString(); 
    XMLdata=XMLdata.split("&lt;").join("<"); 
    XMLdata=XMLdata.split("&gt;").join(">"); 
    xml=new XML(XMLdata); 
    fnctn(evt); 
} 

function fnctn(evt:Event) 
{ 
    var tp:int = bulb1 + bulb2 + bulb3 + bulb4; 
    if(tp == 1) 
    { 
    **gep.addItem(new Object());** 
    gep[gep.length-1].voltage1 =evt.result.Array.Voltage.Val; 
    gep[gep.length-1].current1 = evt.result.Array.Current.Val; 
    gep[gep.length-1].voltage2 = 0; 
    gep[gep.length-1].current2 = 0; 
    gep[gep.length-1].voltage3 = 0; 
    gep[gep.length-1].current3 = 0; 
    gep[gep.length-1].voltage4 = 0; 
    gep[gep.length-1].current4 = 0; 
    } 
} 

이 시도이 당신을 도움이되기를 바랍니다 :

function urlLoader_complete(evt:Event) 
{ 
    XMLdata=(evt.target.data).toString(); 
    XMLdata=XMLdata.split("&lt;").join("<"); 
    XMLdata=XMLdata.split("&gt;").join(">"); 
    xml=new XML(XMLdata); 
    fnctn(evt); 
} 

function fnctn(evt:Event) 
{ 
    ... 
+0

@ Swati.. 나는이 코드를 여전히 같은 오류로 시도했습니다 ... 오류 # 1069 : flash.events.Event에 속성 결과가없고 기본값이 없습니다 ..... 발생합니다. –

관련 문제