Flex :: Pass An Array To A Function Using The ... Rest Construction?
Feb 2, 2011
I'm making multiple similar calls with similar results to one remote object. Because these calls are so similar and very changeable, I've been keeping the name of the remote method in a config file, and when I need to make the call I use getOperation() on the remote object, and call send() on the operation object. However, the requirements have changed so that not all of the calls will have the same number of parameters. Because send uses ..., will I be able to continue using the same formation and pass an array, or will send() treat that as passing one argument of type array?
I have a function that uses the ... rest argument as follows:
public function dispatchActions(... actions):void { var params:Object = new Object(); params.actions = actions; // I also tried casting ie. = (actions as Array) this.target.dispatchEvent(new ActionEvent(ActionEvent.dispatchActions, params)); }
I call it using myActionObject.dispatchActions("all"); The problem is that when a listener receives the dispatched params object and try to access the actions array, it does nothing. If I try to trace evt.params.actions it traces blank and if I try to trace evt.params.actions[0] it traces undefined.
ex:
function actionsListener(evt:ActionEvent):void { var actions:Array = (evt.params.actions) as Array; // I also tried without casting trace("actions", actions, "actions 0", actions[0], "action 1", actions[1]); }
This is the output: actions actions 0 undefined actions 1 undefinedI don't understand why I can't pass the ... rest argument through an object as an event parameter. How can I make this work?
I have a function call as shown here: ActionScript Code:c.draw(colorRead.population); In this function, I would like it to be able to print out population as part of the string for my toolTip. Note, what is in the parameter here may not be the case in every of the instance I need to create.
In AS2 I have several arrays constructed like this : var myArray0:Array=new Array(value,value,value...) var myArray1:Array=new Array(value,value,value...) var myArray2:Array=new Array(value,value,value...) var myArray4:Array=new Array(value,value,value...) ...
What I'm trying to do is use iteration to reference each array name to pass it into a function. Like : function doSomethingWithArray(arrayToPass){ ... } //Later somewhere in For loop... : _root["myButton"+i].onRelease=function(){ doSomethingWithArray(WHAT-THE-HELL-I-TYPE-HERE[i]) }
The Setup: For each movieclip the hittests a set of "target" movieclips an array is given a value. If mcIcon1 is dropped onto mcTarget1 the first number in the vacant array is given the value of one. The Issue: If I remove mcIcon1, for example, from the mcTarget1 movieclip I can't find a way of just removing the 1 from that array without the rest of the array numbers being reset.
I'm working with arrays in AS3 and some of the utility functions described in the livedocs such as filter() or some() would be very useful to me, if only I could pass parameters to them...
Actually, I cannot find a single example of the use of these functions with custom parameters passed to their callbacks. Everywhere, it is always used with constants ! E.g. on this page: [URL]
var arr:Array = new Array();var totalElements:uint = 100;for(var i:uint = 0; i<totalElements; i++) { arr[i] = Math.round(Math.random()*100);}function isLargerThan90(element:*, index:int, arr:Array):Boolean { return element > 90;}var highestNumbers:Array = arr.filter(isLargerThan90);trace(highestNumbers);
What I need is a kind of "isLargerThan" function with "90" as an argument's value, not as a constant. Something like
function isLargerThan(element:*, index:int, arr:Array, param:Object):Boolean { return element > (param as Number);}I find it very odd that I cannot find no mention of the way to do this on the whole WWW, because that makes these utility functions absolutely helpless in many many cases and programming with arrays a real pain...
In AS2 I have several arrays constructed like this :
var myArray0:Array=new Array(value,value,value...) var myArray1:Array=new Array(value,value,value...) var myArray2:Array=new Array(value,value,value...) var myArray4:Array=new Array(value,value,value...) ...
What I'm trying to do is use iteration to reference each array name to pass it into a function.
I have a TabNavigator, and each tab is a Module. One of the modules is labelled Units and the full code of the module is posted in this post. There are several problems:
1) Forms are not populated with data from the datagrid selection. 2) Selecting a row and clicking delete gives the very-common error: TypeError: Error #1009: Cannot access a property or method of a null object reference.
A trace on the valueObject unit within the selectionChangeHandler function gives NULL. Why? Note: In other modules (other tabs of the TabNavigator), I have DropDownLists populated with units. This means that the valueObject Unit is defined in the other modules. However, valueObjects should be private to modules, and not shared.
In as3, I am adding event listener and then attaching the anonymous function to it:[code]Now this whole piece of code is looped n times. Now, I have n myBoxes and whenever I roll my mouse over the box, it should alert the name. But, what I see is that the last value of count is used by each box. How can I pass parameter or value to the anonymous function? ( as roll over , I believe, expects only one variable)
I'm trying to extend the functionality (not extend the class itself) of the netconnection.call() function by enclosing a netconnection instance in a class.What I'm attempting to do is have a function that I have defined as "call" make a call to mynetconnection.call("", null, ...rest). For example:
Code: public function call(method:String, ...rest):void { this.mync.call(method, null, rest); }
I have tried repeatedly to do this, and it's not working. The rest parameter feeds the parameters into an array, but is there any way to undo that on the inside of the method and pass a pseudo-list of parameters to nc.call() so that it will see it correctly?Is it possible to duplicate the functionality of a ...rest parameter into another function?
I have a mxml component with a datagrid listing project names and code versions. I have the selected projects from the datagrid binded to a public variable named "selectedProjects". But how to access this variable in another mxml component. I want the selected project's name in that component's text area. I even created an instance of the first component and using that called the selectedProjects variable. But I do not get the value updated in the text area.
This is the code for the first component where I get the selected projects name in a variable:
Since when using sql lite if you try and do a function at the same moment it throws an error, im just trying to make a function that will check if its executing, and if it is try again in 10 milliseconds, this exact function works fine if i dont have to pass any arguments to the function but im confused how I can pass the vars back into the function it'll be executing.[code]
I hope I have worded the question ok. I know that you can pass the 'id' of the component but I'm just wondering if there is a more generic way. I have tried using 'this' (shown in example below) but the 'this' keyword refers to the application.
and i want to show these values on the Yaxis and months on Xaxis....
I have two Qns,
1) how can I pass this array to Bar chart or column chart.
2) how do I need to show months on Xaxis. beacuse I'm asking this regarding, I have kept a filters that even if we want to see some months or a particular months or perticalar span of months... there on Xaxis it need to change the months dynamically depending on the filters..... (for ex, on Xaxis the values should be (Jan, Apr, Jun,Oct) if i select the 3 months period filter....)
I have written a logic to collect the values of those particular months into an array, but not understading how to pass this array to Bar chart,, beacuse there I don't know what Xfield and Yfield to be given....
I want to create a application for a website, that can calculate a persons daily energiexpenditure. The user of the application has to put in his/her height, weight and sex. So I want the program to switch between diferent formels depending on the input given. For example the formel for a girl, age 8, 38 kg and 1.40 cm is: (0.071*38)+(0.68*1.4)+1.55
And the formel for a man, age 30, 75 kg and 1.80 cm is: (0.064*75)+2,84
how would you do the coding?
I considering making a if-else construction, that checks whether the sex is male og female. And within this if-else construction i want to make a switch case, thats switches between different forms depending on the age input.
This is what i've done so far:
ActionScript Code: public function energyintake() { var h:uint = 180; // The persons height in centimeters
I'm building a class that reads data from an xml file. The constructor takes the xml path and opens the file. It adds an event listener for the loading completion. But if constructor looks like
Code: var xmlLoader:URLLoader = new URLLoader(); var xmlData:XML = new XML(); xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded); xmlLoader.load(new URLRequest("..."));
it will (probably) end-up when xml is not loaded yet. Are there any ways to stop the constructor execution until the xmlLoaded function has finished?