Actionscript 3 :: Flex - Using A Global Event Bus In Flex
Jan 18, 2011
I am using modules in flex, to build different parts of my webapp. What I need now, is a way these modules can communicate with each other on events. What really is happening is ,that there is a central module, which then will take care of loading other modules and passing data to and fro. But, coding for each part to delegate events to each of these loaded modules from the central module and back would be a big nightmare.
What I really want to do is have a global event bus for it. Are there any specific libraries, already existing for such a process. Also, I would be using MVC, so it should also take care between events form the model to the view and vice-a-versa.
Now after initialization i want to get the location of my textInput with respect to Application.I tried with with localToGlobal(PointofLocalCoridnate), then it is not giving the correct location of textInput.
If I have a Global Variable Globalvars.vars.noLoaded which is in many classes How do I create an event where i detect to see if it reaches a certain number.
I made a swf that interacts with other site on the internet (which has a crossdomainfile for me).in the main.mxml there is a definition of webservice (mx:WebService)(which is not in my domain). Therefore when loading the swf, there is a first call to crossdomainfile.xml.I put this swf on my server so that my clients can get it.
When i connect to my server to download the swf, i expect to be asked if i want to allow the swf connect to foreign webservice domain.Do i always need to define exception in Global Security Settings panel?I don't want my client do define special things..Is there a best practice for that? Why when i surfing the net other swf can do this? I read about the FlashPlayerTrust, can i define there a website i trust my swf will connect to?
I am trying to use global application states to manage roles in my application. How can I use <properties.state> everywhere in my application if I declare it in my top level application?
This is NOT duplicate of my earlier post (its is slightly different)But this is similar issue with similar error but its not the same error The error I am getting now is below while dispatching the custom event from my custom component
TypeError: Error #1034: Type Coercion failed: cannot convert events::MapEvent@a74ab51 to flash.events.MouseEvent. dispatchEvent(new MapEvent(MapEvent.CLICKED_ON_MAP));
Note: The error in my earlier post is giving below error message
Type Coercion failed: cannot convert flash.events::Event@81ecb79 to com.events.ShopEvent
The difference here are two things, the earlier error is while converting flash event to custom event and now this one is while converting custom event to flash event and secondly, I have no clue why it is trying to convert to the mouseevent where I am just dispatching my custom event with proper listeners.
I have editable grids which are 2-way binded to my model. What I want is to validate my data when user edits any cell before it get updated in model. I have applied my validation at ItemEditEnd handler, but, I want to apply validation in between itemEditBegin and itemEditEnd events.
I am having an issue with flex states in my application. What I am looking to do is on creation complete of the application, obtain a user role guest/user/superUser (based on username and password) from a server, then set the state client side based on that information. My .mxml classes need to include certain graphic elements based on that state. I am running into the issues of including elements based on the states defined at the Application level of the project. I am trying to avoid having to define the states in each .mxml file that needs it.
I'm trying to use the new(ish) AS3 global error handling class. I am trying to use it within a Flex mxml application. I can't get it to work at all. Below is an entire program that shows the problem. I set this to use Flash Player 10.2 and compiled with the Flex 4.5 SDK. I've tried using Flex SDK 4.0 and 4.5 but I get the error in either case. I must be missing something obvious here. This is a normal Flex SWF file that will be shown on a web page. Assuming I could import the UncaughtErrorEvent, I would then do something like this to setup the event handler:
Here's the situation: I have a populated datagrid and I want to move a form to be inline (same y position) with the datagrid's selectedItem. I cannot rely on a mouseClick event because the selected item may change with a keyboard event. The datagrid does not have an itemRenderer, just plain old dataField.Anyone done this before?
Here's some stubbed out example code for all those interested based on Jacob's answer.
I am trying to work with a global variable in Flex and it does not appear to be working correctly. In my default mxml file I declare the following public var appID:int;
This variable keeps track of the session ID across my application for SQL purposes. On another mxml page I call the following code which should update the global variable to the current ID.
// Get the ID sqlStatement.text = "SELECT Max(id)FROM applications"; sqlStatement.execute(); var result:SQLResult; result = sqlStatement.getResult(); FlexGlobals.topLevelApplication.appID = result.data[0];
Lastly I run a SQL Update query using the ID as a parameter. My problem is that the FlexGlobals.topLevelApplication.appID is always 0, for some reason the global variable never gets updated, I have checked to ensure that result.data[0] is correct but the value never gets passed to the global variable.
How do you define a global variable that is accessible across all views on Flex mobile / Flex 4.5/4.6
(Edited for clarification)
Is it still necessary to have to use a separate global class?
(additional) There is a new PersistanceManager in Flex 4.5, is there something like a GlobalObjectsManager that can be used to just set/get stuff in memory?
I've developed a component which is a combination of a few items (canvas, labels, etc...) but when I try to bind it to a variable such as: {stationXML.getItemAt(1).AAA.@value}, it doesnt work. Before I combined all the items in a component, they were all in the main MXML file at which time they worked. Not sure if it matters, but the "stationXML" arraycollection variable is declared inside the file "Station.as".
I am using event.event.localX to get the x-axis but it is with reference to local coordinates. How can I get or pass the value of the HBox's xAxis that is clicked by the user so that I can add it in the xAxis of the local coordinate. In other words, I need the global coordinate value? (i.e. x-axis & y-axis)
I am trying to determine the global coordinates of the visible rectangle that is currently rendered on the stage.
Specifically, if a canvas has an explicit height and width and is a child of a panel that has a scrollbar, the scrollbar can "hide" a part of the canvas. ContentToGlobal(x,y) provides the global position of the content at the time, but content coordinates can scroll off the boundaries of the parent panel and continue to give x,y coordinates that are not visible.
Is there a way to determine the viewable rectangle that is not hidden by anything?
The variable currentIndex is declared globally and initialized with a certain value say '0'. How do I hold the value of currentIndex which is incremented every time the function is called? In the given code, every time the function is called, the value is reinitialized.
I'm trying to make a global eventListener. Everything works fine, the KeyboardEvent.KEY_DOWN fires all the time .. except the cases when the textInput has a focus.Here's how I attach listener:
FlexGlobals.topLevelApplication.systemManager.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true);I've tried both (use capture and without it).
I am creating a sqlite database for my mobile app. once the user has supplied the correct password the database is opened. Various screens of the application will need to read and write data from the db. is there a way I can make the connection global when I open it, so it can be accessed from any view?
the code I am useing to open the DB is
var sqlConnection:SQLConnection = new SQLConnection(); sqlConnection.addEventListener(SQLEvent.OPEN,sqlOpenSuccess); sqlConnection.open(DBFile, SQLMode.CREATE, false, 1024,null);
So I have searched, found some similar errors but unfortunately no resolution to the problem. I am writing an iPad game, and for optimisation I have created an assets reference class called R, following the example of a tutorial from gotoAndLearn. My error fires when I try to access the first static BitmapData from R, and oddly points to the class declaration line:
[Code]...
If I try commenting the access to R._l1Background (thus making the latter function do nothing) I still get similar errors when other functions try accessing R's properties. I might (most likely) have other errors in my code, but for the moment this is keeping me from debugging the rest of the game. I will ask my teachers about this and forward any lead or solution they come up with, as well as the results of my own researches.
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?
I have a textfield in flex with a focusOut event on it. I can type in the box and in Firefox and Chrome when I click elsewhere on the page (outside the flash element) the focusOut event will be triggered. However in IE8, the texfield never loses focus when you click elsewhere on the page, outside the flash object. I've tried with focusManager.browserMode set to true and false with no difference (I believe that effects incoming focus anyway).
overriding clone() while creating custom events?I read in the Flex cookbook that we need just in case we want to redispatch this event. Does this exactly means that when we want event to be bubbled up the display hierarchy , at that time our custom cloned event should be dispatched and not the Event object.
second - whats the need of metadata tag - [Event(name="modelEvent", type="com.abc.data.model.ModelEvent")] public class LoginModel extends EventDispatcher I understand we need to extend EventDispatcher in case we want to dispatch evnet from class.. but In what cases i would need to specify the MetaData TAg
Third is.. If i write -- "dynamic customEventClass extends Event".. Is there any use of Dynamic i can make?
I hava a custom component and it contains a child icon. If I add a mouse-click event listener to both component(click-listener1) and icon(click-listener2), the event dispatched sequence is click-listener2, then click-listener1. I can understand it. But if I add a custom event to component (listener1), and mouse-click event to icon(listener2), when icon is clicked, the component will dispatch the custom event. In my test, the event dispatched sequence is listener1, then listener2. It doesn't match with event-bubbles rule.
In my opinion The custom event is dispatched in listener2, which triggers listener1. Why event flow sequence is not listener2, listener1?
In component.
icon.addEventListener(MouseEvent.CLICK, iconClickHandler); private function iconClickHandler(event:MouseEvent):void {
I am trying to make a simple mp3 player using flash. The songs are loaded using an XML file which contains the song list. The following code is inserted into a new keyframe.
The problem over here is in the nextSong() function. I am unable to preserve the value of currentIndex. Although I am incrementing currentIndex every time the function is called, but the value remains unchanged.