public function *deleteOrder*():void{
orderColl.removeItemAt(products.selectedIndex);
*init()*
}

private function *addProduct*():void
{

//Create an object to hold the data
var obj:Object=new Object();
//Assign the variables to it
obj.Product=product.text;
obj.Price=price.text;
//Add the object to the list
orderColl.addItemAt(obj, 0);
*init()*
}
On Fri, Dec 9, 2011 at 4:52 PM, ZIONIST <stinas...@yahoo.com> wrote:

>
>
> Hi Guys, i have finally got the total to update when new items are added
> to the cart. One thing that i have failed to do is to get the total to
> update when quantity is changed and when a product is removed from the
> cart(list component). Any help on this? Here is the latest code that only
> gets the total to update when a new product is added.
>
>
> "App"
>
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
> layout="horizontal"
> xmlns:ns1="*"
> xmlns:ns2="as_logic.*">
>
> <mx:states>
> <mx:State name="dark">
> <mx:SetProperty target="{product}"
> name="text"
> value="Dark Chocolate"/>
> <mx:SetProperty target="{price}"
> name="text"
> value="50"/>
> </mx:State>
> <mx:State name="spread">
> <mx:SetProperty target="{product}"
> name="text"
> value="Drinking Chocolate"/>
> <mx:SetProperty target="{price}"
> name="text"
> value="100"/>
> </mx:State>
> </mx:states>
>
> <mx:Script>
> <![CDATA[
> import mx.controls.listClasses.ListData;
> import mx.collections.ArrayCollection;
>
> [Bindable]
> private var orderColl:ArrayCollection=new ArrayCollection();
>
> private function addProduct():void
> {
>
> //Create an object to hold the data
> var obj:Object=new Object();
> //Assign the variables to it
> obj.Product=product.text;
> obj.Price=price.text;
> //Add the object to the list
> orderColl.addItemAt(obj, 0);
>
> }
>
> public function deleteOrder():void
>
> {
>
> //Remove the item from the array collection
> orderColl.removeItemAt(products.selectedIndex);
>
> }
>
> public function init():void
> {
> var total:Number=0;
> for (var i:String in orderColl)
> {
> total+=Number(orderColl[i].Price);
> }
> sum.text=usdFormatter.format(total.toString());
> }
> ]]>
> </mx:Script>
>
> <mx:DefaultTileListEffect id="dtle0"
> fadeOutDuration="300"
> fadeInDuration="300"
> moveDuration="650"
> color="0xffffff"/>
>
> <mx:CurrencyFormatter id="usdFormatter"
> precision="0"
> currencySymbol="$"
> alignSymbol="left"/>
>
>
> <mx:Canvas width="500"
> height="300">
> <mx:Label x="10"
> y="10"
> text="Milk Chocolate"
> id="product"/>
> <mx:Label x="10"
> y="36"
> text="10"
> id="price"/>
> <mx:Button x="10"
> y="62"
> label="submit"
> click="addProduct();init()"/>
> <mx:Button x="10"
> y="92"
> label="Change State"
> click="currentState='dark'"/>
> <mx:Button x="10"
> y="122"
> label="Drinking Chocolate"
> click="currentState='spread'"/>
> </mx:Canvas>
>
> <mx:VBox width="340"
> height="340"
> horizontalAlign="center"
> verticalAlign="middle">
>
> <ns2:transparentList id="products"
>
> width="300"
> height="300"
> dataProvider="{orderColl}"
> borderStyle="none"
> itemsChangeEffect="{dtle0}">
> <ns2:itemRenderer>
> <mx:Component>
> <mx:HBox width="100%"
>
> height="100%"
> horizontalAlign="center"
> verticalAlign="middle"
> horizontalGap="0">
> <mx:Image source="assets/trashcan.gif"
> click="outerDocument.deleteOrder()"/>
>
> <mx:Label text="{data.Product}"
> styleName="orderLabel"/>
> <mx:Spacer width="100%"/>
> <mx:Label id="price"
> text="${Number(qty.text)* Number(oldPrice.text)}"
> styleName="orderLabel"/>
> <mx:TextInput id="qty"
> width="30"
> height="20"
> text="1"
> styleName="qtyInput"/>
>
> <mx:Label id="oldPrice"
> text="{data.Price}"
> visible="false"
> includeInLayout="false"/>
> </mx:HBox>
> </mx:Component>
> </ns2:itemRenderer>
> </ns2:transparentList>
>
> <mx:HBox>
> <mx:Label text="Total:"
> color="#FFFFFF"
> fontWeight="bold"/>
> <mx:Label id="sum"/>
>
> </mx:HBox>
> </mx:VBox>
>
> </mx:Application>
>
>  
>

Reply via email to