ActionScript 3.0 :: Dispatching Events Between Different Classes
Jul 19, 2009
Im trying to dispatch and event from an XML class.dispatchEvent(new Event (XMLClass.INDEX_CHANGED));and catch it in the display class [code]I know that im missing something because the application works and the function runs but its not dispatching the event the event or maybe it's not catching the event in the display class, even though everything else is working and im not gettin' any errors.
I have a custom event class public class FFTDrawEvent extends Event {
public static const DRAW_EVENT:String = "drawEvent"; private var _param:Array = new Array(); public function FFTDrawEvent(type:String, __param:Array, bubbles:Boolean=true, cancelable:Boolean=false) { _param = __param; super(type, bubbles, cancelable);
[Code]...
Both class (Dispatcher & Listener) are Child class of a MXML application. Also listen to the event in the parent MXML application doens't work. Listen to the event in the dispatching class itself somehow works.
I have to feeling that the EventDispatcher class is not the right one to dispatch events to a mxml application or respectivly AS classes, which extend/inherent from a MXML component class.
`i'have a problem with listening events dispatching from their child classes. for example i have contentManager object which is controlling content at the top level of stage. it has a imageGallery object and in the imageGallery objectthere ise a collectionLoader object which is loading images.
now i want to add one preloader to contentManager which always listen for ProgressEvent. when the progressEvent dispatched i want to preloader going to active. becouse there is another objects that are loading images or other kind of files. i think it is a good apporach to solve preloader issue. so my problem is, when collectionLoader object loading images with using queLoader. my QueueProgress event dispatches ProgressEvent evey time, but my preloader object stand at the 2 classes up level, doesn't percive this event.
I have been trying to get a grasp on dispatching events and have a few questions I am hoping you will all be nice enough to clearify for me.
Do I have to have a custom Event class to dispatch a custom event?
If so do I have to create a new intance of the event each time I want to dispatch an event. Example:
dispatchEvent(new MyEvent(MyEvent.TASK_COMPLETE)); or can I just dispatch an event once an instance has already previously been created.... example: dispatchEvent(MyEvent.TASK_COMPLET);?
I am able to get the result, but not able to dispatch the event from the custom actionScript class. I googled and got the riposte that you need to add it to display list.
I want to have a main logic class that listens for dispatched events from an assortment of other classes.
for instance: i have a parent Map class that contains X instances of a State class. When the user clicks on a State class, i want to dispatch an event CLICKED along with the name of the state.
now this Logic class will see this new event and process the name of the state and perform some other logic stuff. no matter what i try i can only get it to work where the State class listens for its own Dispatched event. Which to me seems a waste, i could have just manually called the function.
I have read so many tutorials online about custom events/ dispatching and they are being used in a basic one class example.
I have a key.addlistener setup to listen to key events.What I want to be able to do is to dispatch key events by for example a mouse click or just on load. I've tried a lot of possible solutions such as dispatchEvent with type as "onKeyDown" and "keyDown" etc.... but key listener simply do not treat it as a keyboard event.
I'm just starting to build my first proper OOP piece.I have on stage two manually placed MCs.One is viewer_mc:ViewerClass and one is menu_mc:MenuClass.They each have their own class and there is a document class...
PHP Code:
package { import flash.display.*;[code]....
So I can call the public method of either class from the other class.However, I am now trying to understand custom events and dispatching them with parameters.which uses a custom event class.This works fine when the dispatchevent and listener are both in the viewer class, but when the dispatchevent is in the viewer class, and the listener is in the menu class I can't get it to work.I suppose for my purposes I don't really need to use the custom event class, I can just call the respective classes' public functions but I just wanted to try and understand how it works.Here's the pared down version of menu class...
PHP Code: package classes { import flash.display.*; //some other imports[code].........
I have problems dispatching events from an external swf file.
The class that loads the file only receives the original events of actionscript (for example MouseEvent.CLICK, etc) and ignores others that are dispatched with a own event class or dispatched with a direct string in the type parameter. For example:
Basically I am trying to create a string Validator which requests a new language from its controller by dispatching an event upon its creation.
The example below is a straight copy from the Flex3 component explorer - the only diffrence being that I have created the validator as a custom component which dispatches an event upon its creation.
The problem is that my main Application cannot hear the event being dispatched and I don't know why.
is it possible to send data to starling object after var mStarling:Starling = new Starling(StarlingClass, stage); or maybe dispatching event from main class and then listening event in starling class.
I have a main application Planner.mxml. This view has a couple of custom components, one of which is LoginView.mxml. In LoginView.mxml I do the following:
protected function btnLoginClick(event:MouseEvent):void { try {
[code]....
As you can see, when the user is successfully logged in, I want to dispatch a custom event; if not, I show an alert box. However, this event doesn't dispatch (or at least, I don't know how to listen for it).
I would like to listen for it in my main application where I can then change my viewstate to the logged-in state. However, the event never seems to get there. I listen for it by having loggedIn="loggedInHandler(event)" on my loginComponent.
If i have a html menu, how can i call events within a swf on the same page.?IS this done with java or php?exact example is being used hereclick the nav and see the flash banner change
However, it seems to me as I've started building this (or trying, rather) that there's no way this can be done, but I'm sure I'm wrong. Since the static class is never added as an instance to the display list, the stage (or any object for that matter) will never hear any events it dispatches.I've searched and found this, but that doesn't seem to be the right solution since I'm listening for my custom LinkEvent event from the stage, and *not* in the class calling the dispatch function in the static dispatcher class.And to reiterate, the goal is to have a single class I can use throughout my application that dispatches my custom LinkEvent event with two properties: linkURL, and linkTarget.The whole reason for wanting to do this is so I can have some control over what happens (to track, or do some other behavior) when someone clicks on a link created within an htmlText TextField with an <a>
I am dispatching two different events showbutton and removebutton from the code inside the LOADED SWF.on main file, (the one that is loading the swf file) i m listening for events and either showing or removing the buttons based on proper scenario. Here is he error i m getting.
ERROR 1180 Call to a possibly undefined Method Event - - - > dispatchEvent(new Event("showbutton"));
I am attempting to dispatch an event on the click of any of the buttons in a button array in the document class of my application. The intent is to have an external object receive this dispatch so as to remove a listener for the EnterFrame event in this class.
Here is the Main.as code (document class): Code: package { import flash.display.*; import flash.events.*; public class Main extends Sprite { private var one:MovieClip; [Code] .....
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.
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 have a key.addlistener setup to listen to key events. What I want to be able to do is to dispatch key events by for example a mouse click or just on load. I've tried a lot of possible solutions such as dispatchEvent with type as "onKeyDown" and "keyDown" etc.... but key listener simply do not treat it as a keyboard event.
Code: var eventObj = new Object(); eventObj.type = "keyDown"; eventObj.code = 13; eventObj.ascii = 'e'; dispatchEvent(eventObj);
I notice in actionscript 3 that when a handler gets called, its able to access the senders properties. If I dispatch an event from my custom class. can all the listeners inherit all my public properties and methods?
When dispatching events in as3 I always have to extend class from sprite, or movieclip, but when I don't have display objects I don't wont to extend to sprite or movieclip. What is the most light class that I can extend, I mean no display object, and still do use event dispatching?
In Adobe AIR 1.5, I'm using URLLoader to upload a video in 1 MB chunks. It uploads 1 MB, waits for the Event.COMPLETE event, and then uploads the next chunk. The server-side code knows how to construct the video from these chunks.
Usually, it works fine. However, sometimes it just stops without throwing any errors or dispatching any events. This is an example of what is shown in a log that I create:
Uploading chunk of size: 1000000 HTTP_RESPONSE_STATUS dispatched: 200 HTTP_STATUS dispatched: 200 Completed chunk 1 of 108
I think this is a pretty simply problem but I do not seem to be able to pull it off. Basically I have a parent class A, and a child class B.Class A instantiates class B with addChild.There is a shared object which is being updated from a java server (red5) that has an event listener attached to it in class A.I have a function in class A which will pass certain, specific updates from this shared object to class B.The problem occurs is that when class B is instantiated, the event listener from class A doesn't work anymore. I have not removed the event listener from A.?
I created a class with a timer, the timer works but I am having 2 problems, I want it to respond to events on I want to start the timer on MOUSE_LEAVE, and stop it on MOUSE_MOVE so that basically whenever the user removes the mouse from the banner it starts the timer cycle again and when the movie detects the user is interacting with the banner it stops the timer
i am trying to tidy my code, but all my classes need to have sections in the root for their respective onload events. i would much rather they were in the classes for code neatness
i am trying to tidy my code, but all my classes need to have sections in the root for their respective onload events. i would much rather they were in the classes for code neatness
I'm trying to handle movement of my Hero Class by adding event listeners in my constructor. I'm trying to move my Hero object.Inside my hero constructor, I have:
I have a wrapper swf which loads the main content swf.I've been successfully hearing custom events in the wrapper swf dispatched from the main swf, but only if they're the kind like this:
Code: // main dispatchEvent(new Event("LOADING_CONTENT"));
Code: public function SideModule() { if (stage) { init();// stage accessible, call init function[code]....
if i extends thsi class with class B (class B extends class A) how will i get this events in class B? do i have to register for them in class B as well?