2012-12-23 130 views
0

我做了一個函數來計算一個總價格,但它似乎工作。該函數用於從arraycollection中獲取2個數據字段,並使用這兩個數據字段來計算。計算不起作用 - flex

 [Bindable]public var total:Number=0; 
     private function gridClickEvent(event:ListEvent):void {    
      var quantity:Number=acCart[event.columnIndex].quantity; 
      var price:Number=acCart[event.columnIndex].price; 
      total += quantity * price; 

     } 

我的計算總量將在標籤

<s:Label id="prijs" text="{total}" /> 

我要的是計算總價格顯示。我有一個包含3個fielddata(Name產品,數量和價格)的數組集合。在函數中,我想從數組集合中抽取數據「數量」和數據「價格」,以便計算「總價」。

目前我寫的功能不起作用。我沒有收到任何數據。

+0

你能告訴我們什麼是行不通的嗎?你收到什麼樣的價值,你期望得到什麼樣的價值?你是否瀏覽了代碼?計算之前的數量和價格的數值是多少? acCart.quantity和acCart.price的數據類型是什麼?什麼是acCart? event.rowIndex的價值是什麼?我猜想你的演員從[未知數據類型]轉換爲數字時會出現錯誤。 – JeffryHouser

+0

我想要的是計算總價。我有一個包含3個fielddata(Name產品,數量和價格)的數組集合。在函數中,我想從數組集合中抽取數據「數量」和數據「價格」,以便計算「總價」。 目前我寫的功能不起作用。我沒有收到任何數據。 –

+0

acCart是3個fielddata的數組集合 –

回答

2

這是total+=不是total=+。您在運算符中有語法錯誤。

+0

我已將其更改爲+ =,但它仍能奏效。標籤始終顯示0 –

+0

您是否檢查過/使用的值? –

2

做一些調試:

private function gridClickEvent(event:ListEvent):void { 

    //see if getting expected values 
    trace(event.rowIndex); 
    trace(acCart[event.rowIndex].quantity); 
    trace(acCart[event.rowIndex].price); 

    var quantity:Number=parseFloat(acCart[event.rowIndex].quantity); 
    var price:Number=parseFloat(acCart[event.rowIndex].price); 
    total += quantity * price; 
} 
+0

Oke我調試了我的項目。調試器不能跟蹤任何值。 –

+1

-1。執行調試是很好的建議;它沒有做任何事來回答這個問題。 – JeffryHouser

+0

-1爲了提供一個答案必須理解問題。如果綁定不起作用,則這些值必定是原因。爲了得到一個想法,如果值是未定義的,NaN或其他,調試有助於找到答案。 –

0

爲什麼不

private function gridClickEvent(event:ListEvent):void { 
    .... // your math here 

    trace("old total = "+ total); 
    total += quantity * price; 
    trace("new total = "+ total); 

    // forget about binding and manually set the property 
    prijs.text = total.toString(); 
} 

綁定有時是柔性瘋了,即使你/我完全理解綁定它可能仍然是有機會的機制綁定不起作用或者將值設置N次而不是一次(有幾個MVC框架的情況)。

因爲這個原因我討厭綁定,我保留使用它。

PS:你的跟蹤輸出是什麼? (請「調試」,不運行,以獲得控制檯輸出)