I have an array used to track shots fired from a cannon, and when they hit the ground they are removed.
I would like to know what is the most efficient way of finding and removing a certain element from an array. I heard that using pop() instead of splice() was faster, is it ?
Also, the big question I have is that the only way I see of actually finding the element in the array is using
Code: for(i=0;i<array.length;i++){ if(array[i] == movieClipToRemove){ //i == movieClip index in the array } }
Then I would use either splice() or pop() to remove it from the array before deleting the MC. Is there a better way than scanning through the whole array comparing each element to the triggering MC ?
I have an array of objects. Each object has a property called name. I want to efficiently remove an object with a particular name from the array. Is this the BEST way?
private function RemoveSpoke(Name:String):void { var Temp:Array=new Array; for each (var S:Object in Spokes) {
i have items drawn my stage dynamically and information regarding them in arrays.when i remove an item from the display list:Code:a.target.graphics.clear(); then use the spliceď and index of method to locate chosen MC remove their values from specific array :Code:mcName.splice(mcName.indexOf(+mcRef.boxCount),1);Now when i remove any item which isnt the lastitem of the array, then trace all the data of the array using a loop the values appear to have corrupt? like they have lost the order in the array since one was removed?
Using a for-loop I made a grid of movieclips. But I wanted it so every second row had one less than the one above it. I thought I had that sorted when I placed an if statement in the method. However, flash still "sees" the missing movieclip. I've tried to splice the array element from it, but instead of removing it, it seems to have copied it.
How can i remove the element from array in actionscript? i have this array: myArray = new Array ("1","2", "3", "4", "5"); i want to remove the element "3" when i press button.
I am trying to remove an element from an array by using splice like:
Code: myArray[1].splice(2,1);
This works & finds the element I am looking for but it doesn't really remove the element but it will just insert a blank object instead. Am I doing something wrong here. How would I "really" remove the element, meaning that the Array would become shorter?
Of course the remove function is my pb, not done yet. How can I remove the same object from the array, knowing that the array can contain several times the same object, so I do not want to delete it many times but just the good one? So the trick is to remove only the object associated with the johndoe button. Maybe the pb comes from the way I push the elements?
I'm trying to remove all objects from an array, and then emptying the array using splice. I'm restarting the game, removing all objects etc so that I can add them again. But what happens is that no object (enemies, blocks, bullets etc) is really removed. It's not visible anymore, but it's still on the stage wreaking havoc (hit detection still working, so enemies are avoiding enemies that were supposed to be removed, bullets hitting them and so on). And then when I restart the game a couple of times I have way too many objects and the game starts to lag. Code below: This is the code for the enemy, I have different loops for the other objects, but they all look the same: Code: for(var a=0; a<enemy1.length; a++) //loop through enemy1 { if(enemy1[a].dead == true) //check if dead { removeChild(enemy1[a]); //remove from stage enemy1.splice(a,1); //remove element from array }} So to reiterate, I need to remove the objects from the stage, and clear/empty the array.
I have an array containing objects, where each object contains a boolean. I was wondering how I can remove only the objects where the boolean is set to true.I've tried doing it like this:
But it doesn't seem to work that well. (Reason for it not working may very well be another reason, but I thought I'd check here anyway since I'm an AS3 novice)
but adding "removeDuplicates(aPeople);" after "createfile(thename);" has no effect: in other words, when I push the savefile button, it keeps creating clones of the same objects. What can I do?
I'm working on a game for the iPhone using flash, and since memory is crucial i want to clean up displayObjects not needed. All the objects i need to delete is MovieClips taken from some array to another using splice(). Here is the [code]...
How on earth do I use the onMouseDown event to remove objects generated by an array?
I'm still programming (if my bumbling can be called that ) the game I discussed in the 'Random Object Generation' thread and I'm using the basic framework of the array function that h88 gave me. Everything is working fabulously, but getting the things to disappear onMouseDown is a problem - it doesn't work.
Oh, and if I reference Target.prototype.onMouseDown and tell it it to this.unloadMovie, it unloads every single target on the screen instead of the one your mouse is actually over, making for a fairly... lame... game. I'm pretty sure it's because every single clip generated by the array is a Target prototype instance and so when the MouseDown occurrs, it unloads every Target movieClip. And I am using a hitTest in the Target.prototype.onMouseDown command, so that doesn't solve anything...
ive come across this method 'as' and I dont get it.I am following a tut, and i have an array with my objects stored in it(for reference to control these sprites).They are instantiations of my sprite class 'Ball.as'
Code: for(i=0;i<3;i++){ var myMCs:Ball = myMCs[i] as Ball; }
when I remove it - flash doesnt seem to mind its absence.
Is it possible to, if you have an array of class names like ActionScript Code: var city01names:Array = ["pic_01", "pic_02", "pic_03" ...] make a new array which would read these names, instantiate them, and push them into a new array containing the instances of all these pictures, which I could then use for a slideshow?
I have an array called dropTarg1 which stores dropped-in items.I want to loop through this array and in a textfield, display each array item on a new line of this text fieldI think I need to use something like Array.join("/n") but I can't get it working properly. I hope that the /n would create a new line of the text field called reviewBoxContentText.
I have 4 buttons and an empty array. When a button is clicked,I'm adding a element to an array with array.push. However, I want to check the array 1st to see if that element exists. If so, then don't add it. Here's what I have thus far
[Code]...
Now I'm taking it I'd have a conditional statement to see if the element already exists. Unfortunatly I cannot just disable the button. I searched the AS dictionary but oddly enough it doesn't have an easy way to search an array. And IndexOf seems to only work for a string.
I am wondering how to remove a specific element from a vector.[code]...
So from the code example above I was using Element.pop() but thats wrong -I think -as it removes the LAST element. I need to remove the element at the location of the match.
I want another array which takes the values of the price from the 1st Array. Can we do something like this? private var another_price_array:Array = [all_array.price]; This second array will be used to populate a ComboBox, or can I populate the combo directly from the first array itself?
I have some generic functions like copy, paste,etc in an AS file. I want to use them for editing data present in different mxml applications embedded in one application. If I pass the child's component id as a parameter of a function in one of the events, I get the value as either null or the parent app name. But I want the id of the child's component to access the values.
I'm trying to find a generic way to select everything on the stage, because when I leave a frame, I want everything to fade out. But the user will be leaving multiple frames, so I would like to do it without specifying various objects depending on what frame they're on. I realize there are a lot of ways to "skin this cat", and I will fall back on something else if this isn't possible.
I know that I can't asisgn text generically to a dynamic text box like this: this["blah"+sumNum].text = But is there a method that would work similarly to this?
i need to split a large text file into an array at line breaks so one array element = one line.i have tried the using "" in both match() and in RegExp but it doesnt work.i had the g and m flags on. tried the $ sign too.
I have an array of temporary objects created in a for loop. The objects are of type class "Tile", a class I created. However, it appears that whenever I create a lot of tiles in the for loop, the program slows down indefinitely.
While the array is whiped at a later trigger point, I am thinking that perhaps these Tile objects are not being erased from memory. They are being created on the fly in a for loop, and the array is being reset to "array = []".
Are the objects still in memory or are they cleaned up when the array is set to []?