2012-03-07 25 views
0

[OK]を、私は知恵の最後です。私は愚か者であり、私はそれを得て、私は何らかの誠実さでプログラミングをして以来、しばらくしています。それは、私はそれに戻り、左右の問題に挑戦しようとしています。Flash Builderの変数

私の最大の問題は、変数を割り当てることです。サイドプロジェクトとして、FlashBuilderを使用して簡単な電卓を作成しようとしています。私はそれが行われていないことを知って、それはおそらく複数の問題があります。だから、どんな助けでも大いに感謝しています!

ここまでは私のコードです。何。 AM。 I.ミッシング?

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
      xmlns:s="library://ns.adobe.com/flex/spark" 
      xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"> 

<fx:Script> 
    <![CDATA[ 
     import mx.events.FlexEvent; 
     import spark.components.FormItem 
     import spark.components.TextArea; 
     import spark.components.TextInput; 

     public var n_1:Number 
     public var n_2:Number 
     public var ttl:Number = 0 


    protected function added():void 
    { 
    ttl = n1 + n2; 
    total.text = String(ttl); 

    } 
    ]]> 
</fx:Script> 



<fx:Declarations> 

    <!-- Place non-visual elements (e.g., services, value objects) here --> 
</fx:Declarations> 


<s:Form id="Calc" x="28" y="27"> 
    <s:FormItem id="n1" label="1st #"> 
     <s:TextInput prompt="Number"/> 
    </s:FormItem> 
    <s:FormItem id="n2" label="2nd#"> 
     <s:TextInput prompt="Number"/> 
    </s:FormItem> 
    <s:FormItem label="Total="> 
     <s:Label id="total"/> 
    </s:FormItem> 
</s:Form> 
<s:Button id="add_bn" x="377" y="83" label="+" click="added()"/> 
<s:Button id="minus_bn" x="377" y="123" label="-"/> 
</s:Application> 

答えて

0

フォームアイテムを別のフォームアイテムとともに追加しているため、番号(NaN)を受信して​​いません。

TextInputのテキスト値はNumberです。

また、データバインディングを使用することができますが、あなたの例で動作するように:

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" 
       minWidth="955" 
       minHeight="600"> 

    <fx:Script> 
     <![CDATA[ 
      import spark.components.FormItem; 
      import spark.components.TextInput; 

      public var n_1:Number; 
      public var n_2:Number; 
      public var ttl:Number = 0; 

      protected function add_bn_clickHandler(event:MouseEvent):void 
      { 
       // get numbers from text field 
       n_1 = Number(n1.text); 
       n_2 = Number(n2.text); 

       // total: 
       ttl = n_1 + n_2; 

       total.text = ttl.toString(); 
      } 

      protected function minus_bn_clickHandler(event:MouseEvent):void 
      { 
       // get numbers from text field 
       n_1 = Number(n1.text); 
       n_2 = Number(n2.text); 

       // total: 
       ttl = n_1 - n_2; 

       total.text = ttl.toString(); 
      } 
     ]]> 
    </fx:Script> 


    <s:Form id="Calc" 
      x="28" 
      y="27"> 
     <s:FormItem label="1st #"> 
      <s:TextInput id="n1" 
         prompt="Number" /> 
     </s:FormItem> 
     <s:FormItem label="2nd#"> 
      <s:TextInput id="n2" 
         prompt="Number" /> 
     </s:FormItem> 
     <s:FormItem label="Total="> 
      <s:Label id="total" /> 
     </s:FormItem> 
    </s:Form> 
    <s:Button id="add_bn" 
       x="377" 
       y="83" 
       label="+" 
       click="add_bn_clickHandler(event)" /> 
    <s:Button id="minus_bn" 
       x="377" 
       y="123" 
       label="-" 
       click="minus_bn_clickHandler(event)" /> 
</s:Application> 
+0

感謝を!私はノブなので、私は尋ねます...なぜ、関数名を長くする必要があるのですか?私は 'clickHandler'がその上になければならないと理解していますが、必要に応じて、または明確にするために、アンダースコアを含む残りの部分はありますか?再度、感謝します! – nebmuzik

+0

名前は完全にあなた次第です - 本当に重要ではありません。実際には、addメソッドとsubtractメソッドの両方を追加したので、私は[ctrl + space]だけでFlash Builderを使用してメソッドスタブを自動生成しました。また、あなたの機能に欠けていたイベントも追加されました。 'Handler'または 'onClick'という命名規則は必要ではありませんが、うまくいきます。あなたが持っていたものに問題はありません。 –

+0

入手しました。おかげさまで、別の質問があり、ここで質問したり新しい質問を作成する必要があるかどうかはわかりませんが、どうやってそれを何度も何度もやり直すべきですか?私はIf ElseループやUntilループを行う方法を手に入れますが、このコードを別のクラスに入れてループの中に入れるか、何か他のことをする必要がありますか? – nebmuzik

関連する問題