Actionscript 3 :: Flex 4.0 / 4.5 Global Error Handling
May 16, 2011
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:
I am trying to use Javascript to intercept keyboard events, so I can do CMD-W for "close-window" and whatnot, inside a Flash application, so the Browser doesn't get to use them. Well, I am able to listen for ALT, CTRL, and CMD onKeyDown/onKeyPress events, but I am not able to listen to anything else...
Here is the code, in the index.html file from a Flex Project: <script language="JavaScript" type="text/javascript"> document.onkeydown = function(event) {applicationKeyboardHandler(event)} document.onkeypress = function(event) {applicationKeyboardHandler(event)} function applicationKeyboardHandler(event) { alert("Key Pressed") } </script> I would like to make it so it could listen to any key press, not just alt/ctrl/cmd.
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.
i am currently trying to learn ZendAMF, but i have a hard time troubleshooting which makes learning it quite hard. Is there a way to make the PHP file throw an exception that gets traced as an error message in AS3 (not Flex), the only error i seem to be able to get is "Error #2044: Unhandled NetStatusEvent:. level=error, code=NetConnection.Call.Failed", but it tells me jack ****.
i have gotten ZendAMF working, i just want to know how i can make error handling better, so that as an example can use PHP to tell flash that no results were found, or that the typed text was invalid. Is it better to use AS3 to check if the field was filled properly?
How do you communicate an error to the web service consumer ?
For example, my web service has a function to insert employee into db.Suppose while inserting the data , the database gave an error,what should be the best way to inform the user about the error.
One way is to depict it through the return value of the web service method but what to do when the function is supposed to return a complex object like employee when there is no error ,and will send an error string when there is an error ?
I'm asking many questions these days but its really urgent
I am doing an application to load xml file into data grid and everything is done now. The only thing left is that i wanna make sure that if the xml file isn't there, the user will not have a runtime error.I have the following code to load the file.
var myXML:XML = new XML();var XML_URL:String = "questions.xml"; var myXMLURL:URLRequest = new URLRequest(XML_URL);var myLoader:URLLoader = new URLLoader(myXMLURL); myLoader.addEventListener("complete", xmlLoaded);
i tried many ways i found on the net using try and catch but didnt work. Anyone can write me the peice of code to hande this error if the file is not there??
I'm working on a game, that loads up external text files to create maps. There is a error if the player moves out of bounds, and there is no map to load. All I need is a sort of check to see if the text file actually exists, before loading it
There is a file (php script) stored remotely on the server and I want to read it into flash using AS3.0's URLLoader. However, if I unplug my cable just before reading the file, and attempt to read the file, I want to capture an Error event in some error handler, which would mean "internet connection is down, file can not be accessed". I am reading the AS3.0 documentation now for 2 hours already (mainly: "Handling asynchronous errors in an application" and "Events of URLLoader class"), but I didn't stumble across an example of how to catch an Error event of the URLLoader object when reading a remote file from the server. However I took all possible events I could find (even those which are not necessary at all), and tested them in the following code:
Code: public function URLLoaderTest( ) { _loader = new URLLoader( ); // _loader is private var of this class configureListeners(_loader); var request:URLRequest = new URLRequest("url_with_php_script"); _loader.load(request); [Code] .....
This code traces tons of data, when executed with internet connection up: Code: openHandler: [Event type="open" bubbles=false cancelable=false eventPhase=2] progressHandler loaded:10 total: 30 httpStatusHandler: [HTTPStatusEvent type="httpStatus" bubbles=false cancelable=false eventPhase=2 status=0] completeHandler data: 1165428133 but it traces NOTHING (?!),
If the connection is down (whether closed by firewall, or cable-unplugged). So that basically means, none of the above events is fired, none of them takes care of the errorHandling in case of no-internet-connection (or if for some reason we can't reach the server atm). Any ErrorEvent i can use to catch such (connection down) Error Event? Or do I have to use Timer class instead to check wether the server responded in some time or not? I would like to leave this as the last option.
i've created a socket extension class. the pseudo code below tries to make a socket connection using the passed parameters. if there is an security error, such as the port number not being an acceptable port number, i want to handle the security error.
however, i can't catch the security error. a popup window appears with a description of the error and my errorHandler function is never called.
For a client, I am working on a project where a live RTMP stream is published to an Adobe FMS 3.5.6 server from a java application, using Red5 0.9.1 RTMPClient code. This works fine, until the timestamp becomes higher than 0xFFFFFF after 4.6 hours, and the RTMP extended timestamp field starts being used. I have already found: when the extended timestamp was written after the header, the last 4 bytes of the data were being cut off. I have fixed this locally, and now the data being sent seems to me to be conformant to the spec. However, FMS still throws an error message in the core log and then kills the connection from the Red5 client. Here is the error message:
Trying to implement the new FP 10.1 Global error handler into my projects but no matter what I do any uncaught error will still show up the Exception window (both in debug and release versions of the SWF). All I want to do is to prevent these popups but instead send a message to my logger. Here's my code ...
EDIT: I simplified the code now. Could somebody do me a favor and test the following class and see if it's works for him? Because it's doesn't for me! ...
Am facing issue with session timeout. Say for instance, the user logs into the application and he waits for 30 mins (session timeout time) and then tries to get a service through remote object.Ideally speaking, since the session has timeout the user shouldn't be able to hit the remote object, but this is happening the other way round.
I'd like to arrange things so that I have a chain of keyboard event handlers in my flex application, all of whom are queried when key down events occur. Basically, when a visual component is on screen, it is a candidate for handling a key press event. Something like this (clearly this is pseudocode):
I have a class written that will respond to the key events the way I want it to, so how do I register one or more instances of this class to have the results I want? Also, note that there are some situations where this class should receive events that would ordinarily be handled by a UI component. The TAB key is the main example; I have a few cases where I want my key down event handler to fire even when the focus is on a text field.
We have a Flex client and a server that is using the Spring/Blazeds project. After the user logs in and is authenticated, the spring security layer sends a redirect to a new URL which is where our main application is located. However, within the flex client, I'm currently using HTTPService for the initial request and I get the redirected page sent back to me in its entirety. How can I just get the URL so that I can use navigatetourl to get where the app to go where it needs to?
I've developed an FLEX application for distributed data administration. When our Asian employees specify a date, it will be saved +1 day.If I check my timezone offset it is +60, their offset is +520.
var dNow:Date = new Date(); trace("Your time zone offset: " + dNow.getTimezoneOffset() + " minutes");
I assume this is the problem? If so, would you suggest that I correct the entered date by 460 minutes before sending it to our server for saving? How to do that?
I have an ArrayCollection bound to a view, I use a filterFunction on this view to only display parts of the contents. Additionally I have another component where I want to display other parts of the ArrayCollection.
What I would like to do is wrap ArrayCollections around each other, meaning I could have one ArrayCollection containing the model data, and then two separate outer ones where I can set the filterFunction property (setting this in the model seems inappropriate in all cases). Is this possible somehow? If not, how else can this be solved, preferably without forcing model logic to end up in my view?
I'm using hotkeys (ctrl + key) in my flex application. getting problem when my app is running in IE.when i press ctrl+D, im getting 'Add a Favorite' window of iE.How should i override the default behaviour of the browser.
I have couple of questions about AS3 variables handling by AVM/compiler/scope .1. This code in Flash will throw an error:
[Code]...
but it won`t throw an error in Flex (only warning in Editor). Why?.2. How Flash sees variables in loops? Apparently this:
[Code]....
isn`t equal to just: var mc:MovieClip=new MovieClip(); var mc:MovieClip=new MovieClip(); because it will throw an error again as earlier in Flash, but in Flex in function not? Is Flash changing somehow my loop before compilation?
.3. Where in a class in equivalent to timeline in Flash - where in class I would put code which I put normally on timeline (I assume it is not constructor because of what I have written earlier, or maybe it`s a matter of Flash/Flex compiler)?
I am developing an AIR app. In the main app I have a module loader 'mainModuleLoader'. I am creating modules as separate mxml files using the <mx:Module> tag. And I am loading such a module in mainModuleLoader dynamically using actionscript. Everything works fine.For the module which I am creating as mxml files, I would like to know how to add an unload event handler. So that, whenever I call mainModuleLoader.unload(), the unload event hander is triggered from inside the module.mxml. I have tried the following without any success.
The problem with the second statement above is that it triggers the unloadHandler even if some child is removed inside the module. I have also tried to add the following in the action script.
private function init() { this.addEventListener(ModuleEvent.UNLOAD, unloadHandler);
I've noticed BlazeDS has certain things it does not support and it is often difficult to find this out. Ex: polymorphism is not.One must create methods with different names as methods with the same name with different parameters create a conflict.I'm trying to find out if BlazeDS does not support Java static and non-static inner classes.
public class UserDTO { private String name; private AddressDTO adddress; private PhoneDTO phone;
[code]...
The example code above will compile and the getUser method will work. A call to the updateUser or updatePhone methods on the other hand results in a BlazeDS error. Is there a special way to use inner classes in Flex or are inner classes not supported?
Here is an example of the error messages produced:
[BlazeDS]Cannot create class of type 'com.test.dto.UserDTO.PhoneDTO'. flex.messaging.MessageException: Cannot create class of type 'com.test.dto.UserDTO.PhoneDTO'. Type 'com.test.dto.UserDTO.PhoneDTO' not found.
Example Flex code:
var thisPhone:PhoneDTO = new PhoneDTO(); thisPhone.phoneNumber = "8885551212"; updateTagsResult.token = userService.updatePhone(thisPhone);
I have some filters set up, and have assigned some global vars to them, which I then use in my Filters code to display the filters: myText:Filters [globals.data.glow1, globals.data.stroke1, globals.data.shad1] Works perfectly. Now I want to assign a global var to each global filter var to determine if it should be shown or not. So...
I have a couple of remote object methods that I want to respond to in different ways depending on the context, but I'd rather not set up a bunch of different RemoteObject aliases.Some background: Let's say I have an admin application that displays sales stats in different ways. The remote method looks like:
<mx:RemoteObject id="rpt" destination="AMFServer"> <mx:method name="getSalesStats" fault="getSalesStatsFault(event)" result = "getSalesStatsSuccess(event)" />[code]........
The getSalesStats method takes an employee ID and a sales type as its arguments. You'd call it like:
rpt.getSalesStats(120, "peanuts"); public function getSalesStatsSuccess(e:ResultEvent):void { salesdata:ArrayCollection = e.result.rows as ArrayCollection;[code]......
I'd like to pass something through the remote method to the responding function, like:
I made a Form container with few TextInput fields in Flex and I would like to change a style of clicked TextInput element. I managed to do it with MouseEvent.CLICK event listener but it is not what I expected. I would like to change style of TextInput when user try to edit that field. However, I want to change back to 'default' style when user clicks another TextInput field or outside any field. Is there some event listener made specific for such interactions? I have also a question, is it possible to make width of TextInput depending on amount of text? I mean to resize it to width of text inside of it? Text comes from some database and is always different widths...
I'm using Flex 4(beta2) with Ruby on Rails 2.3.5 and using RubyAMF to transfer data back and forth between Flex and server. set up Authlogic on the Rails side for authentication. wasn't sure what's the best method to handle user sessions. I know this is done automatically with Rails by sending session id with cookie which Rails use to authenticate the user.What do you suggest the best way to do this with Flex?I thought of couple of options:1. Manually fetching the cookie from the browser and then figuring our a way to send that to the server with every request I send. 2. Handling sessions expiration and flow on Flex side by manually expiring the session
I am developing an AIR app. In the main app I have a module loader 'mainModuleLoader'. I am creating modules as separate mxml files using the <mx:Module> tag. And I am loading such a module in mainModuleLoader dynamically using actionscript. Everything works fine.For the module which I am creating as mxml files, I would like to know how to add an unload event handler. So that, whenever I call mainModuleLoader.unload(), the unload event hander is triggered from inside the module.mxml. I have tried the following without any success.[code]The problem with the second statement above is that it triggers the unloadHandler even if some child is removed inside the module.I have also tried to add the following in the action script.[code]But, it doesn't trigger on unloading the module. Kindly let me know if I am going wrong somewhere or if there is any other method to attach the event handlers.