Actionscript 3 :: Central Event Dispatcher Shared Between Instances (not Static)?
Aug 22, 2011
I'm building a flash app (just AS3 with FlashDevelop) and I'm having some trouble keeping things loosely coupled around the event system. I've done a lot of reading about central event systems and static eventdispatchers but they don't quite fit the bill for me. What I'm building is similar to a video player.I have a Player class which is the parent of all the other little parts of the app.The Player class extends Sprite and I've currently designed it so that you could instantiate multiple Player's and put them on the stage.I also have a Controller class which extends EventDispatcher and I dispatch all my events through this class. It's a central event class.
The problem is that I need to pass around a reference to this class so that all the other classes can dispatch and listen through it. Passing around the reference works but it's the exact opposite of loose coupling. I know I could make a static EventDispatcher that all the classes could see but then if I had two or three Player's on the stage they would all hear each others events.How can I create a type of sandbox that will allow all the child classes of a Player instance to be aware of the central dispatcher without passing a reference or making it static?
View 1 Replies
Similar Posts:
Jun 20, 2010
I'm programming a little tank game (Check the attachment). The main class for tank is game.serovkonstantin.tanks.Tank.as and there are also 2 subclasses for now: Abrams and T90 which extend Tank. In my game.serovkonstantin folder I have a custom event (TankEvent), and the only event type inside of it which is TANK_INACTIVE.
I've added an event listener for MouseEvent.CLICK to each of the tank instances (inside Tank.as) which works just fine. When I add any of the tank instance onto the stage and click it, it traces the tank's name just like I wanted whether it's Abrams or T-90 depending on what tank I clicked. But the problem is that when I click a tank I also want it to dispatch my TankEvent.TANK_INACTIVE. The main stage has a listener for this event, so I expected it to catch the event and trace some phrase, but nothing happens I don't know whether it doesn't dispatch my event or doesn't catch it.
========
if you're interested why I need to dispatch this event, well,I suppose it will help my game know what tank to move when I click somewhere on the stage, and what tank(s) should be inactive,event it they all of the same type. I mean if I click one of the tanks it accepts all the controls while the other should be inactive
View 21 Replies
Mar 26, 2006
So I have two classes talking to each other with EventDispatcher. One is a thumbnail of an image, and when it's clicked, it sends an event to the other class to display the full size version. I'm using a MovieClipLoader instance to load the full version (and the thumbnail).
Here's how it's sending the event from the thumbnail class:
Code:
private function initButton () {
this.loadMe.onPress = function () {
this._parent.sendEvent();
}
[Code]....
The problem I'm having is it loads the full size version ONCE. After that, it no longer receives the event. The ("event received") trace no longer comes through. But the ("send event") trace continues to work.
The other weird part is if I comment out the loadClip, then the events come through just fine on both sides. But it's like after it loads an image once, it quits responding to that event ('onPhotoSelected'). Is there some kind of mis-communication between the events of the MovieClipLoader and my custom event or something?
View 1 Replies
Jan 13, 2010
I have two movieclips: MovieClip X and MovieClip Y.
MovieClip Y is nested inside of MovieClip X. MovieClip Y contains buttons with listeners attached to them. These listeners call a method
Code:
buttonClickedHandler();
inside of buttonClickedHandler();... dispatchEvent() is called to dispatch a custom event that bubbles up to MovieClip X. This chain of events works as intended, I can set up a listener in MovieClip X for the custom event and everything is fine...
The problem comes when I try to invoke a dispatch on a button in MovieClip Y without actually physically clicking it. If i call
Code:
ButtonA.dispatchEvent(new MouseEvent(MouseEvent.click));
the listener for the button click event will fire properly, and if i trace the dispatchEvent of the custom event, it returns true meaning the event was dispatched successfully. But in MovieClip X... the listener for that custom event is never fired, its as if the custom even is not bubbling.
View 1 Replies
Jul 10, 2009
How do i create a trace that can detect if an event dispatcher is dispatching an event?....my problem is i've created a custom event that is not being dispatched i use this custom event in other applications and have verified that the code is correct I'm not getting any errors neither it just dies silently
View 1 Replies
Jan 3, 2011
there are 2 functions in my code that dispatch a TweenEvent. each function dispatches the same tween and adds the same TweenEvent.MOTION_FINISH event listener. however, the event listening function must act according to which function dispatched the event. is it possible to get the function of the event dispatcher from the event listener? i could use a flag to make this work if there are no other elegant solutions.
[Code]....
View 1 Replies
Sep 9, 2009
I created a class that extends the displayObject3d and added an Event dispatcher like bellow:
Code:
package {
import flash.display.Sprite;
import flash.display.Stage;
import flash.events.Event;
[code]....
but unfortunately the event never dispatches.
View 1 Replies
Nov 5, 2011
If I have an event listener which picks up an event, how can I remove the event dispatcher? I would be looking for something like this.
Code:
addEventListener(MouseEvent.CLICK, onClick, true);
function onClick(event:MouseEvent):void
{
event.target = null;
}
View 3 Replies
May 14, 2010
I've a parent (Canvas) with many children (LinkButtons)The linkButtons trigger an event to communicate between them:[code]Now, the issue is that the event is only listened by the dispatcher child. In other words, only the child triggering the event, is receiving it. I was wondering what's wrong with it, and if I should add a listener to the parent (Canvas)I basically need the children (LinkButton) communicate between them
View 1 Replies
Dec 14, 2009
I'm still getting confused with the whole event dispatching feature...all I need to do is fire a single event from a child swf to it's parent in as2..
View 0 Replies
Jul 30, 2011
I have a loaded swf (CustomClass) and I want to listen a dispatch event from the swf, but it doesn't seems to work. The relation of the dynamic class are:
Code:
tablet(DocClass of the swf) ---> mainmenuC
I'm trying to pass a event to a function in tablet, and have the codes listen to the dispatchEvent from the function in tablet.
ActionScript Code:
CustomClass.addEventListener("profile_home", currentPage)
private function currentPage(event:CustomEvent):void {
trace("profile home clicked")
} tablet.as
[Code] .....
It doesn't return any error, but why does it not pass the data?
View 2 Replies
Jul 29, 2009
I'm having an issue with an event dispatcher and an event listener. Here is the application code...
Code:
Select allpackage {
import flash.display.MovieClip;
import flash.events.*;
import flash.net.URLVariables;
import SendAndLoad;
public class Test extends MovieClip {
[Code] .....
It will trace the loader.data variables but doesn't dispatch the event to the main application (Test). I'm listening for the event on the stage of the main but it doesn't trigger the event to display that the login has been successful even though it traces from the sendAndLoad class...
View 3 Replies
Feb 4, 2009
I've built a custom event dispatcher:
Code: Select allpackage com.tests{
import flash.events.EventDispatcher;
import flash.events.Event;
[Code].....
The event traces out that it successfully fired, but the listener doesn't catch it...
View 2 Replies
Aug 25, 2009
So I have a small game where I have implemented a* path finding. I have a spot where a player moves around the screen along the path found. I have a section where i know the user is at the end of the path and I am looking to dispatch an event at this moment so I can do things at the end of the path.
i have imported the aStar_path_dispatcher file into the move class then i do,
[code]...
then in my main document class i import the aStar_path_dispatcher again, and set up an instance of it: then add a listener:
[code]...
however this "move finished" doesn't seem to want to work. I have never used custom events before
View 2 Replies
Apr 11, 2009
How do Static classes work in projects where child swf's use the same Static class as their parent?
For simplicity... lets say we have some older content swf files that are using TweenLite version 8 ( a common enough Static class.) But the parent SWF is being updated and uses a more recent version of TweenLite (version 10). The child SWF's are loaded into the parent SWF. Do the child SWF exist in there own sandbox and have TweenLite version 8 running and the Parent runs it's own copy of TweenLite 10? Or does the parents clips Static class of TweenLite (version 10) overwrite the children Static class using some sort of magical shared memory space when JIT (runtime) compiling?
View 3 Replies
May 26, 2010
Is it possible to store instances of a class in a cookie or in shared objects.
Basically in my application I have an object "Diagram" that the user can create. If they hit save, I want to store the current instance as a cookie and allows them to reload it later.
Alternatively, I could see about getting them to store the saved version on the hard disk. But even then, all I want to save and retreive is my actionscript object.
I've tried storing the object to SharedObject.data.diag, but when I try to retrieve the object from the cookie doing SharedObject.data.diag as Diag returns null.
View 1 Replies
Mar 4, 2010
If I create an object like so:
class Foo {
[Bindable] public var property: String;
}
The class Foo has an implicit event dispatcher to handle property change events. How can I access that without making Foo explicitly extend EventDispatcher?
View 1 Replies
Feb 17, 2009
I have a question about classes. I just learn that static means that functions and/or properties are specifics to a class, but is it a synonym of private? And why statics (not available to any instances?) properties and/or methods can have a public (available anywhere else (timeline)) access modifier? PS: I just start with classes.
View 6 Replies
Aug 23, 2010
I have two swfs for a project, I had both of them to dispatch events to each other. Parent loads child and is listening for the compete load event. Once that event is dispatched to the child - the child dispatches a start event back to the parent. I got this working by copying the ModelEvent(my custom event) in each of the flash builder actionscript projects in the exact file structure ( i think i was cheating it there, since )
It broke when I put the swf on separate domains, so I'm thinking I'm missing something to share the custom event class between two swfs.
[Code]...
View 9 Replies
Mar 5, 2010
I am using shared object to share data between two users. First user connect to shared object and set some value in shared object. Please consider that second user has not connected with the shared object yet.Now when second user connects to the server and try to get that property set by first user, he could get shared object but could not get properties of Shared object set by first user. I observed few times that Second user can get these properties within "Sync" event between two users. But I would like to get these values for Second user in any stage (i.e. in load event etc.). Whenever Second user tries to get the property of Shared object, the object will reset the actual property value and then return reset value.
1) Is there any way to get all the properties of shared object before sync event called, as I want to get it immediately when second user connect to the application and perform next task based on the values stored in shared object.
2) Is it possible for second user to check whether any property has been set by first user? So that second user can use the property instead of reset it.
View 1 Replies
Jun 22, 2011
I'm using flash CS5.5 (trail version) and want to export a movei file out to device central to test acceleromoter settings.
When creating the file I : selected air fro andiod, made these changes to the publish settings : set upa certificate, tick all permission (as it kept telling me they hadn't been set) and then click ok.
For some reason under control > test movie > device central is greyed out. If i try to open the .swf file directly in device central it just tells me the device has the wrong version of flash.
Any ideas? I selected the file type as andriod?, preferably would like just to be able to click on test moving in device central.
[Code].....
View 2 Replies
Feb 8, 2009
I've created a class to hold data in static vars with getter and setter methods. The class in never instantiated, i.e. var obj:MyClass = new MyClass();.[code]
View 5 Replies
May 17, 2008
I have a class name ImageLoader that is used to load image and the dispatch a complete event when the image is loaded. This class is implementing singleton design pattern which means that only one instance is created always for this class.
Everything is working fine it is loading the image but in the initListener function i am dispacthing a complete event to let the other class Content (which passes the image name to this class ) that the image is loaded and you can access it now.
BUt the problem is the event is never dispatched or may be it is but I am not catching it properly here is code for my ImageLoader class.
Code:
package
{
import flash.display.*;
import flash.net.*;
[Code]....
View 5 Replies
Oct 29, 2011
I want to have two clients voice chat, I will need a central server to dish out IPs for that to work out right? Also unless I route all the streaming through the central server, won't there be problems incomming connections and peoples firewalls and such? I would ideally want to host it on a PHP shared host, could that be done?
View 3 Replies
Jan 15, 2012
I'm trying to test my Air 3.0 application for iOS in Flash Professional CS5.5.But since I use the Air 3.0 SDK I can't open my file in the Device Central and opening the file with the normal Flash Player will not track the touch events.Any ideas how to test an application for ios on a desktop?
View 1 Replies
May 17, 2010
I have a problem with event handling. I'm working on a calendar, on which events can be listed. With actionscript i loop through an XML file with the days (and if there, the events for that day). So far so good. Where it goes wrong is this: I only want to display blocks with the day numbers on it. When you click on a day, a box pops up and shows the event's for that day.
This is what i did: created a movieclip with classname mc. loop trough the xml file and for each day create a new instance of mc with the day number as text on it. This al works, but now i want to add an eventhandler for each day. How to do this?
View 1 Replies
Oct 21, 2011
I have four objects that when clicked needed to programatically arch back to one central point. at the moment I cna easily have them travel in a straight line, but I need all of them to rise a little (20px) as they travel to the left then drop to that centralized point.
[Code]....
View 0 Replies
Aug 14, 2003
i dont know the math to have a mc rotate around a central point by constricting to an arc..i have a circle and i want a mc to follow around the edge depending on the mouse position relative to the center of the circle...
View 2 Replies
Jan 7, 2010
I have created a new class, that is basicly just a movieclip but with a builtin eventlistener. When I add a few instances of this class to the stage, they all have the eventlistener. But later on when i remove the intances from the stage and null the references, Will the eventlistener still exist or will it be removed by the GC ?
View 2 Replies
Nov 22, 2010
I have several 1000 MovieClips (representing US counties and states) on the stage after the swf is loaded. Each MovieClip has a different instance name. Currently, a user can mouse over a county in NY, for example, and I only want the boundary for the the county highlighted. However, the state boundary is also highlighted as well.
I added this type of listener at the top:
addEventListener(MouseEvent.MOUSE_OVER, someFunction);
The problem is, it is applied to all MC instances on stage. Any suggestions on how to add the event listener to only specific MC instances? I thought I could add the event listener to the layer, but does not seemed to be working. And since I have several 1000 I don't think typing out mc_instance.addEventListener for every different mc is the correct way.
View 9 Replies