For those of you who are new to ActionScript 3, you might be wondering what happened to the getURL() function. It used to be so easy to create outbound links in Flash with just a single line of code inside the onRelease event for your buttons. Which brings up another question…what happened to the onRelease event?
If you wanted to create a link to another website in ActionScript 2, here’s what it would have looked like:
<img src="http://img.skitch.com/20080418-p896t54u6iy31w8ctsqxn7ee7h.jpg" border="1" alt="code" width="368" height="115" />
Ah, if only it were still so simple!
First of all, the way we handle events in AS3 is a little different. We’re still attaching functions to event handlers, but we’re doing it in a little bit of a different fashion. First we have to explicitly add an event listener to our button, and within that event listener, we tell Flash which function we want to respond to that event. Then we create that function separately. Like so:
Notice that inside the parentheses for the “addEventListener” function, the first thing we specify is the type of event we’re listening for. In this case, we’re listening for the CLICK event, which is defined in the MouseEvent class. The second thing we’ve specified for our event listener is the name of the function we want to run when our event listener is triggered. You can give this function any name you please, as long as the spelling and capitalization matches up with the actual name that you give the function. In this example, I’ve called the function onMouseClick. It’s inside this onMouseClick function that we want to insert our code for navigating to an external URL.
Well, for those of you who are used to using getURL to take you to another website, it’s time to introduce you to a new little method called navigateToURL. Sure, it’s a little more verbose, but it seems to get the point across better.
But before you go out there and starting replacing all your getURL methods with navigateToURL, let me warn you about something–it won’t work. At least not the way you’re used to. When you call on the navigateToURL(), you might be tempted to type a URL inside the parentheses. But the navigateToURL method isn’t looking for a URL string. Instead, it’s looking for a URLRequest object. The URLRequest class is what allows us to communicate with other websites and external files. So, here’s what your final code would look like:
In line 5, we’re creating a new URLRequest object, in which we’re storing the String containing our URL. We stored this URLRequest object in a variable named request. Then, in line 6, we call on the navigateToURL method, which points to the request object we just created.
Note: The “_blank” is optional. Include this only if you want the link to open in a new browser window.
I know this has been a long explanation for such a simple concept, but I’ve seen a lot of very brief explanations out there, and I wanted to make sure you understood not only what you were typing but also why you were typing it.