13.08.2012 Views

ACTIONSCRIPT 3 Developer’s Guide en

ACTIONSCRIPT 3 Developer’s Guide en

ACTIONSCRIPT 3 Developer’s Guide en

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>ACTIONSCRIPT</strong> 3.0 DEVELOPER’S GUIDE<br />

Handling HTML-related ev<strong>en</strong>ts in AIR<br />

<br />

<br />

<br />

function throwError() {<br />

var x = 400 * melbaToast;<br />

}<br />

<br />

<br />

<br />

Click me.<br />

<br />

It contains a JavaScript function, throwError(), that refer<strong>en</strong>ces an unknown variable, melbaToast:<br />

var x = 400 * melbaToast;<br />

Wh<strong>en</strong> a JavaScript operation <strong>en</strong>counters an illegal operation that is not caught in the JavaScript code with a try/catch<br />

structure, the HTMLLoader object containing the page dispatches an HTMLUncaughtScriptExceptionEv<strong>en</strong>t ev<strong>en</strong>t.<br />

You can register a handler for this ev<strong>en</strong>t, as in the following code:<br />

var html:HTMLLoader = new HTMLLoader();<br />

var urlReq:URLRequest = new URLRequest("test.html");<br />

html.load(urlReq);<br />

html.width = container.width;<br />

html.height = container.height;<br />

container.addChild(html);<br />

html.addEv<strong>en</strong>tList<strong>en</strong>er(HTMLUncaughtScriptExceptionEv<strong>en</strong>t.UNCAUGHT_SCRIPT_EXCEPTION,<br />

htmlErrorHandler);<br />

function htmlErrorHandler(ev<strong>en</strong>t:HTMLUncaughtJavaScriptExceptionEv<strong>en</strong>t):void<br />

{<br />

ev<strong>en</strong>t.prev<strong>en</strong>tDefault();<br />

trace("exceptionValue:", ev<strong>en</strong>t.exceptionValue)<br />

for (var i:int = 0; i < ev<strong>en</strong>t.stackTrace.l<strong>en</strong>gth; i++)<br />

{<br />

trace("sourceURL:", ev<strong>en</strong>t.stackTrace[i].sourceURL);<br />

trace("line:", ev<strong>en</strong>t.stackTrace[i].line);<br />

trace("function:", ev<strong>en</strong>t.stackTrace[i].functionName);<br />

}<br />

}<br />

Within JavaScript, you can handle the same ev<strong>en</strong>t using the window.htmlLoader property:<br />

Last updated 6/6/2012<br />

1019

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!