Flex :: Why Change In ArrayCollection's Length Doesn't Invoke Setter On Component Using It As Data Source
Dec 15, 2010
I have a component where I expose the property 'questions' with the following code:
private var _questions:ArrayCollection;
private var questionsChanged:Boolean;
[Bindable("questionsChanged")]
[Code]....
In this component, I use commitProperties() to implement my logic.
I use Cairngorm and the 'questions' is in the model and hence it's defined as a source for data binding.
When the 'questions' ArrayCollection's size changes elsewhere in the application, it is not invoking the setter method in the component that is destination for the data binding.
I have xml file with data as below and i want to convert this into Flex ArrayCollection including the id and name of the tags. I am using httpService to get the file.
I need to display the number of items in a List component that has a filtered ArrayCollection as its data provider. I don't see a way to get the filtered collection's length.
I would like to put an eventListener on an ArrayCollection's length proprety, but I don't know how to go about this.
I want to do this because I only want code to execute when a certain number of things are in a certain ArrayCollection. I want Flex to wait to execute this code over the next object until that length property drops back to an acceptable level. I think I should do this with events instead of a while loop that sits there spouting NOOPs forever (which I don't know how to do either).
What is the role of source for an ArrayCollection or XMLListCollection? Is it used just once - when constructing a new ArrayCollection or XMLListCollection object and is it copied to some internal data structure of that object?
Because nothing is updated when the source Array (or XMLList) is being modified and the documentation confirms it too: The underlying XMLList for this collection. The XMLListCollection object does not represent any changes that you make directly to the source XMLList object. Always use the XMLListCollection methods to modify the collection.
This property can be used as the source for data binding. When this property is modified, it dispatches the listChanged event.
I'm asking because Flex examples related to dataProviders always use some Array or XMLList as source of data for a data-driven component. And I wonder, if using Array or XMLList is necessary at all - when for example loading data from external PHP-script.
My Dataprovider for a grid is an arrayCollection which is dynamically loaded with Objects . for example : a person object with persionID,PersonName ..etc . I applied a filter function on my dataprovider based on personID . below is my function
public function FilterFunc(item:Object):Boolean { var same:Boolean=String(item.personID ) == filterpersonID ; return same;
[Code]....
this function is called whenever a new object is being added to the arraycollection . The problem now is dp.length in the above function is returning only the no of objects of the particular personID on which the filterFunction was applied instead of the absolute value . Its not limiting the size of the other objects which are runnning into thousand's causing memory issues . once i change the filterFunction to different personID , it slowly starts limiting the respective personID objects. So the sizeHandler() limits only the personID objects for which filterfunction was applied instead of the whole objects , this is the problem .
Im using tree component and XMLConnector here.as far as i can see results in my tree (when testing my movie) it ouputs data thats loaded fom ext. XML file.But the problem is that it publishes [type Function] in the tree. no actual xml nodes are visible, just bunch of [type Function] ive also searched for info / tutorial how to publish actual xml data in the tree component but without any luck.So what should i do and how ?
I've created a custom component based on Image component. I want to teach it to respond to change of binded variable. E.g. if main class has a variable balance, I want the component to change image in case balance = 100 one image, in case balance = 50 to another.[code]...
I have an arrayCollection of objects that extend Sprite, and have bitmaps within them. I want to display these in a list (or some other component that would allow a user to scroll through them, and see their associated data.)
When I do: myList.dataProvider = myArrayCollection
the list just shows a bunch of lines of [Object, Item] instead of the visual sprites.
Here is a simplified version of my Object:
public class myUIC extends UIComponent
[Code]...
Tried many different ways to get it to show up in a List, but can't do it.
I have an ArrayCollection with values predefined. I want to assign a new value to items in the arrayCollection but can not figure out how. Basically I want to do something like this:acGuages.itemUpdated(0).thevalue = 90; (Changing the value from 25 to 90)
private var arrayGuages:Array=[ {thevalue:"25",height:"115"}, {thevalue:"45",height:"115"},
I have a repeater that populates a component, called 'project'. The project components are given an ID of 'wholeProject'. In all of my functions up until now, I was able to determine how many project components were made by doing the following:
wholeProject.length;
I used this in for loops, for each loops, and for changing the item settings within a project, i.e. something like this:
wholeProject[i].studentName = "Billy Bob";
However, I'm creating a new function that does not seem to like this wholeProject.length reference. I'm using it within the same level as all the others (i.e. the parent level). So far, my function is simply this:
public function getStudentYears():void { Alert.show(String(wholeProject.length)); }
when the application loads, the alert message simply does not appear. If I change the alert to something like this:
Alert.show("This is just a test.");
it works just fine. But for some reason, the wholeProject.length doesn't work in this function whereas it does in all my other ones.
I'm working on a flash cards application and am using an ArrayCollection of Objects to store each cards individual data. When the user click the 'save' button, the text from the two textAreas and the 'title' textinput are stored in the AC as one object with .title, .side1 and .side2 properties that contain the text from the flash card. I have made a List in a separate class I want to have display the title of each card the user has created, but after days of researching and looking around, I still cannot get the display to list the titles.
Part of my NewCard.mxml: <?xml version="1.0" encoding="utf-8"?> <fx:Script><![CDATA[ import flash.events.EventDispatcher; import mx.collections.ArrayCollection; import spark.effects.SlideViewTransition; [Code] .....
I have flat data in my app which I will need to group, summarize, and count as I normally would with a sql query. For this project though, it must be done in the flex app. I need to figure out how to group my data by day or month using a datatime field in my Arraycollection, then appropriately count or summarize data in other fields. I've used Groupingcollections before, but only when binding to hierarchical controls (like AdvancedDataGrid and Tree), but I need a resulting ArrayCollection with the grouped and summarized data. Basically, I'm trying to access my AC like a sql table (GROUP BY MONTH(datetime), COUNT, COUNT(DISTINCT(), etc.) and I'm unsure how to do it.
I'm compiling a Flash project to an iPhone IPA file from the command line. I have an editable TLFTextField on the stage, but whatever I do, the softKeyboard on iOS won't pop up. Trying to set "needsSoftKeyboard" on the TLFTextField gives me an error when testing the movie via Flash: "property not found". The movie does load correctly on iOS, but still no keyboard pops up. It also doesn't matter if I put "pan" in the application descriptor file or not.
Basically I just want a keyboard to pop up to fill in text in an input field. What am I missing?
I have a problem whereby in AS3 using Flash Builder 4 using a public getter with an internal setter gives me the error "property is read only", like so:
I am putting together a presentation on flex for adobe user group that specialize in coldfusion. In my example I would like to display the text of the cfc being called from the webservice tag in my flex application. Is there a simple way to load the actual text for the cfc instead of the html that coldfusion is passing back to my URLloader variable?
Here am getting array of groups(groupName,GroupID each row ) from a RemoteObject and displaying in a ComboBox. I am selecting the groups with selectedIndex as 0,1,2,3, but I want my groupIDs of correspoding groupnames,which am bringing to client side.
How can I get actual the groupId of the selected group?
My label text is not showing up after binding the arraycollection to the label text. Could I see an example of how to properly bind an arraycollection to a labels text?
I am developing a panel in Photoshop with Flex and Extendscript. I am pretty close to getting this to work, but with my Flex skills I am having a little issue with the Array I am pulling in from the jsx file. The array is displayed fine in the alert box, but somewhere between my split and creating new collection something is wrong.
Here is my Flex
protected function loadData():void { var grabFolderNames:SyncRequestResult = CSXSInterface.instance.evalScript("labNames"); var list:String = grabFolderNames.data;
I have an ArrayCollection bound to an editable DataGrid, another component needs to know when the ArrayCollection changes (as a result of changes in the DataGrid) so it can also update itself, so is listening to the COLLECTION_CHANGE event of the ArrayCollection.
The problem is that the DataGrid only updates the ArrayCollection when the row being edited losses focus. This is not good for my app as a user could edit a column on a row and not click elsewhere on the table for a long time (causing the row to lose fucus), therefore the changes won't have propagated to the other parts of the application.
How can I make the data grid inform the ArrayCollection of a change every time there is a keyup event on a text input instead of every time a row looses focus?
I have an ArrayCollection of Objects. Each Object with three attributes:CustomerID, Income and DateMy goal is to chart this data for each customer (or a couple together) in a Income by Date LineChart display. Selection of customers is done with ArrayCollection filters.Data is fetched from an SQL database, however, each customer has some data points missing.f there was zero income on August 8, 2010 there will be no entry for that.Charting the ArrayCollection as is, is misleading because there is no indication of the missing data points.One way to solve this is to artificially add zero points for the missing dates for each customer. However, this would explode the data set (and impact performance).
The problem lies in the fact, that when the ArrayCollection _data is filtered (because the Checkbox "Even" is set), then the 2nd loop in the test case (for adding new items) adds items (the "35") again and again - because it's filtered and thus not visible.
I have a Flex tree with an ArrayCollection as data provider. The ArrayCollection is composed by objects linked eachother by the "children" field (that is an Array containing other children objects)
I want to change the image at click event.I change the source of the image on click but its not reflecting immediately it comes when any other event is fired.
I want to use one data source (e.g. an Array) for multiple Datagrids that have different filterFunctions attached and show different columns.First, I thought I use a very straight forward apporach:create the Arraycreate an ArrayCollection for every DataGrid and set the "source" property to the Arraycreate the DataGrids and set their dataProvider property to its designated ArrayCollectionSo now. every ArrayCollection can have its own filterFunction, sort state etc. but there needs tos are dispatched and I have to call itemUpdated manually on each of the ArrayCollections. While debugging into the code in order to get a deeper understanding for Flex, I tried to figure out, what this misterious "itemUpdated" method does, especially as it notes in the adobe documentation, that, if no "property" is given (e.g. it is null), a simple "refresh()" will occur.
I did not find any calls to "refresh()" in the whole debugging (and I went down the framework whole as deep as possible (btw: lots of funny comments right in the code :-) )he only thing I could find was a CollectionChangeEvent getting dispatched with a PropertyChangeEvent in its "item" property. Which was of the kind "UPDATE" (and not, as I would expect "ADD"). When trying to dispatch that event manually, it never worked (e.g. the datagrid did not update).
I'm new to Flex and am using TileList bound to an ArrayCollection. The array collection is empty at load time, and then updates with the results from am HTTPService call. The problem is that the item renderers aren't being rendered as expected, I'm guessing because there was no data when they were first rendered at load time. Here's simplified example:
I've got a Gridcolumn in a Datagrid (Spark). The Column's dataprovider is a Number value that gets updated via Binding.Now, without an item renderer the cell displays the correct values.If I set an item renderer, I can't access the values in this renderer.My renderer looks like this, so nothing really do here (for now) but to trace the value, but the value is always NaN.