Hola mbascolo. Lo primero que quiero decirte es que las funciones a las que quieras llamar puedes crearlas donde quieras. Lo único que debes tener en cuenta es que esa función DEBE ESTAR CREADA antes de llamarla. Esto significa que no puedes llamar desde el frame 1 a una función que has creado en el 30. Por eso, si deseas insertar el código en la línea de tiempo, una buena práctica consiste en crear todas las funciones a las que vayas a acceder en el frame 1, así las tendrás disponibles para el resto de tu película.
Otra cosa que debes tener en cuenta, es que los listener debes declararlos en un frame en el que el objeto que lo recibe esté presente. Si quieres hacer un addEventListener de un botón llamado "boton1", no puedes hacerlo si ese botón no está en la pantalla. Al compilar te daría un error de que se está intentando acceder a una propiedad o método de un objeto inexistente.
Con respecto a tu código, vamos a suponer que defines tu función en el frame 1. Esta debería ser así:
Código :
function iralenlace(e:MouseEvent):void{
navigateToURL(new URLRequest("http://www.muelalab.com"));
}
Fiíjate que he sustituido tu "e:Event" por "e:MouseEvent", ya que lo que estamos esperando no es un evento cualquiera, sino un evento de ratón.
Por otra parte, en el primer frame que aparezca tu botón, escribiríamos el siguiente código:
Código :
bt1_btn.addEventListener (MouseEvent.CLICK,iralenlace);
que es el código que correctamente habías puesto. Lo que no tienes que olvidar es ponerle el nombre "bt1_btn" a la instancia de botón que tengas en el escenario, porque si no te dará error.
Espero haberte sido de ayuda.
Un saludo