ActionScript 3.0 :: Using Events To Notify Unrelated Displayobjects
Oct 1, 2009
I wanted to use dispatchEvent inside the MOUSE_OVER event of a menu item, setting the event type to a unique label which another displayobject somewhere in the display list (NEITHER a parent nor a child of the event dispatcher) would listen for, so that it could brighten. See the following lines of code:
in menu item class MOUSE_OVER handler: dispatchEvent( new MenuEvent( xml.@label.toString().toUpperCase()+"over") );
in "site button" class constructor - the thing I want to respond to your hovering over the menu by brightening (which over() does) :
addEventListener( xml.@label.toString().toUpperCase()+"over", function( e:Event ) { SiteButton( e.currentTarget ).over(); } );
It doesn't work. I screwed around with capture and bubble parameters.
how to do what I want in a simple way? I spent 2 hours already trying to figure this out.
I'm new to working with flash and have a quick question about embedding flash with the SWFObject.js file.I can successfully embed an object and play it, but what I'd like to know now is if there is a way that I can be notified when the movie is done being played without editing the flash file itself, since I have no real way to do that.
I keep getting the following error msg below I would be very happy if some knows the solution to this: Error Msg: 1118: Implicit coercion of a value with static type Object to a possibly unrelated type flash.events:Event Object A dispatches Event as:
I'm using document classes, and I've created a separate class to create many objects, with graphics and events, strings, etc. But I'd like to be able to add an event listener inside it that will call a function inside my Main document class..
Edit: or even have classes communicating with other classes.Having classes seems to cut off things from other things.
We have an application that so far uses AS3/AMFPHP, but we are finding this "request-response" model limited and feel we could make better use of sockets to deliver a more streamlined experience.The application is primarily a data-application containing no media streams.We want to open a socket to FMIS and use this as a pipe in which to stream data to and from the application.Consider this situation however, when values can be adapted externally outside of the FMS application: Example:A user who connects with $0.00 at the start of a Flash Client session, may topup money, via paypal externally. At this successful point, the users database value has $10.00, but FMS is still $0.00.How can FMS be informed of an external event such as this and update the client accordingly in real time?
I want to create custom error and notify messages, but i don't know which element should I use. In the message there should be icon and text I tried to use Label but don't know how to build custom label the one I need. Is there a resource on how to create a custom label or tip how to do it?
I have a custom Flex 4+ component that I am trying to make and have the skin be aware of changes to a custom property. This property will determine the graphic on the button (and some other visual changes) but the data will change constantly as it will be updated by a timer.
I've looked at untold examples and still seem unable to get the syntax correct or discover how things should be separated. I've looked at overriding commitProperties and the PropertyChangeEvent without success. So I have two questions.
1) How can I get a skin to be notified of a bound property when it changes?
2) If the data for a bound property of the component is an object, will binding work properly if a property of the object changes (or would it be better to pass each property separately)?
I have a SWF file having different scenes. This swf has one document class. I want to notify an event to a particular scene, when a change is happening in any function in document class. For example:
I have 3 scenes in an SWF and one document class. When a function will be invoked (from lower layer) in document class, I want to disable the button controls in Scene 2. How this is possible?
I have made an application in flash AS3 and I have implemented PayPal gateway, I want to update my credits text field automatically when PayPal executes my notify_url.php page. I want that my application get any notification when PayPal executes notify_url.php.Is there any method of getting response from PayPal?
I am "old style" guy who still use Flash authoring environment as I believe working with graphics this way is easier than scripting all the things in document class..So, I have created in Flash authoring a movieClip with a graphics nested in it. Actually, this graphic is composed of two other nested graphics:
How can I use displayObjects as animation frames?I have six symbols in my library I want to animate with a timer. The advantage would be the ability to change the speed of the animations, and the elimination of the messy timeline.
The only drawback is the initial setup of the objects in the library. I've tried switch/case design patterns, visible=true, and z-depth, but I can't get it to work properly. Any answers?
//setup code var timer:Timer = new Timer(100, 20); timer.addEventListener(TimerEvent.TIMER, countdown); function countdown(event:TimerEvent) {
How to copying display objects (sprites, movieclips etc) while keeping thier content (graphics, added display objects etc)in AS3? The most commonly suggested solution by Kirupa (
I'm working on a world builder that will load a toolkit which is represented by an xml document. The document will look similar to the following:[code]Now, I want to be able to represent this structure in flash. Vertical layout is easy enough, simply placing the elements from top to bottom. It gets mind-boggling when I need to do the following:Be able to click any folder and have all its children hidden/shown.Position the elements horizontally based on hierarchical position (indent children of folders, children of the child folders, etc)Position the folders/tools vertically when folders above and in the same "directory" are hidden.It either sounds a lot easier than it is, or I'm missing a vital and obvious step.Just to save confusion - when I make reference to "folders" and "tools", these are a MovieClip which is a simple block with text over it, like:[code]
I'm creating my first AS3 project and I've already hit my first snag, nested display objects (aka buttons and movieClips). Let's say you create a movieClip and place buttonA on frame 1 and buttonB on frame 10. You create a class for that movieClip that tells it to jump to frame X after evoking a custom method. With the same method you want to assign the buttons on that frame their functions, but you can't because Flash thinks that DisplayObject does not exist. How do you make sure all DisplayObjects for a frame have been loaded, so that you can reference them?
I have figured a way around it by using the ADDED event listener. Apparently this event is triggered every time any DisplayObject is added, whether it is nested or not. What's interesting is the number of children (numChildren) for the parent movieClip stays constant. So, this code takes advantage of that fact.
I want to create swf file without any DisplayObjects. All it has to do detect Events and save a Log. My main Application will load it as external swf file.
Is any way I can compile swf file do not extending Sprite or MovieClip?
there is a Class A, it has a timer which updates its x position periodically. So all the instance of Class A will update their own x position. There is another Class B which extends Class A and overrides the function which updates position to change y position and call the trace function.
Now what I do now is create two instance alpha1, alpha2 of Class A and other two instance beta1, beta2 of Class B.
- alpha1 is only instantiated, but not added to the stage.
- alpha2 is instantiated, and there after added to the stage.
- beta1 is only instantiated, but not added to the stage.
- beta2 is instantiated, and there after added to the stage.
- let say after few seconds, I remove alpha2 and beta2 from stage.
Now suppose the GC fires collection, who all would be collected ?
I've got another interesting Flash issue, and I was wondering if there was some weird case I had to account for. Here's the code: var c:DisplayObject; var t:Rectangle; c.width = t.width; trace(c.width, t.width); This results in output of: 0 13 I'm expecting '13 13' as the output..what would cause this to happen? It's sporadic, sometimes it'll happen, sometimes it doesn't. Is there some weird race condition I should double check for?
I am adding DisplayObjects to a Canvas using ContentContainer.addChild(c); Where ContentContainer is my Canvas object and c is the DisplayObject I have created at run-time. Some of these DisplayObjects also have children of there own which are added at run-time prior to the DisplayObject being added to the Canvas.
I then need to iterate over all the children of ContentContainer but the first time I do this, it says that ContentContainer has no children (i.e., ContentContainer.numChildren = 0). If I do it again tho then it is fine and returns the correct number of children. Is there something I need to call to get ContentContainer to recalculate how many children it has?
I have an array of Sprites on stage and want to now the rectangle that bounds them. I could do a loop and check each element's getBounds() but that could be computationally expensive.
I am very new to AS3, and I'm confused about how things that would have been simple in AS2 are so complex and tricky now. For example, I want to create a bunch TextField objects that, for some reason, rise up every frame (as in : object.y-=1; ).However, I also need each TextField to reference the TextField that was created just before it.
I tried creating a variable that would hold such a reference : ThisTextField.Ref=LastTextField; but - this returns an "Access of possibly undefined property..." error. It seems I can only have custom properties on mere Objects ! This is annoying because an Object doesn't seem to accept event listeners (remember, I need them to do something every frame). Is there a way to simply set custom properties on my TextFields, without having to use custom packages ? Or is there a way to use event listeners on Objects ? I've read something about strict mode which could allow setting properties on other objects - what are the risks of turning it off ?
ActionScript Code: private function drawMap(tile1:DisplayObject, tile2:DisplayObject):void { var _tile1 = tile1;
[Code].....
The idea behind this is to store custom sprites in an array and then feed the array to the drawMap function, which would use the sprites from the array to draw a map.
why Bitmaps are not considered children of displayObjects (at least from my observations, I think this is true). They themselves are displayObjects so therefore should be part of the display list. In fact, when multiple Bitmaps are in one MovieClip, it recognizes them as one child, a Shape instance. Could anyone explain this to me? I'm attaching an example with a few display objects in a movieclip.
I'm new to ActionScripts and was tasked to complete a project. I'm trying to split a big image so I can send them to a http server in chunks. I'm using a recursive function below and increasing the DisplayObjects X position on every iteration. The problem is I get the same image in every iteration and checking the encodeByteArray string value is always the same.
Code: var currentTileIndex:int = 0; function renderNextTile(e:Event):void{ if(currentTileIndex < tilesToLoad){ loader = new URLLoader(); [Code] .....
Since flex memory management is poor, objects once instantiated dont die very easily (even when they go out of scope), one would need to check on various properties of components. I am using one such thing to know if the screen (which is a display object) is in current view. For this I am turning on a boolean property (currently visible), and I am setting it true on show event of the display object.
What I need to know is, which event (something opposite of show, e.g left?) could be used when the screen is replaced by another display object?
Something like focusIn and focusOut from dotnet.
Or if there is some property which could directly tell me if the display object is currently in view (hasFocus doesnt seem to be giving me expected results).
How does Flash deal with elements that are off-stage?Obviously Flash doesn't actually render them (because they don't appear anywhere on-screen), but is the process of rendering them still existent, slowing down my game as much as it would if the elements were on-screen?
Or does Flash intelligently ignore elements who don't fall into a renderable area?Should I manually manage removing objects off the DisplayList and adding them back on as the exit and enter the stage, or is this going to be irrelevant?
anyway, so i'm having an issue when getting the dimensions of an image that is masked. I want to get only the dimensions of the visible image, but AS3 seems to only return the height/width of the whole image, even the areas that are not visible (because of the mask).
I could create a custom class that extends the DisplayObject and overwrites the height and width getter to return the dimensions of the mask, but my problem is that I'm placing these masked images into a container DisplayObject, and scaling that container to fit the browser window.
I'm trying to simulate some fade in/out effects in Action Script 3 programmatically, using Timer class and controlling alpha property of the specified DisplayObject in time. In general it works and looks great. As I was expecting. But after I add some more child DisplayObjects to the parent Sprite it starts to behave weirdly. Children seem to not fade at the same rate as parent object and it visually noticeable, and ugly. There seems to be a short lag after parent already started to fade out and before children actually follow. Are there any additional measures I should take to avoid that? I do alpha manipulation only on parent object. I thought that'd be logical...
I am having problems getting information that was calculated to display the results in a dynamic text box. It is pulling information from 3 separate boxes and making two calculations. It is then supposed to display the results in two separate dynamic text boxes.[code]The error message says "Implicit coercion of a value of type String to an unrelated type Number"
I have a game where there is a main application and separate SWC with classes for the objects in the game.
I have one object interacting with a second, where the second object's class has a timer that gets started. When the timer is up, I need the first object to move on to the next object.
For example, if the first object is a hose and the second object is a bucket, when I move the hose over the bucket I am starting a timer that increments how full the bucket is. When the bucket is full, I need to have the host move to the next bucket. To make life interesting, there will be a few hoses filling a few buckets, so each bucket needs to tell ITS hose to move on.
For some reason, I am getting myself quite confused about how best to accomplish this.
How does flash player handle objects when they are no longer on the visible stage? Is the graphical data still in memory? Does hittestobject/point consider them? Are enterframe and interval events still running?
In AS2 I would hold metaobjects (minimal x,y,width,height data) that would delete/create movieclips as the screen scrolled. Is this still a correct approach in AS3? If not, is there anything I can do to offstage display objects that improves efficiency, assuming around 400 are created initially?