Re: [flexcoders] Re: getting the total of values of an array collection that is updated manually
Looks ok to me. Is there some specific issue we should look at? The expectation is that this is for a shopping cart and the number of items won’t be very big. If you had 100,000 items, recomputing on every change could be slow, and then you might try to get smarter by looking at the event’s CollectionEventKind and making specific changes based on the kind. For example, for an ADD event, all you need to do is add the new value to the old sum, no need to loop over everything. On 12/21/11 7:35 AM, ZIONIST stinas...@yahoo.com wrote: Hi guys, thanks to your help i have managed to get it to work finally. One question though, is this best practice? Below is the code. ?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.events.FlexEvent; import mx.controls.listClasses.ListData; import mx.collections.ArrayCollection; import mx.events.CollectionEvent; [Bindable] public 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; obj.Qty=1; /*** Add the object to the list ***/ orderColl.addItemAt(obj, 0); orderColl.addEventListener(CollectionEvent.COLLECTION_CHANGE, calculateSum); } public function deleteOrder():void { /*** Remove the item from the array collection ***/ orderColl.removeItemAt(products.selectedIndex); orderColl.addEventListener(CollectionEvent.COLLECTION_CHANGE, calculateSum); } /* public function changeQty(event:Event):void { var currentlySelectedItem:Object = products.selectedItem; currentlySelectedItem.Qty = qty.text; } */ public function calculateSum(event:CollectionEvent):void { var amt:Number=0; var n:int=orderColl.length; for (var i:int=0; i n; i++) { var cartEntry:Object=orderColl.getItemAt(i); amt+=cartEntry.Qty * cartEntry.Price; } sum.text=usdFormatter.format(amt.toString()); } ]] /mx:Script mx:DefaultTileListEffect id=dtle0 fadeOutDuration=300 fadeInDuration=300 moveDuration=650 color=0xff/ 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()/ 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:Script ![CDATA[ public function changeQty(event:Event):void { var currentlySelectedItem:Object = outerDocument.products.selectedItem; currentlySelectedItem.Qty = qty.text; outerDocument.orderColl.itemUpdated(currentlySelectedItem); } ]] /mx:Script 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={data.Qty} change=changeQty(event) 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=#FF fontWeight=bold/ mx:Label id=sum/ /mx:HBox /mx:VBox /mx:Application -- Alex Harui Flex SDK Team Adobe Systems, Inc. http://blogs.adobe.com/aharui
Re: [flexcoders] Re: getting the total of values of an array collection that is updated manually
Add a switch statement for event.kind, keep the last sum around, and modify it as appropriate. On 12/21/11 11:51 AM, ZIONIST stinas...@yahoo.com wrote: How do you do that? -- Alex Harui Flex SDK Team Adobe Systems, Inc. http://blogs.adobe.com/aharui
RE: [flexcoders] Re: getting the total of values of an array collection that is updated manually
We need someone to monitor this list from a management prospective. The spams of srikanth reddy are becoming annoying. Flip a flag and I'll be happy to jump in limited to removing spam and spammers. From: flexcoders@yahoogroups.com [mailto:flexcoders@yahoogroups.com] On Behalf Of Alex Harui Sent: Sunday, December 11, 2011 11:07 PM To: flexcoders@yahoogroups.com Subject: Re: [flexcoders] Re: getting the total of values of an array collection that is updated manually I didn't see any code that actually changes the quantity in the data object. The TextInput gets its initial value from the data via databinding, and the change event calls something, but: 1. you don't want to update on change, but rather on focusOut or itemEditEnd (otherwise, as you type in 21 it will recompute for 2 and then 21) 2. You need to actually write to the dataObject. Probably no need to addEventListener again 3. Since you are using plain objects, you will need to call itemUpdated on the orderColl -Alex On 12/10/11 5:42 AM, ZIONIST stinas...@yahoo.com wrote: I have modified the app using Alex Harui's solution and it works when i add a product to the cart and also updates the total when i delete an item from the cart. But when i edit the quantity in the text input, the total does not get updated. Below is the modified version. Anything am missing? ?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.events.FlexEvent; import mx.controls.listClasses.ListData; import mx.collections.ArrayCollection; import mx.events.CollectionEvent; [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; obj.Qty=1; /*** Add the object to the list ***/ orderColl.addItemAt(obj, 0); orderColl.addEventListener(CollectionEvent.COLLECTION_CHANGE, calculateSum); } public function deleteOrder():void { /*** Remove the item from the array collection ***/ orderColl.removeItemAt(products.selectedIndex); orderColl.addEventListener(CollectionEvent.COLLECTION_CHANGE, calculateSum); } public function changeQty(event:Event):void { orderColl.addEventListener(CollectionEvent.COLLECTION_CHANGE, calculateSum); } public function calculateSum(event:CollectionEvent):void { var amt:Number=0; var n:int=orderColl.length; for (var i:int=0; i n; i++) { var cartEntry:Object=orderColl.getItemAt(i); amt+=cartEntry.Qty * cartEntry.Price; } sum.text=usdFormatter.format(amt.toString()); } ]] /mx:Script mx:DefaultTileListEffect id=dtle0 fadeOutDuration=300 fadeInDuration=300 moveDuration=650 color=0xff/ 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()/ 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={data.Qty} change=outerDocument.changeQty(event) 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=#FF fontWeight=bold/ mx:Label id=sum/ /mx:HBox /mx:VBox /mx:Application -- Alex Harui Flex SDK Team Adobe System, Inc. http://blogs.adobe.com/aharui
Re: [flexcoders] Re: getting the total of values of an array collection that is updated manually
I didn’t see any code that actually changes the quantity in the data object. The TextInput gets its initial value from the data via databinding, and the change event calls something, but: 1. you don’t want to update on change, but rather on focusOut or itemEditEnd (otherwise, as you type in “21” it will recompute for “2” and then “21”) 2. You need to actually write to the dataObject. Probably no need to addEventListener again 3. Since you are using plain objects, you will need to call itemUpdated on the orderColl -Alex On 12/10/11 5:42 AM, ZIONIST stinas...@yahoo.com wrote: I have modified the app using Alex Harui's solution and it works when i add a product to the cart and also updates the total when i delete an item from the cart. But when i edit the quantity in the text input, the total does not get updated. Below is the modified version. Anything am missing? ?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.events.FlexEvent; import mx.controls.listClasses.ListData; import mx.collections.ArrayCollection; import mx.events.CollectionEvent; [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; obj.Qty=1; /*** Add the object to the list ***/ orderColl.addItemAt(obj, 0); orderColl.addEventListener(CollectionEvent.COLLECTION_CHANGE, calculateSum); } public function deleteOrder():void { /*** Remove the item from the array collection ***/ orderColl.removeItemAt(products.selectedIndex); orderColl.addEventListener(CollectionEvent.COLLECTION_CHANGE, calculateSum); } public function changeQty(event:Event):void { orderColl.addEventListener(CollectionEvent.COLLECTION_CHANGE, calculateSum); } public function calculateSum(event:CollectionEvent):void { var amt:Number=0; var n:int=orderColl.length; for (var i:int=0; i n; i++) { var cartEntry:Object=orderColl.getItemAt(i); amt+=cartEntry.Qty * cartEntry.Price; } sum.text=usdFormatter.format(amt.toString()); } ]] /mx:Script mx:DefaultTileListEffect id=dtle0 fadeOutDuration=300 fadeInDuration=300 moveDuration=650 color=0xff/ 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()/ 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={data.Qty} change=outerDocument.changeQty(event) 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=#FF fontWeight=bold/ mx:Label id=sum/ /mx:HBox /mx:VBox /mx:Application -- Alex Harui Flex SDK Team Adobe System, Inc. http://blogs.adobe.com/aharui
Re: [flexcoders] Re: getting the total of values of an array collection that is updated manually
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=0xff/ 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=#FF fontWeight=bold/ mx:Label id=sum/ /mx:HBox /mx:VBox /mx:Application
Re: [flexcoders] Re: getting the total of values of an array collection that is updated manually
You know there is an working example in this book pretty close to your, is flex 4 though but you will get the picture. http://www.amazon.com/Adobe-Flex-Training-Michael-Labriola/dp/0321660501 C From: ZIONIST stinas...@yahoo.com To: flexcoders@yahoogroups.com Sent: Friday, December 9, 2011 4:52 PM Subject: [flexcoders] Re: getting the total of values of an array collection that is updated manually 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=0xff/ 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=#FF fontWeight=bold/ mx:Label id=sum/ /mx:HBox /mx:VBox /mx:Application
Re: [flexcoders] Re: getting the total of values of an array collection that is updated manually
I haven’t been following this thread, and without looking at the book: If you assume there won’t be more than 100 things in the cart, it is just as easy to add them all up every time there is a change. Then some setup code should call: orderColl.addEventListener(CollectionEvent.COLLECTION_CHANGE, calculateSum); And calculate sum would do something like: private function calculateSum(event:CollectionEvent):void { var amt:Number = 0; var n:int = orderColl.length; for (var i:int = 0; I n; i++) { var cartEntry:Object = orderColl.getItemAt(i); amt += cartEntry.quantity * cartEntry.price; } sum.text = amt.toPrecision(2); } On 12/9/11 2:09 PM, claudiu ursica the_bran...@yahoo.com wrote: You know there is an working example in this book pretty close to your, is flex 4 though but you will get the picture. http://www.amazon.com/Adobe-Flex-Training-Michael-Labriola/dp/0321660501 C From: ZIONIST stinas...@yahoo.com To: flexcoders@yahoogroups.com Sent: Friday, December 9, 2011 4:52 PM Subject: [flexcoders] Re: getting the total of values of an array collection that is updated manually 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=0xff/ 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=#FF fontWeight=bold/ mx:Label id=sum/ /mx:HBox /mx:VBox /mx:Application -- Alex Harui Flex SDK Team Adobe System, Inc. http://blogs.adobe.com/aharui
Re: [flexcoders] Re: getting the total of values of an array collection that is updated manually
private function updateTotal(){ var summ:Number=0 for(i:String in orderColl){ summ+=orderColl[i] } total=summ sum.text=total } and call this function at the end of init, addProduct, deleteOrder functions. On Tue, Dec 6, 2011 at 4:19 AM, ZIONIST stinas...@yahoo.com wrote: Tried that but it doesn't work. What am trying to do is to get the total price updated as new objects are added to the arraycollection that populates the list and also when the qty is changed the total updates too. could some one please help me. --- In flexcoders@yahoogroups.com, Csomák Gábor csomakk@... wrote: if i get your problem right, this will help. however, i didn't match the name of the arraycollection to yours var sum:Number=0 for(i:String in arraycollectionvar){ sum+=arraycollectionvar[i]; } //here is the sum you need. On Mon, Dec 5, 2011 at 3:57 PM, ZIONIST stinasius@... wrote: anyone with an example similar to wht am trying to do?
Re: [flexcoders] Re: getting the total of values of an array collection that is updated manually
if i get your problem right, this will help. however, i didn't match the name of the arraycollection to yours var sum:Number=0 for(i:String in arraycollectionvar){ sum+=arraycollectionvar[i]; } //here is the sum you need. On Mon, Dec 5, 2011 at 3:57 PM, ZIONIST stinas...@yahoo.com wrote: anyone with an example similar to wht am trying to do?