ActionScript 3.0 :: Create A Localconnection Object In Both The Parent And Child?
Jun 22, 2009
its necessary to create a localconnection object in both the parent and child swf if bi directional comm is desired ?? so ..
[Code]...
the child is loaded and unloaded multiple times ..the 1st time .. no issues ..everytime thereafter when the child is loaded .. I get .. "ArgumentError: Error #2082: Connect failed because the object is already connected." when the child is unloaded .."ArgumentError: Error #2083: Close failed because the object is not connected."seems like the connection is persistant until the child is instantiated
I want to listen for a custom event dispatched from the document class in a custom subclass. For example, let's say in the document class I have:
ActionScript Code:[code]....
So that the subclass will trace 'Event from document class received' when the 'customEvent' event from the document class is listened by the eventlistener. However, the output is only 'customEvent dispatched', meaning it wasn't heard in the subclass.
I got a Parent Sprite, let's name it SpriteP, which holds inside it two other Sprites. Sprite1 and Sprite2.[code]Sprite2 is a rectangle. When I rotate it, of course, the height of its parent, SpriteP, GROWS. But I would expect that height to go back to what it should be when I'm removing Sprite2!And it does! If I remove Sprite2 while NOT being rotated, the height of the parent drops back to normal, 200.
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).
I got a Parent Sprite, let's name it SpriteP, which holds inside it two other Sprites. Sprite1 and Sprite2.
When Sprite2 is NOT rotated:
Code: trace(SpriteP.width + ' ' + SpriteP.height); //100 250. SpriteP.removeChild(Sprite2) trace(SpriteP.width + ' ' + SpriteP.height); //100 200. -> works, 200 is good. When Sprite2 is rotated at 90:
[Code].....
And it does! If I remove Sprite2 while NOT being rotated, the height of the parent drops back to normal, 200. But if I rotate Sprite2, the Parent won't update its bounds.
Im using the following code to place an object inside a container:
testParent = new MovieClip(); testParent.graphics..beginFill(0x0000FF); testParent.graphics.drawRect(50, 50, 300, 300);
[Code].....
this gives the testParent object a margin of 50 from top and left. The testChild object should have have the same margin relative to stage. But doesnt.. The child object is at 0,0 relative to stage. Whats causing this?...
is there anyway to create and define a variable in a child from the parent? For example, if I add a child to the stage with code, and then want to be able to say
child.variable=0
to create a variable in the child and be able to edit and read the variable. I know the above code is way off but it's just to kinda get the point through.I have to define the variable this way.
So I have a MC called "slider" slider has multiple graphics and clips and buttons in it. I have an event handler that tells the "slider" clip to move when you rollover and to move back when you rollout. Problem is that anything you rollover in the parent clip, once rolled off, even thought it is still in the parent clip, it triggers the rollout action.
If an object, or say... a document class, creates an instance of a class (and stores it as a variable), and it doesn't pass any arguments to the constructor of the class, can that class object, by simply having a function of it called by the parent, tell who sent it that command/request?In other words, can a class object know who called it (such as it's parent) via a (seemingly) anonymous call?
So, I have the following layering situation Stage --moveclip1 --movieclip2 ----movieclip3 ------movieclip4
I was wondering if it was possible for movieclip4 to be on top of movieclip1, even though movieclip1 is (and must remain) in a layer on top of movieclip2. This should happen when movieclip3 is being clicked (and movieclip4 shows up).
I tried adding this to the mouseclick event of movieclip4: Code: this.parent.parent.addChild(event.currentTarget as DisplayObject); (I tried with and without "parent", and with different numbers of "parents"... cause I kind of lose counts of the parents there). but... it doesn't work.
I am trying to get a circle shape and a text-field sit inside a square sprite, using addChild() method. Both the children seem not to agree sitting in the lap of their parent; and are sitting at a distance, instead. If I create a square symbol on the stage and run the application, everything is fine.
I'm having a hard time working out the most appropriate way to move a child movieclip between parent objects.
I'm creating a board-game type game wherein I've dynamically created an array of 'Square' movieclips, with no visual elements, which are arranged in a 10x10 rectangle on the stage. I then dynamically add the appropriate types of piece movieclips to the various squares with the addChild() method. In general, a square should only have one child piece at a time.
All of this works well for setting up the play area, but now I'm having an issue with moving a piece from one square to another. I want to have the user click a square with a piece on it, then click the destination square to move the piece. I have the logic for determining where a user can move any given piece to, but I don't know how to actually move the piece.
The pieces are all different class objects that extend both a base class I call Piece as well as the MovieClip class. The main issue is that when dynamically adding the various pieces to the squares, I don't provide them a unique name to access them later. I don't bother with unique names because I have no way of knowing which piece instance will be in a given square, so using getChildByName(name:String) isn't very useful.
So I can think of two routes that I can take: Making a getter/setter for the Square class that manages a private Piece property (as well as the adding and removing of the child piece to/from the parent square), or using getChildAt(index:int) to try to access the child piece.
I want to go with the first route as it seems to be the most maintainable to me. My problem is that I can't work out how to manage empty squares in this scenario. My instinct is to null to private _piece property of one square once I've moved the child piece instance to another square... but I'm fairly certain that the private property is a reference type, and nulling it out will null the actual piece object even after it's changed parents.
[code]All clips are squared.Ok, on the PlayerPlane, there are little soldiers, which have hotkeys. The effect I'm trying to create is I want to position the GameStage so that the currently selected soldier appears in the center of the GameClicker clip.The GameStage is movable by the player (to scan other areas of the map)by holding the CTRL key, so it's easy to kinda lose track of where your players are.I have tried using localTo Global and globalToLocal techniques, but I think I'm lost on the actual math of getting the GameStage to move the correct distance so that the selected soldier is centered to the GameClicker.[code]
whats the best least buggiest way to ensure that on mouse over, the moused over object is the last child of the parent, and will appear in front of everything else?
I have a parent .swf who load 3-4 external swf. In a external swf (let's name it "X") u can order items u want. Because i don't want to lose the informations of the 'shopping' bag of customer when the parent swf unload the 'X' and load something another (for example "contact us"), i use localconnection with both duplex between parent swf and 'X'.
Problem: In the swf "X" i have an array "Bag" which holds the id of items the customer clicked to buy. When change the external swf, i send via localconnection to the parent .swf this array (done, i tried with trace). And when the parent loads again the external .swf "X" , it send again the same array via localconnection to "X". The "X" receives it right (done, i verified it with trace). The strange is.. when the customer clicks another item, the array resets to zero!!!
I got a "preloader" that creates an movieclip and loads an SWF. Now in the loaded SWF i want a close button to go back to the "preloader". The preloader isn't an actuall preloader but some sort of mainclip.Now i tried this:removeChild(MovieClip(e.currentTarget).parent.pare nt.parent)But i get error:ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.at flash.display::DisplayObjectContainer/removeChild()at MethodInfo-6()
if I add a clip to the stage as a child and remove the parent and set the parent equal to null, does the child get collected and removed from memory? What if the child has an image loaded into it as its child?
In my application I'm loading a series of png images as overlays that can be tinted for customizing in this app. When I trace my memory, the basic app idles at 64,000 k. The exact second I load those overlay images it goes up to 205,000k. If I remove those clips and "clear" the stage I should go back down to 64,000 k if everything is removed and collected correctly, right? It's not, it's hanging at 215,000 k. Are my images being cached and that is the reason for the memory staying up? If so, how do I prevent that. Or upon removing the parent of the image how can I un-cache the image.
If a user switches between models and loads several different items then the application actually crashes the Flash environment because of too much memory usage. It also does the same to browsers.
I have a parent swf which loads many child swfs (though only one is displayed at a time). My intention was to use the loaded SWFs document class to retrieve an array of objects to be assigned a tab index, combine this with the parent's own array of objects and apply sequential tab indices to them all. But what happens is actually that the parent's objects are assigned an index, but the external swf is unaffected. In fact, the external swf retains its automatic tab indexing, when I would expect that having set a value for InteractiveObject.tabIndex, automatic tab indexing would be disabled.
I've seen similar tales elsewhere. Most posts I've read are wanting to load an external swf, give it focus and loop through those objects, then close the swf and return to looping through the parent. However I would like loop through all objects as one. including manipulating the focus manager(s), and basically fiddling with every tab-related property I know.
trying to on mouse over set the parent of the moused over text field to the highest depth child of its parent i tried both of these: [code] private function
I have a web site that creates a page by calling another class object. When I return from that page to the Main page I want the old page removed. I have done it like this but I am getting errors.
Two vars in GlobalVarsContainer: public static var removePages:Boolean; public static var pageToRemove:Object;
Create new page object: function onClickBtn1():void { var servicesHome:ServicesHome=new ServicesHome(); addChild(servicesHome); } [Code] .....
This is the error: ReferenceError: Error #1065: Variable servicesHome is not defined. So I know it's getting back here with all vars set correctly. I've tried changing the public static var pageToRemove:Object; to a string but that is not right.
I have an issue where removechild won't infact remove a child. I think its something to do with my dropTarget.parent issues. The concept of the code is that you drag a source onto a destination. When you drop the source onto the destination you will get a text field that says "Hello" or "Goodbye". The objective i want to achive is that once i drop a source onto the destination, removechild will remove any previouse textfields added. This is proving difficult.
The first one (FLEX application) sends a message on a dedicated LocalConnection to a second one (Flash application). The Flash then answers by sending a message on another dedicated LocalConnection. This message is not directly received by the FLEX and the delay is at least 30s, up to 1 or 2 minutes! It seems the issue only occurs with Flash Player >= 10 and it never occurs with Chrome.
I didn't find anything on the web concerning a similar issue nor something in Flash Player release notes. Did someone already have this kind of problem?
By the way, is there any tool that can be used to sniffer LocalConnection communications?
Additional information:
swf are located in different frames swf are embed with swfobject I tried to delay the Flash sending, I tried to create another LocalConnection dedicated to this call but I always had same result: for all calls, the FLEX method is called after the same delay. I also put a timer in FLEX to periodically log to see if there is no background process delaying the method processing but everything seems fine
I am trying to make a calculator where a user can select from a list of items. If a user clicks say "ITEM1", it should add the item to a "CONTAINER_MC". The problem i have is all my data is set inside an array containing names and prices like the code below.
Here is a working script to drag drop a ball from the stage into another target mc:
ball.addEventListener(MouseEvent.MOUSE_DOWN, pickUp); stage.addEventListener(MouseEvent.MOUSE_UP, dropIt); function pickUp(event:MouseEvent):void{ [code]...
It works well but I'm new to AS3 and I am having difficulty amending this script to drag the ball out of a parent mc (instead of the stage) and onto another mc (the target mc). To explain: imagine a ball, a box, a tri, + more shapes all within a scrolling mc (initial parent), the user scrolls to select a shape, then drag-drops onto a target mc on the stage.The scrolling is no problem, but how would you amend the script above so that the ball can start inside a parent mc rather than on the stage itself?
I am trying to create a localconnection between my AIR app and a local SWF file. For some reason The connection is throwing back an AsyncError and won't call the method in the swf. Is there a security issue? Is there a special way to connect using AIR?
I have an Movie Clip in Flash that have subobject of button type which has subobject of input text and movie clips. Right after creation core Moveclip all subobject are set to null, when I expect them to be valid objects.
[Code]...
MC_Core_design was created in Flash and exported to Actionscript. I've done this for button_1 class aswell. The code was written using Flex. When I comment out both lines that result in error I get correct view of the core Movie clip with all subobject. How can I set subobject properties right after object creation?