ActionScript 3.0 :: Flash General Error And Exception Handling Function?
Jun 8, 2010Is there a way to handle errors and exceptions in AS3 as one would do so using `set_error_handler` and `set_exception_handler` in PHP?
View 4 RepliesIs there a way to handle errors and exceptions in AS3 as one would do so using `set_error_handler` and `set_exception_handler` in PHP?
View 4 Repliesi 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?
Code:
for (i=1; i<9; i++) {
if (this["blank"+i].getChildAt(0) is Letters) {
word += this["blank"+i].getChildAt(0).letter;
}
}
This code throws a range exception if, for instance, "blank2" doesn't contain any children.I just need to be able to basically say, "if this blank doesn't have any children, just skip this code."Normally I would do something along the lines of an if=null statement, but this won't work here because
Code:
if (this["blank"+i.getChildAt(0) != null)
obviously throws the same range exception.How do you deal with this? I can't find anything along the lines of a "does blank1 contain any children" sort of method.R
I am trying to emulate (in a limited way) the behavior of JavaScript's XMLHttpRequest object through Flash/ActionScript 3, in order to overcome the same-domain limitation. But I'm discovering that ActionScript has its own limitations in that regard. I admit that I might be mistaken, but from what I understand it is theoretically still possible to do this sort of cross-domain scripting using ActionScript, so long as you get all the permissions right. And that's where I'm running into trouble.
First, I borrowed some open-source code for a class called AjaxRequest, which I have saved as /ajax/AjaxRequest.as. I then created a Flash file called /jsajax.fla which exports to the final SWF file, /jsajax.swf. Now, here's the ActionScript code that comprises the first and only frame of the Flash file:
import ajax.AjaxRequest;
Security.allowDomain("domainone.com");
Security.allowDomain("domaintwo.com");[code]....
This is the only case I could not get working, and this is the case I need to get working. The first two were really just test scenarios to see if the script was working at all. When I try to run my jsAjax function here, I wind up with an error that shows up twice in Firebug:
uncaught exception: Error calling method on NPObject! [plugin exception: Error in Actionscript. Use a try/catch block to find error.].
uncaught exception: Error calling method on NPObject! [plugin exception: Error in Actionscript. Use a try/catch block to find error.].
I'm calling a function in my actionscript called GrabWidget() from the javascript. When I do this from a plain page with just the flash and the javascript link, everything works flawlessly. However, when I add this to a page, I get the error: uncaught exception: Error in Actionscript. Use a try/catch block to find error.I've even gone so far as to empty out the contents of GrabWidget() in my actionscript and I still get the error.
View 2 RepliesI have a problem with an application that uses RobotLegs in a Flex module. I finally managed to load my module successfully, but when I try to add this line of code in the module view's Mediator:view.addElementAt(applicationContainer,0);
I get this error:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at mx.core::UIComponent/getStyle()
[code].....
I have a html popup containing one flash file. Onclose of the popup I need to write some values into the socket. How can I handle the onclose event from flash ?
View 1 RepliesI am using spring exception translator to wrap java exception into flex exception.
eg
public void testException()throws Exception{
throw new Exception("my exception");
}
But for some reason, I am getting IllegalAccessError. The code sections are entering the testException and the Translator class.
Question: why it trying to get log target level ?
Below is the lines from the log:
[Code].....
I don't know if this is possible with Actionscript 3. What I want to do is have a loseAll(); function that calls other function that in turn close sections of an application. I would be easier to have all the close functions in the closeAll() function and then pass a reference to the once that i don't want to be called. something like this.
[Code]...
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
View 3 Replieshow to write loadMovie error Handling
View 4 Replieshow to write loadMovie error Handling
View 1 RepliesI'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:
[Code]....
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'm trying to refactor a package name (pretty near the root of the project hierarchy), and I'm getting the following error (flash builder 4): A fatal error occurred while performing the refactoring An unexpected exception occurred while creating a change object. See the error log for more details. The log file looks like this.... !ENTRY org.eclipse.ltk.ui.refactoring 4 10000 2010-09-30 10:57:25.134
[Code]....
I have this question regarding vectors. Is there a way where I can make a generic utility method which would for example, subdivide a vector into two vectors and would be able to handle all types of vectors, whether they contain <int> or <string> or <myClass>
for example:
ActionScript Code:
public function splitVectorIntoTwo(v:Vector.<T>):Vector.<Vector.<T>> {
var result:Vector.<Vector.<T>> = new Vector.<Vector.<T>>();
//Do logic
return result;
}
I don't know if this is possible but else it hinders our development quite a bit by using vectors since we can't use some generic utility methods as they will not accept generic vector types and you have to create a specific method for every vector type, one for Vector.<int> one for Vector.<string> etc.... With arrays, since they are not type-safe they can be passed within every such method.
I'm not sure if you've noticed this, probably not, but function pointers in AS3 run much, much slower than calling the function directly. It's a recent finding, and an annoying one. I use function pointers a lot. An obvious example would be to easily change the behaviour of a certain object. Say I have a class that controls movement, it has a class level function variable called UPDATE (ie public var UPDATE:Function), and 3 or 4 actual functions it can point to.
This always me to quickly/easily change the behaviour of an object. Say for example I want an object to run on different movement code once it's collided with something, I can just do UPDATE = movement2; etc. However, a pointer for a function runs about 15 times slower than running the function directly, therefore I need a replacement. And I really have no idea why there is this absurd disparity in speed between the 2. With some variables, accessing a reference is faster than accessing the variable directly, obviously not with functions. What would you advise as a nice, simple replacement solution for the above example?
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.
[Code]...
In flex, I am handling event like this,
myImage.addEventListener(MouseEvent.CLICK, redoOperation);
Now, I want to pass some value to redoOperation. (function redoOperation myId:String)) How can I pass String to it?
Given the nearly plain-text nature of Flash, from a security standpoint, we must assume that your SWF can be decompiled into human readable format. That said, how can we ensure the validity of any online calls? For example, recording a high score might make a call similar to this:
Code:
var url:String = "http://someserver.com/tracker/scoreTable.aspx?mode=record&score=" + _userScore + "&checksum=" + MD5.hash( /* stuff */);
var loader:URLLoader = new URLLoader( );
loader.load( new URLRequest( url ) );
You can do all the MD5 hash checking to make sure the data received matches what was sent, but how can you verify the validity of the call? For instance, one could decompile the SWF and figure out how to build the query string manually, or they could reverse engineer it from monitoring the internet calls from the SWF itself. They could even use a run-time memory editor to change the figures that store the information while playing the game, so that when the recordHighScore call is made, it sends 1,000,000 instead of 1,000. How does one authoritatively validate data and protect against abuse?
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:
[Code]..
when pressing on a button that error comes up in the OUTPUT tabthe file is in the linkError #1006.rarThis is the navigation_actions code where are the codes of the navigation bar (the buttons)
var buttonArray:Array = new Array( );
var currentButton:Object = new Object;
var navContainer:Sprite=new Sprite ;
[code].....
Till now all the exceptions in my code will cause the host flash player to pop up a window to say there is an exception and the execution will be paused, I am wondering is there any exception/abnormal things that will be detected by flash player but not be popped up?
View 2 RepliesHere is an issue i'm struggling to solve for quit some time now.I have a python + GAE backend with a flex client that communicates via JSON. I'm using flex's HttpService bound to a Responder with result and fault callbacks. When python raises an exception, I don't seem to get it in flex. I did some research and found out that the problem probably lies in the fact that the flash runtime cannot handle http responses with status code other than 200.
View 1 RepliesHas anybody had Flash player debuuger suddenly stop working for no reason whatsoever. What I've found so far: - No exception screens popping up.. in ANY browser. Reinstalled debugger version of flash player, no go. - Flashbug not showing in Firebug - No trace calls visible in FlashDevelop - Flash IDE behaves normal.. all trace calls visible - Firefox updated about the same time but problem seems to be on a wider scale This started approximately, on Sunday 8th Januray (or saturday).
View 1 RepliesI have a flash doc with two MC's and two frames.In frame 1, the user can select one of the MC's, and in frame 2, he can move ONLY that MC.Is there a way to write a general code in frame 2 and not having to write an "IF" depending an extra variable I had to create?Because in the future I will have lots of MC's.Here is the little code I have and the link with the .fla
Frame 1
Quote:
stop();
extra_var = 0;[code].............
I'm calling remote images with with a Loader and the context has checkPolicyFile=true, images load fine with urls like :url....the only difference being escaped characters, is this a bug or am I doing something wrong?url...
View 1 RepliesI'm sorry if this is the wrong place to post this, but I looked for a place to send general "feedback" and could not find one.I just wanted to let the management at Adobe know a couple things related to recent Public Relations blunders. Ever since the announcment that you were ending Flash Player for Mobile, I have had many conversations with people about this topic and there is SO much misinformation due to your announcement, it's going to tank Flash as a broader platform.
- Some think Flash doesn't work on Macs
- Some think the Flash player is cancelled on ALL platforms (PC included)
- Some think Flash in its entirety is coming to an end.
This perception seems to come from people of various levels of technical knowledge, from basic users where it's understandable they might be confused about the specifics of the recent news (but still not a good thing!) on up to key decision makers who don't know tech but are key to making certain spending decisions with regard to tech platforms (CEOs). This is a horrible place for Flash to be in right now and you need to quickly change the perception with a "Flash is alive and well" type of announcement.Remember, most people only retain sound bites and a few words from headlines. You may have announced "Adobe ends Flash Player for Mobile" originally, but what people retained was "Adobe ends Flash Player". You need to make a new announcement that the short attention span people will come away from with knowledge that all is well. "Flash not dead" for example.Man, whoever plans your PR needs to be fired. You could have killed off the Mobile player back before the MAX conference and then followed up with the news about Flash Player 11 and Stage 3D. That would have a perfect one-two punch, but instead you reversed it and all the excitement from FP11 @ MAX was blown away.