ActionScript 3.0 :: Removing Specific Item From An Array Without Splice?
Jan 23, 2010
I have an unordered ever-changing array that looks something like this:
12,23,1,4,11
I just want to basically tell the code to remove a specific item, let's say "23". But since the array is constantly changing length, I can't use splice.I also can't have any gaps, such as "12,,1,4,11". It must return "12,1,4,11".And on a related note, can I then check if this array has the same content of numbers as another array (and do I have to put them both in numeric order before it can perform the check, or doesn't it matter that they're not in the same order, as long as they have the same contents)?
I am having an array of movieclips and when my circle(controlled with the keyboard) hitTests true with one of the movieclips inside that array i want to remove that movieclip from the array so when i hitTest it again it returns false (I hitTest using a "for in" with that array).How do i remove a specific item from within an array?
I have 2 arrays & 2 checkbox repeaters: the second gets populated w/ items selected from the first. I can add the items no problem. How do I then delete the item if it gets deselected from the first checkbox repeater?
I am trying to add some Sprite objects as the contents of an array, and I would like to be able to "clear" them from the stage. I would assume that if there are loaders involved, I need to do _imgArray[i].close(); _imgArray[i].unload();
And if I am using a sprite, I can do: removeChild(_imgArray[i]); None of the above work.
Currently I try: for(i = 0; i < _localXML.length(); i++) { var tmp:BMLink = new BMLink(_localXML[i], _bw, _bh, i); _imgArray[i] = tmp; _imgArray[i].x = (_bw + _mainpad) * i; _base.addChild(_imgArray[i]); But this doesn't work.
The class instances that are populating the array are all extending sprite, but they have their own individual loaders inside w/ progress events etc.
I have 16 instances of the same movie clip. The movie clip is made up of 16 frames, each with the picture of a face on it. I want it to work such that when I click my button, each face only appears once, so that all 16 different faces are on the screen. I have been trying to use an array containing the numbers 1-16, and removing them as they are randomly selected. However, with the splice function, I can't pick and choose which number is removed.
How to I pick a random number from an array of 16 numbers, and then remove that specific number from the array so it can't be selected again?
I have the problem with creating multiply functions. I want to create onRelease function for every item in array that will navigate to specific URL from xml.Here is the code:
for(var i=0;i<numOfItems;i++) { var t = home.attachMovie("item","item"+i,i+1);[code]....
The problem is that the trace for url will work if I put nodes[0] for example instead of [i].
From what I know the whole idea behind having collection classes is introduce extra wrapper methods which will be handy for developers.
Then why does ArrayCollection in Flex not seem to have some methods that array has. ArrayCollection does not have a copy, concat, join or splice methods which return a new array so we need to do the copy manually?
What I am trying to do is splice the array at the right time in my code so it will disappear from my array- and the affect would be the returnRandom() function won't return that same item ever again. [url]...
i am loading in and xml file based on the structure below...
[Code]...
So what i am trying to do is to Splice the array into 2 parts, all the question ID's that are A and all that are B for for example are placed into 2 new array's like so:
[Code]...
but i am having problems with the code below trying to splice them and seperate them,
I am working on a basic game in order to practice my AS3 coding skills. The point I am at is that when my enemies (Falling vertically down) touch the bottom of the stage I want to make all enemies in all of my arrays be removed. Now, the code below works perfect for that description of what I want, but it does not remove everything at the same time. Instead it does not remove all of them at the same time, and it's very noticable. As in there is about a 3-4 second gap between when the first dissapears and when the last does.
So will I need to completely optimize my entire project, or is that any way I can do this process that is more efficient? Also what are your thought on just changing all of the enemies y coordinates to -100 or something at first, and then removing them while they are off the stage?
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?
I am trying to replace an Object inside my nested array (colArray) by using splice, the object acts as my player and will need to maneuver around the Array it's in. The Problem is splice doesn't appear to be showing anything in return, it comes up with an error saying: Cannot access a property or method of a null object reference.What am i doing wrong ? And how would i go with moving my playerObject around the array?
var gridContainerMC:MovieClip = new MovieClip(); var gridSize:Array = [col,row]; //Rows, Columns var gridArray:Array = new Array(); var col:Number = 44;
I have an array with many values pushed into it (happen to be names of objects). I am using a for loop to check all of the objects (by index number) for collisions, etc. Periodically, depending on a condition, I want to remove the currently checked object's name from the array list. I noticed that there is a problem if I immediately splice the checked name from the list. Namely, the list gets shorter, which is what I want, but not until I'm done checking all objects. Is it a good idea to solve the issue by incrementing i-- after the splice? I do this so that the object that used to be next in the list doesn't get skipped.It seems to work very well but I want to know if this is a lame/problematic solution and if there are any better ways of dealing with it
for (i=0;i<myarray.length;i++){ var ob=myarray[i] //any old condition
so my array is longer but u get the point. i want it to whenever i click on any letter, cause they are all on buttons, the one i clicked dissapears. i dont know how to work splice with the "i" variable,
I have a drag and drop game. You listen to a sound for exampl "bread" You proceed to drag that mc to a box. If it is the right object I want to remove that mc and splice the array so it doesn't choose that object anymore. However I have notices two things.
When I splice(0) a specific element - then nothing works. When I splice the cuurent indexed element ie: the last element to get right - it doesn't actually remove it from the array. I have highlighted the key code parts.
I've created a navigation system using Flash 3D functionality. It consists of a MovieClip with a rounded rectangle + a text with no-antialias bitmap font. I'm using Tweener to modify the z co-ordinates of the mc to make it "slide onto" the stage. However when the mc is completed animating it is notably blurry (the text at least). I was wondering if it might just be because it's in 3D-space the perspective (which hasn't been modified) is throwing the rendering off. So onComplete of the animation I try assigning null to the z-value in hopes of removing the item from the 3D space. I've attached the package code I'm using to create and animate the navigation feature.
When would you want to use removeAll() vs just new ArrayCollection when you want to clear an array collection. Remove all iterates though each item in the list. I can't see a case when I would want to use it.
I have a sell function for my towers that when you select them and click the "Sell button" it removes the turret from the screen and stops it from firing. This all works fine.
But my problem comes when i have placed two of the same tower types on the screen at once. What happens is that it deletes everything and not just one tower like i want.
Ive thought about how i could do this and so far i have been unsuccessful in doing this.
deal with deleting a specific movie clip from the stage.
The code in question with dealing with making the Turrets is Below.
function makeTurret(xValue:int,yValue:int):void{ var turret:Turret = new Turret(); turret.x = xValue+12.5;
I cant get this working at all, I have a movieclip that when it gets to frame 22 I want it removed from stage. As it gets to this frame it increases a variable by 100 and when I have it invisible it keeps increasing the variable infinitely which I dont want. How do I completely remove the movieclip from the stage (it starts placed on the stage from my library).
I put my mc's in an array.I have another array with strings.when the mc is clicked I want to get its position in the mc array and return the string from the same position in the string array.How do I do that?
PHP Code: var numBtnArray:Array = new Array; function addNumButtonsToStage():void{
I have many items on the stage and when clicking on one, I want other specific items to react accordingly.
Here's the relevant code: public var currentClick; public var activeCurrent:Boolean = false; public function init(){ addEventListener(MouseEvent.CLICK, reportClick); } function reportClick(event:MouseEvent):void { [Code] .....
I want to click on "item1_mc", have the specified objects move away and then when clicking on item1_mc again I want to have them move back to their original positions. When clicking on "item1_mc" it provides both trace statements and performs the second if statement, even though "activeCurrent" is set to false. Further clicking only creates the trace statements and nothing else.
I have a textBox and I am using it as a mail address input field where the user can type in several addresses, a bit same as in hotmail. Each address is rendered into a clickable button. Thus upon double-clicking on a specific address I want the item to be editable. After having edited the address when the user taps enter, the item is added to the list of mail adds.I am adding it using the code below:
flowBox.addChildAt( myItem, myindex);
However addChildAt seems to add the item as the last item in the list. But I want it to add the item the position where it was originally. Say the item was at position 2 in the mail list, after editing adn tapping enter, it should add at position 2 itself and not at the end of the list.
I have a textBox and I am using it as a mail address input field where the user can type in several addresses, a bit same as in hotmail. Each address is rendered into a clickable button. Thus upon double-clicking on a specific address I want the item to be editable. After having edited the address when the user taps enter, the item is added to the list of mail adds.I am adding it using the code below:flowBox.addChildAt( myItem, myindex);However addChildAt seems to add the item as the last item in the list. But I want it to add the item the position where it was originally. Say the item was at position 2 in the mail list, after editing adn tapping enter,
I know how to remove duplicates from an array, but what I'm trying to do is prevent an item from ever being added to an array in the first place if it already exists. I'm pulling in data from an xml feed in a loop, and I thought that searching for that values index would work, but no matter what, the index is always -1. Here's my code:
[Code]...
Maybe I'm misunderstanding the indexOf function, but I thought it was supposed to return -1 if a value did not exist in an array. What am I doing wrong?