2011-11-20 5 views
0

J'ai deux scripts dans une vue, un script est dans un composant. Dans le script Component, je dois ajouter des nombres à partir de données lorsqu'elles sont ajoutées à une liste, puis afficher le total dans une étiquette placée dans la vue. Si je déclare la variable dans le premier script, le script Component ne peut pas le voir et si je le déclare dans le script de composant, l'étiquette ne peut pas le voir. Comment vais-je le déclarer pour que tout le monde dans la vue puisse le voir? Merci, KimVariable locale dans Flash Builder 4.5

Voici le code, le problème est où dois-je placer le var MyTotal il peut être utilisé partout dans la vue:

<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

Je pense que votre question n'a aucun sens. D'abord, clarifiez votre question. – Exhausted

+0

S'il vous plaît expliquer plus clairement, et montrer du code. – JeffryHouser

+0

Si je comprends bien, vous devez donner un identifiant pour votre composant. Avec un identifiant, vous pouvez référencer des variables dans un composant. L'autre manière est l'événement personnalisé d'expédition du composant à voir. –

Répondre

0

Trouvé la solution, j'ai dû ajouter [Bindable] avant la déclaration.

+0

K bien. J'étais un peu occupé, donc pas essayé votre code ... –

0

Essayez ça:
Déclare MyTotal en premier scénario.
Et dans le script de composant juste essayer d'accéder avec outerDocument.MyTotal

+0

Non, j'obtiens une erreur disant: 1178: Tentative d'accès à une propriété inaccessible MyTotal à travers une référence avec des vues de type statique –

+0

@KimHJ pense que vous devez déclarer 'MyTotal' à' public' ou 'protected' –

+0

J'ai essayé cela, obtenir l'erreur 1120 et 1178 –

Questions connexes