ActionScript 3.0 :: Adding Child To An Array And Applying Hittest Object?
Mar 20, 2012
regarding adding multiple childs to an array these childs are added using timer after a time interval.actually there two classes and child of both classes are added to stage one through timer as i described and other through keyboard event. now is it possible to do this if yes than how?? and is it possible to apply hittest object between these two array.
I have a function that checks if 2 objects are touching OB1 and OB2, if they do touch it runs the rest of the collision code where OB1 is the character and OB2 is a tile that the player cannot pass through.
I came across an issue where i wanted sprites to be separate from the hitboxes but my collision code works by checking the height and width of an object (you guys know the drill).
So i have a Tile class with 2 parts to it, a bitmap and a movieClip.
So i have this setup(pseudocode):
Code: loop { function collision (ob1 , ob2[loop].movieclip) }
This should work right? But it ONLY works for the first object in the loop!
I was using hitTest to see when sunny (mc) would hit one of five objects I have in an array. But I had to use removeEventListener otherwise it would keep occurring. But now I can't "hit" the next object. Why doesn't the addeventListener work again?
stage.addEventListener(MouseEvent.CLICK, myClickReaction); // speeds ALONG NYPOTENUSEvar v:Number=5; var varObject:String; var i:Number; var arrayObjects:Array; [Code] .....
adding multiple childs to an array these childs are added using timer after a time interval.actually there two classes and child of both classes are added to stage one through timer as i described and other through keyboard event. now is it possible to do this if yes than how?? and is it possible to apply hittest object between these two array.
I've attached a zip with a few custom classes and a .FLA. Ignore the custom classes. I'm getting repeated "Error #1009: Cannot access a property or method of a null object reference. at Environment_fla::MainTimeline/hitTest()".
I understand that this error means I'm asking it to reference something that's no longer there. How better to hitTest many objects in an array. My game involves creating a bunch of balls that will fall into buckets. I need to keep track of how many touched the buckets, how many fell off the screen, and remove each accordingly.
Here is the code from my main FLA ActionScript Code: var ballTimer:Timer = new Timer(200); var changeTimer:Timer = new Timer(50000); ballTimer.addEventListener(TimerEvent.TIMER, throwBall, false, 0, true); ballTimer.start(); changeTimer.addEventListener(TimerEvent.TIMER, changeColor); changeTimer.start(); [Code] .....
For days now I have been trying to get this hit test to work and which ever way I try it, it always comes back to the same result. I get a hit on the last item I pushed into my array but none on the previous items I pushed in. Also if I put a .sort() on the array it only gives a hit on the last item of the array, no matter which one I push in.
The idea is that I want to drag and drop objects onto the stage, they may not overlap so I need a hit test on the objects so I can make them undroppable when the hit test is true.
This is the part I have for dragging the objects to the stage, and adding them to arrays for the hit test.
Code: private function onClickDragBuilding1ToGameField(e:MouseEvent):void{ building1Placeholder.x = mouseX-25; building1Placeholder.y = mouseY-25;
[Code]...
Now if I run this I can add the object to the stage just fine no errors or other issues but the hit test only works on the last object I added to the stage/array and not the previous object I added to the stage/array.
Sso I drag the first object to the stage. (no other object are available yet so nothing happens, this is as it should be) Then I drag a second object to the stage, this reacts to the first object and returns the hit test as true. (Also great and working as it should.) Then I drag a 3th object to the stage, this reacts to the 2nd object I dragged just fine and return a true value, but it does not react to the 1 object I dragged onto the stage. Then when I drag a 4th object to the stage it will react to the 3th object I added, but not the 1st ad 2nd object.
I'm exercising scripting and struggling with adding a child to a object when the creation of the child is wrapped in this function
function makeBox():void {var box:Shape = new Shape;box.graphics.beginFill(0x66FF00);box.graphics.lineStyle(5, 0x6600CC);box.graphics.drawRect(mouseX, mouseY, 50, 50);addChild(box);}
Now I want to add the above shape as a child to this object
var Clip:MovieClip = new MovieClip;addChild(Clip);
if the first code was not a finction I have no problem to add the child by Clip.addChild(box); but I cant figure out how to use it if it is as a function.
I am programming a "build a tower" game. After removing the event listener from the first movieclip, flash won't add the event listener to the by as3 to the stage attached new movieclip.
I'm having an issue with MOUSE_OUT triggering before MOUSE_OVER has a chance. I have a global mouse listener class that listens to every mouse event and sends the object involved a message telling it when a mouse event has happened. When a Menu object is opened it adds a bunch of children and when it's closed it removes them all. The problem comes when moving the mouse from the Menu to the Children, Menu receives a MOUSE_OUT event and closes before the Child receives a MOUSE_OVER.
I have written this little script, as i want to remove some of the text fields that are currently contained within the Display Objec, however it does not like to see the TextField as a varaible name. How would i convert the object from an array to become a textfield that can be removed, after being added through addChild()
This is the script
var delayHeading:Number = 1500;var repeatHeading:int = 1;var setShow:Timer = new Timer(delayHeading, repeatHeading);setShow.start();setShow.addEventListener(TimerEvent.TIMER_COMPLETE, maybeLater);
This program has a green ball (var ballplayer) that theplayer moves around in 3D space using the numpad keys (8, 2, 6, 4)to move the green ball (up, down, right, left). And it also usesthe up and down arrown keys to move the ball along the z-axis.There are also five red balls moving around the screen. As the redballs collide they turn blue. The red/blue balls are z-sorted, sothat the balls closer to the viewer appear in front. The balls allmove around in an invisible cube that they bounce off. Problem: How do I get the player's green ball to be z-sortedwith the other balls? I think I either need to add the green ballto the array called balls before it is sorted. Or create an arrayfor the green ball and then add the two arrays together (if that'spossible) before z-sorting. I tried to add the green ball directlyto the balls array but it didn't seem to work. I'm new to AS3 andprogramming, so I may have made a simple mistake.
I recieve the following error..Type Coercion failed: cannot convert Stinger@d8d43a1 to Array.[code]where laser.wielder is an Array that gets declared inside of the StingerLaser Class. As of right now, there is only one type of object I am trying to put into the the array. And that is stingerWhen trying to add an object that is type Stinger to an Array.[code]If no one can figure this issue out, atleast I would like to know how loose is an Array in actionscript? Can it take all types of classes or just classes that are of the same parent class or what?.
I'm having trouble with my code. I keep getting this error TypeError: Error #1009: Cannot access a property or method of a null object reference. at Test_fla::MainTimeline/frame1() I believe it has something to do with the array, considering it works when I remove the array stuff. What I'm trying to do is to be able to move objects through an array with my gravitate() function in the Grav Class.
stage.addEventListener(Event.ENTER_FRAME,onLoop, false, 0, true); for(var i:uint=0; i < numParticles; i++){ var p:Grav = new Grav(5, 0xff0000, Math.random()*250, Math.random()*250); addChild(p); particles.push(p); } function onLoop(evt:Event):void { //for(var i:uint=0; i < numParticles; i++){ //particles[i].gravitate(1,1); //}}
I'm going to be building a site for a photographer and would like to be able to do something like the thumbnail navigation in this example: [URL] I'm assuming it's adding the thumbnails to the Display Object via an array based on an external XML file, and displaying them once their corresponding full-size images are loaded ... Perhaps it's building the nav simply by looking to see how many photos there are in a folder on the server (i.e. no discreet XML added for each shot). Not sure if this idea is even possible -- would like to hear from any of you if in fact it is.
I've seen some discussion on how to load a child swf using swfLoader and accessing it's variables but I am wondering if it is possible to do this without adding any code to the child swf.Either accessing public vars or listening for funciton calls would work fine
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've been trying to carry out hitTest with the two child.They are namely enemy and weapon. However,it seems not working.I had been attempting to sort it out myself and searched the Internet but I got no idea of how to solve it.
stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler); function enterFrameHandler(event:Event) {[code]...........
Ive got this piece of script where i place objects on the stage, to hittest eachother.Ive got two seperate addchilds: one child must hittest another child.[code]only one instance of the hitte_mc will hittest with the instances of Ring.
i searched everywhere, i was not able to find a solutionmy xml menu implementation use a "main" Menu class. This class parse the xml file and create an aeeay of MenuItem class.MenuItem costructor is (stripped down version) something like this:Code:function MenuItem(name: String, url: String, parent_mc: MovieClip)parent_mc is a reference to the "container" MovieClip for Items (generally an emptymovieclip made by Menu class)
i have a mc called energybarmc, i have radomly multiplying and falling lightning called Lighten which has children and is getting collected by the character mcMilan when he hits it i wanted the energy bar level to increase by 10 pixels a small x and y co ordinate
this is located after a timerevent function:
if (Lighten.hitTestObject(mcMilan.hit)) { trace("hit"); removeChild(); ..... how do i implement the score code after the remove child? or do i put it before?
I've got some flash 2.0 code that is supposed to add 100 points after a hitTest.
Code: function onEnterFrame(){ connectA(); var strandID:Number function connectA(){ for (var i = 0; i < 100; i++) { if (this.hitTest(_root["A_" + i])) { this.strandID = i; _root.total = _root.total + 100; }}
The problem is that it adds 100 points 70 times per second (the frame rate). It's supposed to add 100 points and stop. Here's a little more info: the hitTest makes two movie clips move across the screen together. Maybe because they're constantly hitting as they move, I don't know.
ok so if i have an obect called square1 and an object called square2 and inside square2 i have hitArea... i want to use shapeflag to detect an absolute true hitTest on just the area of square1 not the bounding box.... i tried this code and it didnt work...
actionscript 2.0
ActionScript Code: if (_root.square1.hitTest(square2.hitArea._x, square2.hitArea._y, true)) {
when it comes to AS3 and I'm creating a drugdeler game in the spirit of old DopeWars. On my main timeline i have placed out 6 movieclips containing pictures of drugs and named the instances. In my actionscript i have created 2 arrays, one containing the instance-names of the drug movieclips and one containing the name and price of each drug in string
Now what I want to do is when you mouse over a drug-movieclip a textfield will appear containing the string associated with that particular drug.The problem is, I have no idea how to get a variable containing the drug[?] arraynumber and then applying it to the second array to get the string into the textfield.Here's my script;
I have 3 movie clips (MC's) on the stage. The instance names of these objects are in an array: var navItems:Array = new Array("nav1_mc", "nav2_mc", "nav3_mc"); I want to loop thru these movie clips and modify them with the following: for each (var item:String in navItems) { item.anyMethod = asdf; } If I trace item at this point, I get the correct string name that matches the MC, but it won't let me do this kind of operation at compile time. It throws a "1061: Call to a possibly unidentified method ..." How to get at a MovieClip using only a string of its name at runtime?
i am slightly confused about the parent and child relationship. lets assume we have several different instances, what would be difference of adding them all as children of the stage and creating a parent-child hierarchy between them(other than the access path).