NavigateToURL con frames en ActionScript 3.0

Empece a diseñar paginas web a los 15 años creo, y me tocó trabajar con Flash desde su primera versión, cuando todavía se llamaba Splash, o algo asi. No trabajo mucho con Flash, y tenía mucho tiempo de no tener que programar algo en ActionScript, pero ayer tuve que editar un menú de la pagina de un cliente en Flash CS3….y no fue nada agradable.

Antes de que Adobe comprara Macromedia, todavía era sencillo trabajar con ActionScript. Hacer que un objeto o boton en una Movie abriera una liga en un iFrame de HTML era algo fácil y rápido. Agregar una action al boton y en el evento onRelease, usar el método getURL.

Ayer, tuve que rediseñar ese menu usando ActionScript 3.0 y que ineficiente hicieron el lenguaje. Algo que antes tomaba 2 lineas, ahora toma 10 o más. Y lo peor es que he visto que gente experimentada y fluida en programación de ActionScript ni siquiera encuentra intuitivamente la forma de hacer algo tan simple como navegar hacia otra pagina en un frame.

Por si a alguien le sirve, aqui hay una liga a Como Usar el metodo NavigateToURL en ActionScript 3.0. El autor de ese blog, Matt, ha posteado mucho sobre ActionScript 3.0 y ayuda mucho a sus lectores cuando le preguntan o incluso se quejan sobre la complejidad innecesaria de ActionScript 3.0.

Y todavía después de eso, estuve quebrandome la cabeza 2 horas más. Aún especificándole el nombre del iFrame como target, la pagina se abría en un tab nuevo. La solución fue, en el dialogo de Export Movie, seleccionar el valor de “Access Network Only” para la opción de Local Playback Security.

Flash CS 3 Export Movie dialog

Flash CS 3 Export Movie dialog

Sin esto…nunca se abre el target en el frame seleccionado.

4 Responses to NavigateToURL con frames en ActionScript 3.0
  1. checo10

    Me parece a mi que, a pesar de ser algo más complejo el ActionScript 3.0, es mejor, pues se toman todas las ventajas de la programación orientada a objetos.

    Si no sabes programar orientado a objetos… mejor dedicate a hacer dibujitos, porque la orientación a objetos es lo que se usa, y nadamas agarrandole la onda, todo se va tan suave que te haces experto en esta programación sin darte cuenta.

    Yo de Java brinqué a ActionScript 3.0 sin la menor dificultad… exceptuando los dibujos, ya que soy pésimo dibujando.

  2. Gabriel

    @checo 10: asumire que eres un estudiante todavia que no ha tenido su primer trabajo…porque cometiste tres errores en tu comentario que alguien que ya tuvo su primer empleo, yo creo que no cometería.

    #1 – creer que programacion orientada a objetos es todo lo que hay. Sabes que existen los trabajos de DBA full time? Si sabes que ellos no programan orientado a objetos, verdad?

    #2 – Alguien que se proclama “experto” de algo, tiene demasiado por aprender. Creo que se aplica completamente la frase de “Dime lo que presumes…y te dire de lo que careces”.

    #3 – Se ve que no trabajaste con ActionScript 2.0 – Desde 2.0, AS ya era orientado a objetos, solamente le agregaron un nivel de complejidad totalmente INNECESARIO a la version 3.0, de la cual varios programadores realmente expertos (no auto-proclamados) de ActionScript se quejaron.

    Como quiera, gracias por opinar..

  3. Rodrigo

    Concuerdo con Gabriel, AS2 es bastante bueno, por lo simple que es de aprender, ahora con AS3 hay que asignar un montón de variables, que si bien pueden llegar a ser necesarias, se podía lograr con AS2. Si uno considerara que AS3 es más robusto y que llena un montón de vacíos que tenía AS2 sería bastante útil, pero no es así. Solo basta con mirar el link de Navigatetourl que dejó Gabriel para ver los enredos que se generan con AS3 en algo que en AS2 era tan simple como direccionar un link desde un objeto (considerando que, según Checo 10 AS3 está más orientado a objetos).
    Bueno en todo caso y como dice Remy en Ratatouille, la naturaleza es cambio de manera que hay que adaptarse a los tiempos que corren. De manera que, para quienes anden buscando como lograr cargar un contenido en iframe desde un flash, dejo aquí el codigo.

    Primero el codigo del Iframe:

    Ahora el código del AS3. En este caso el botón tiene como nombre btn1:

    btn1.addEventListener(MouseEvent.CLICK, btn1Click)
    function btn1Click(event: MouseEvent):void {
    navigateToURL(new URLRequest(“contenido.html”),”mainframe”);
    }

    Saludos desde Chile,
    Rodrigo.

  4. Manaco

    mmm creo que ambos lenguajes tienen cosas buenas y malas, no me parece bueno decir que el as3 sea del todo malo, ya que me ayudo a arreglar un problemilla que se me venia presentando con un reproductor de musica en as2, sin embargo hay que poner muy claro que ahora gastamos el doble de tiempo viendo como pasamos las cosas que teniamos en as2 a as3

Leave a Reply

Your email address will not be published. Please enter your name, email and a comment.