Flex :: Dispatch Custom Events From A Created Class?
Jan 2, 2010
I have an <mx:Application> which contains a <mx:Module>. This module has several child modules. It also has some an instance of a class I have created. I am trying to have a method of this class dispatch an event that can be "heard" by the module and handled. This isn't happening.To be more clear, I am using 'dispatchEvent' to from inside a class method.There is an instance of this class in: mx.core.Application.myapplication.mymodule.myclassIt is the 'myclass.somefunction' that dispatches the event. I have a listener registered in 'mymodule'. Nothing happens when the function/method runs, however.
It seems more efficient to store events on the dispatcher if they're never going to change. Isn't creating them costly? Is there some kind of information I'm losing if I dispatch an already-stored event?
i have been trying to figure our the dispatchEvent system in as3. But am just not able to wrap my head around it. So can someone please explain and give me an example on how to dispatch custom events?
for eg: Here i just want to disptach event every 100ms and the event should give me the value of "a" .
I have a document class called Main.as In the class constructor I have the following listener:
enter code here var listeningFORModeChangeToStudent:Sprite = new Sprite; listeningFORModeChangeToStudent.addEventListener(TellAllModeChangeToStudent.STUDENT,exp); addChild(listeningFORModeChangeToStudent);
[code]....
In a third class I make a call to the despatcher in the previous class:
enter code here var ThisTellAllModeChangeToStudent:TellAllModeChangeToStudent = new TellAllModeChangeToStudent; ThisTellAllModeChangeToStudent.tellAllModeChangeToStudent();
I have trace statements in eveything and from this I know the despatcher in TellAllModeChangeToStudent is being called.The problem is that the listener in the main.as is not calling the function exp.I cant see why and I dont know how to check if the listener is actually seeing the dispatch event?
I want to dispatch a custom event from the Country() sto the MenuButton();[code]When a country is hovered a custom event is dispatched which I want the MenuButton to listen and if the parameter passed is the same as its name to get highlighted. The Country Class is the Base Class for my countries movieclips I have on stage and the MenuButton the Base Class for the menu button.
Imagine you have a MC used as a container for several other MC's used as buttons.Now, should I use the class of the container to listen for and to dispatch events. OrShould I create a seperate class for each MC inside of the container to listen for and to dispatch events.
In summary: One class for all, or several smaller classes dedicated to their respective MC.How far should one go with abstraction?.
I have two separate advancedDataGrid instances (let's call them A and B). What I'd like to do: when clicking on grid A. I'd like: for grid A to handle the click normally (i.e. default advancedDataGrid behavior) for grid B to receive a click event a certain location and handle such event using advancedDataGrid default behavior (i.e. without having to write a handler for such click).
I've managed to dispatchEvent a MouseEvent.CLICK to grid B and to handle such event by creating an event listener, but really I'd like for grid B to handle the event on its own (i.e. without having to re-rewrite a handler), and that doesn't seem to be the case. Is MouseEvent.CLICK even the right event?
I am trying to work with the EventDispatcher class to dispatch a custom event to stop a video from playing. The video plays inside a MovieClip with an attached class file called PlayerProfile. I want the video in the PlayerProfile MovieClip to stop playing when the user clicks on another MovieClip called ScrollBox. I'm getting no compile or runtime erros, but the code is not stopping the video. I have seen use of a public static constant to represent the custom event. Is that what I am missing here.
I got a question about event dispatching and dispatching in flex.
My goal is to pass an email address captured in one component (Comp1) and be passed to another (Comp2). These two components are navigator content of a viewstack. The custom event dispatched the email correctly from Comp1 but somehow could not reach Comp2. The application (Main) looks like :
I am trying to get some code working from an example I came across. most of the functionality works but it is failing when it tries to dispatch a custom event. At the moment the code that is trying to dispatch the event is inside a class that handles amf remoting.the example has this line in it for the dispatch:
I have a custom class which creates a new MC using a library MC. The library MC contains a dynamic textfield called productName.The custom class object gets created fine and is displaying on the stage. It's also holding custom properties I set as well.How do I control the dynamic textfield inside the MC, which is inside the custom class object?My Product.as:
I am trying to dispatch a custom event from one flex module to another.The code which dispatch the event is as below Application.application.Destination.child.dispatchEvent( new AlgoEvent(AlgoEvent.GETFROMPARENT_LOCAL_EVENT));
here AlgoEvent is a custom event.on the other side the module which catches and handles the event has this code:
public function sendParametersToChild(e:AlgoEvent):void {[ code]...
but when the statement Application.application.Destination.child.dispatchEvent(new AlgoEvent(AlgoEvent.GETFROMPARENT_LOCAL_EVENT)); is executed the debugger give the following run time exception:
TypeError: Error #1034: Type Coercion failed: cannot convert resources.events:: AlgoEvent@4182239 to resources.events.AlgoEvent.at flash.events::EventDispatcher/dispatchEventFunction()[code]...........
I'm using ActionScript 3 in Flash Professional and I'd like my class to raise an event, not a custom event but an existing one. I've set up my class so that it extends EventDispatcher. In the documentation [URL] the example declares a custom event by adding a static String variable: class CustomDispatcher extends EventDispatcher { public static var ACTION:String = "action";
I assume that enables: dispatcher.addEventListener(CustomDispatcher.ACTION, actionHandler); Or at least auto-complete when you've typed 'dispatcher.addEventListener(' into the Flash Professional IDE.
But lots of classes that raise events raise a mixture of existing noncustom events. For example if you have an instance of a flash.netFileReference and type fileRef.addEventListener(
A long list of potential events to listen for is given including DataEvent.UPLOAD_COMPLETE_DATA, Event.SELECT, HTTPStatusEvent.HTTP_STATUS, SecurityErrorEvent.SECURITY_ERROR, etc.
If I want my class to be registered to raise those existing events, what code do I need? Preferably so that the IDE knows instances of my class may raise the event and suggests them in the addEventListener auto-complete/intellisense list.
I have made a site in AS3.0 code and it's working fairly well but theres alot of things i'm trying to update to make the code a little more reusable. For startersI have a function that creates a little pop-up text when I roll over a button. The text is a class that I created in the Flash IDE instead of dynamically drawing it with actionscript.Here is the code for the pop up text instance called "enter_text" as it rolls over the movie clip "preloader_mc"
Code: //add listeners to the preloader_mc movie clip on stage preloader_mc.buttonMode=true;
I came to some misunderstanding how to use events. LOL. I thought I understand it but as I see I dont.
I've got a Engine document class where Hero is added, and Cannon object too. In body of Hero I need to dispatch event when Hero reaches some point or particularly a pitfall, so I've got static const string to handle it:
[Code]...
but this way I would end up with dozens of handlers in the Engine body class, and I am trying to minimize this class as it is big enough without those handlers. I am stunned and suprised, and I am noob again. Maybe someone will clear out how to get custom events working/... and why only instance of object that dispatches an Event can hear it (my case).
I'm curious about event performance. I have a custom class that downloads files from a server and writes to your local system with AIR. This class has a few custom events that fire during a download process: File starts downloading, files finishes downloading, error occurred, progress, and a few others. This class was built for a specific project, but made coupled so it can be used for anything else wanting to download a file from a server. I'm starting to implement it into a new project, and a few events I'm not listening for, such as when the file starts downloading, or the progress of it, just the complete.
Does it strain overall performance having all the other events still dispatching, when I know they aren't being listened to? Would be be better to comment out the dispatchEvent() for the specifics I know aren't used, or does it even matter? There's obviously events dispatched throughout the SDK that aren't always listened for: Right click, drag, resize, etc. This makes me think it doesn't matter that these events fire but aren't handled, but since code is running and things are happening, that means there is performance going on.
I'm having a problem with a custom subclassed Event class. Or I should say, I'm having trouble receiving events from this custom event class. I'm pretty sure I have everything wired correctly, the event is dispatched properly and my trace shows the Event instance being spawned. However, my eventListener, which is in another class, never fires its handler function.Have any of you run across instances where custom event classes fail to fire? I'm about at my wit's end.
Would it be possible for me to also dispatch non-custom events (like Event.CHANGE) from inside a class? I already did this with custom events which worked fine, but when I try to dispatch a the Event.CHANGE it will tell me that I am trying to convert a String into an Event (??). What I do is:[code]
I've been playing around with custom classes. My objective was to create a custom class (Testing) that would create a box when an instance of the class is created. I've tried three different approaches, however only (3) seems to be showing up. I'm just curious why (1) or (2) doesn't work?
Also is there a better approach than (3)? Since at the moment it's been created on _root. I hope the box can only be accessible through the instance. Since I'd like to incorporate the whole idea of public, private, encapsulation, etc.
I have a custom class I am working on, one of the methods is:[code]Inside that function a dynamic TextField is created called txtLoaded, it is declared with [code]mcProg is added to the stage, I see the txtLoaded txt field drawn as well and I can trace properties of mcProg from elsewhere in the class but I cannot access mcProg.txtLoaded from anywhere else in the class.I imagine this must be a scoping issue, with txtLoaded only existing inside the createProgress method, but is there any way for me to be able to access txtLoaded from elsewhere in the class?
What I want to do is to dispatch the click event when the component is clicked. (The class is essentially some text in a textfield that needs to be able to do certain things, and it needs to be able to respond to a click). Sounds easy enough... I want the event dispatched when that portion of the text is clicked. But uh...how? it's not like a button where I can just go myButton.addEventListener(MouseEvent.CLICK, myClickHandler);That's clear, because some component is going to be listening for the Click event dispatched when myButton is clicked. It is built into the AS3 framework that a button knows how to listen for a click event.
After the import statements I've got:[Event(name="click" type="mx.events.Event")]How do I dispatch the event when the component is clicked, when the component doesn't yet know how to respond to a click event? I've tried adding an event listener in the textfield which contains this custom class of text, but nothing's happening because the Click event hasn't been dispatched.
My app has buttons that users press to insert predefined strings into a textarea. I'm now making it load in the button values dynamically so users can define their own buttons.I'm using a buttons.txt which contains a different label on each line (button1, button2,button3 etc). I loop through the text file and add the buttons to a group. This all works, but now the hard part. How can I assign an eventlistener to these buttons so that they output text to the screen?
protected function view1_viewActivateHandler(event:ViewNavigatorEvent):void { var path:File = File.documentsDirectory.resolvePath("buttons.txt");
I'm creating a custom class to retrieve some data using URLoader.My code is below, doing this from memory, plz ignore any minor typos.The challenge I'm encountering: when my custom class calls the loader, the event handler takes over. At which point the context of my code leaves the function and it's not clear to me how I then return the data retrieved by the loader. I sense that I'm breaking the rules of how ActionScript really runs by putting a loader in a separate class; at least, that's my primitive understanding based upon the reading I've done on this.So can I do this? I am trying to create a clean separation of concerns in my program so that my main program doesn't get clogged up with code concerned with retrieving remote data.
I am having trouble using a custom event in flex. I need to dispatch an event from inside two nested components and receive it in the main application file. The basic set up is a main application file importing a custom "gallery" component.
I'm having problems with dispatching an Event across packages, I have a video player and when clicking the next button it dispatches an event to my EventManager class then I have another class in a different package listening for it but nothing executes the event listener.[code]...