Flex :: Components Are Not Dispatching KeyDown Event When It's Used In PopupWrapper
Oct 27, 2011
I'm using a component in a cairngorm PopupWrapper. I want to listen to the KeyboardEvent.KEY_DOWn event on the component but it doesn't seem to be dispatching it. Is it because it's in PopupWrapper? Is there anyway I can get it to dispatch the event?[code]
I have a repeater component with custom event. My repeater components fires custom event holding data. My need is to dispatch event so other repeater components can access data from dispatching component.
I am trying to detect the key down event for the alt key in flex. I have a standard event listener for KeyboardEvent.KEY_DOWN and KeyboardEvent.KEY_UP but don't get any response for the alt key (or ctrl key).
I know I can detect if the alt key was pressed via a mouse event, but I want to update the cursor when the alt key is pressed to show it will perform a different action from when it's not pressed.
I am using Safari on a Mac for developing so let me know if perhaps it's an isolated issue.
All i have a flex editable datagrid. By default if i press the left navigation arrow key , it moves to the left but not to the next cell. I would like to override the keydown event such that if the left navigation arrow key is pressed down i set the focus to the next cell on the left.
In short the user needs to be able to navigate using the keyboard through the cells using just like in excel(currently the arrow keys move between characters within a cell).
I am new to flex framework.I have created an application using flex framework 4.1 which is having various components that are shown to the end user in the form of a popup window using <mx:TitleWindow>.This titlewindow is closed either on the click of the close button (displayed in it's titlebar) or by pressing the "escape key" on the keyboard.I coded a functionality wherein I close the current TitleWindow whenever an 'escape' button is pressed.Here is what I did.On the keydown event of TitleWindow I called this function.[code]I had to repeat this code for every TitleWindow that I have used in the project.How can I write the above functionality only once and reuse it amongst various TitleWindow and other components so that the code for the same is not repeated across various components? Every TitleWindow that I am using has different code, scripts and layout in it.
Let's say function foo() is executing. Suppose that an external event occurs, for which you have a handler. Will function foo() be interrupted so that the event handler can be executed? What is the order of execution in this situation?
I got a question about event dispatching in flex.my goal is to get a custom event loaded up with some data and than bubble up to the eventlistener. my main application has and AMF service request inside which calls an service class. that class is supposed to dispatch an event when the AMF service request returns a result or fault and the main application is listening for that event.so inside my mainapp i add and listener like this:[code] However, this event never reaches the main application. Looking closely to it with the debugger, i found out that when the event is dispatched the listeners property of it is set to null.
I'm trying to dispatch a custom event from a custom ItemRenderer. This is my custom event package events { import customClass.Product; import flash.events.Event; public class CopyProductEvent extends Event { public static const COPY_PRODUCT:String = "COPY_PRODUCT"; public var picked:Prodotti; [Code] ..... The event from the function is dispatched correctly... I can't intercept it..
I know the flash engine is single threaded so when it receives an event, does it essentially break off, execute any registered event listeners (in no guaranteed order) then return to the current scope?[code]can I guarantee that the current function will complete before any of the event listeners execute? ie trace("Done"); will ALWAYS execute first.
I have a object that is extended from arraycollection. This object has to access and manipulate the arraycollections source object. When this happens, the local sorted/filter copy of data goes out of sync with the source data. To line things up correctly, the sort/filter needs to be re-applied.
To do this normally, you would call refresh() on the arraycollection, but this also broadcasts a refresh event. What I want is to update the sort/filter without dispatching an event.Having looked into the ArrayCollection class, I can see it is extended from ListCollectionView. The refresh function
public function refresh():Boolean { return internalRefresh(true); }
is in ListCollectionView and it calls this function
private function internalRefresh(dispatch:Boolean):Boolean { if (sort || filterFunction != null) {
[code]....
annoyingly, that function is private and so is unavailable to and class that extends ListCollectionView. Also, a lot of what is in the internalRefresh function is private too.Does anyone know of a way to call internalRefresh from a class that extends ArrayCollection? Or a way of stopping the refresh event from being dispatched when refresh is called?
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 want to call the same function after every 20 seconds even if enter key is not pressed by the User. Can I create the same effect as pressing the Enter key through code in some way so that the code within the if condition inside the function gets executed?
I have a flex tree that worked perfectly fine when we set the defaultLeafIcon={null} and the folderClosedIcon and folderOpenIcon to {null}. We decided to put the icons back in and took out the nulls. Now they show up fine, but if you click on the icon instead of the label or the rest of the row, it seems to change the selected item, shows the highlight around the new item, but doesn't dispatch the ItemClick event. This makes it really hard to know that the tree's selected item has changed!
The weird part is that once you have clicked on the icon once and it looked like the selectedItem changed (or at least it applied that style), if you click the same icon again, it will actually fire the itemClick event. if you click any other icon, it does the same thing again, switching the selectedItem and styling that row, but not firing the itemClick event.
I'm new to Flex.My question is how to dispatch event between components?As far as I know,Flex only bubbles event to itself or its parent. I'm in such a situation:
[Code]...
I want comp1 to dispatch an Event with parameters,according to the parameters some changes could be made to A and B in comp2.How could I get the event in comp2?I know Cairngorm could make a difference,but I don't want to use it right now.Could anyone give me a hand?
I have a custom Flex 4.5 component (to be used in a List) -
Game.mxml (represents a clickable playing table in a card game): <?xml version="1.0" encoding="utf-8"?> <s:ItemRenderer [code].......
But I never see the "game clicked: " trace. Does anybody please know why? I'm probably missing something minor, because I can see the "Clicked: 8946" trace.
I have a custom component on which I have bound an array collection to one of its proeprties: <comp:MyComp id="comp" prop="{images}" /> images is an arraycollection In the components' code I would like to know which event to listen on everytime images updates props. I tried a setter on props but the setter only gets called once when props is first set. I tried the collection event but I get "Update" events sent on top of 'add' and 'remove' events and I would rather not have to manage those. So is there an event(flex or otherwise) that is fired every time a component property is updated by a bindable property?
Is there a way to write a custom event that gets triggered when the user clicks outside of that custom component instance? Basically anywhere else in the main flex app.
This doesn't work. creationComplete is not called until the repeater has finished instead of (as I expected) when the creation of the button is complete. I'm not sure how to accomplish this.
BTW - I also tried placing the creationComplete on the parent component to the repeater, but it would only be called the first time the component was rendered (the data inside the repeater sometimes changes) so that didn't work.
I have create a game and added keydown event on Stage but but problem is user need to click on stage then it start capturing keydown event. I want that when game window open after that user don't need to click on flash stage area for unable keydown event..
I have two document classes. The main document class creates a empty movieClip and adds it to the stage in which the second document classes published swf is loaded into. The second document class has a button component on the stage in which once clicked just traces 'hello' to the output window.
What I want to do is upon clicking this button a Event is dispatched from the second document class, to the main document class. Now, I've Googled everything in this known world and have tried to implement examples to no avail. I'm really at a loss right now yet I stubbornly intend to keep banging my head against the problem. Below I have pasted both document classes minus the examples I've tried to implement thus far.
I´m making a game.This game has 4 frames.It has a preloader.swf and game.swf.The preloader.swf loads the game.swf.The game.swf has 4 frames.In the first frame is given to the user the options to play the game (clicking a button "playGame" on "click" event) and to set the sounds settings (clicking a button "options" on "click" event).So far so good.
When the user clicks "playGame" I send the user to frame 2, where it has the option to select a game level using the arrow keys. So within the playGameListener I registered two keyboard events one for KEY_UP and another for KEY_DOWN. So, to have sure that it´s working, I added a trace for each keyboard event listener. But I´m not getting any message in the output window while pressing left arrow or right arrow or any arrow.
So I learned that KeyboardEvent only dispatches an event if the flash player has focus.Well I think the flash player has never losed focus in this process.I´ve registered two events for Event.ACTIVATE and Event.DEACTIVATE and inside its listeners I added a trace with a message. Flash outputs me a message if I minimize the flash player window or if I maximize the flash player,but not while the game.swf´s frame transition.The listeners for the KeyboardEvent works only when I press at the flash player, then I receive the messages from the KeyboardEvent listeners.
I have two buttons each in its own sprite now I want to listen for mouse overmout and click event on both. In a way that if you roll over button1 its color changes but at the same time button2 color changes as well.
To be more specific lets suppose I have a graphic button like map picutre for a country like UK and then I have text button for UK as well. What I want now is that when user either scrolls over UK map the map button color changes but at the same time the color for UL text button changes as well. same goes for click and out events for the two.
May be my title doesn't clearly reflect to what I am saying. Let me demonstrate with following example
[Code]....
Instead of doing this type of event listening,is there a way, by which the final class can listen to "firstDispatch" event without going through its object as shown above
I have a parent swf and eight child swfs. The child swfs are loaded into an array at runtime on the parent swf using a Loader. I have buttons and functions on and in the parent swf to change out the child swfs. This all works just fine but here is my issue. On each of the child swfs I have buttons that need to call the functions in the main swf to change out the child swfs. The program is an interactive virtual tour and I want to be able to click on a door and have the next room's swf displayed in the parent swf. I'm trying to do this by dispatching an event from the child swf
ActionScript Code: mainPanorama.bedDoor.addEventListener(MouseEvent.CLICK, dispatchBedroom); function dispatchBedroom(e:Event):void { dispatchEvent(new Event("loadBedrooms")) }
that needs to be heard by the parent swf and the appropriate function called.
So far this specific code keeps telling me that addEventListener is not a function. I've tried quite a few variants of stage, this, and parent combinations in place of objectsArray but unfortunately something in the parent swf is not hearing the event dispatch.
Does flash dispatch any event just before it's closed?e.g. When the user closes the browser? searched the documentation and there's nothing. I thought the stage should dispatch an ventIf there isn't any can I make a custom one?
I'm working on a project and had a question related to another thread I recently posted earlier this week regarding an area I was a little stuck on..While I did manage to resolve most of my issue, there's still a piece of the puzzle that's missing. I basically have one main container swf that loads several external swfs into a MC and cycles through an array of external files. I have navigation buttons so the user can click next to proceed through all of the external content files. My goal here, is to not have the "next button" become active until after the external files are done playing, so they can't skip ahead.
I currently have this working by having the external swf dispatch an event (from its final keyframe) to the main swf telling the main swf it's done playing, and then activates the next button on completion. This works great; however, I can't seem to get it to dispatch this event on any of the sequential swfs -- it only does this for the first swf initially loaded. Is there a way to "reset" the event to detect the end of the other swfs and continue in this fashion? Or another possible solution so I can apply this to each external swf?Here is the code I have in the main container swf:
Code: //Array of external swfs var contentArray:Array = new Array("content1.swf", "content2.swf", "content3.swf");