2011-11-20 4 views
0

뷰에 두 개의 스크립트가 있습니다. 한 스크립트는 구성 요소 안에 있습니다. Component 스크립트에서 데이터에 숫자를 추가하려면 목록에 추가 된 다음 View에있는 레이블에 총계를 표시해야합니다. 첫 번째 스크립트에서 변수를 선언하면 Component 스크립트는이를 볼 수 없으며 Component Script에서 선언하면 레이블을 볼 수 없습니다. 보기에있는 모든 사람들이 볼 수 있도록 어떻게 선언합니까?Flash Builder 4.5의 로컬 변수

<s:view 
    <fx:Script> 
      <![CDATA[ 
        //if I place it here the next CDATA inside IconItemRender can't see it. 
        private static var MyTotal:Number=0; 
      ]]> 
    </fx:Script> 
    <fx:Declarations> 
      <s:CurrencyFormatter id="usdFormatter" useCurrencySymbol="true"/> 
    </fx:Declarations> 
     <s:itemRenderer> 
      <fx:Component> 
       <s:IconItemRender ..............> 
        <fx:Script> 
        <![CDATA[ 
           //if I place it here the Label "TotalAmountLb" can't see it. 
          // and it get reset to 0 everytime I call the function getInvoiceAmount. 
          private static var MyTotal:Number=0; 

          private function getInvoiceAmount(item:Object):String 
          { 
           MyTotal = MyTotal + Number(item.Amount);  
          } 
        ]]> 
        </fx:Script> 
       </s:IconItemRenderer> 
      </fx:Component> 
     </s:itemRenderer> 
     </s:List> 
     <s:Label id="TotalAmountLb" text="{usdFormatter.format(MyTotal)}"/> 
    </s:view> 
+0

귀하의 질문에 이해가되지 않습니다. 먼저 질문을 분명히하십시오. – Exhausted

+0

좀 더 명확하게 설명하고 코드를 보여주십시오. – JeffryHouser

+0

이 권리를 이해한다면 구성 요소에 대한 ID를 제공해야합니다. id를 사용하면 구성 요소 내부에서 변수를 참조 할 수 있습니다. 다른 방법은 구성 요소에서 디스패치 사용자 지정 이벤트를 보는 것입니다. –

답변

0

해결책을 찾았 으면 선언 앞에 [Bindable]을 추가해야했습니다.

+0

K 괜찮아요. 나는 바쁘기 때문에 당신의 코드를 시도하지 않았다 ... –

0

그냥이 시도 :
이 먼저 MyTotal를 선언 감사합니다, 김 여기

코드입니다, 문제는 그것이보기 어디서나 사용할 수 있도록 내가 var에 MyTotal를 배치해야하는 위치입니다 스크립트.
그리고 구성 요소 스크립트에서 액세스하려고 시도 outerDocument.MyTotal

+0

아니요, 오류가 발생합니다. 1178 : 액세스 할 수없는 속성에 대한 액세스 시도 정적 형식보기가있는 참조를 통해 MyTotal –

+0

@KimHJ는 'MyTotal'을'public' 또는 'protected'로 선언해야한다고 생각합니다. –

+0

그것을 시도, 오류 1120 및 1178 –