Comunidad de diseño web y desarrollo en internet online

Plantilla AS3 clicktag

Citar            
MensajeEscrito el 11 Ago 2010 07:57 am
Muy buenas gente!
Vereis, cada dos por tres me estan pidiendo que haga cambios en unos banner que tenemos en diferentes medios de comunicación. Asi que se me ha ocurrido hacer una plantilla, que consiste en un swf que cargue el swf que realmente es el banner. De este modo solo tengo que hacer cambios en el swf_banner y subirlo a mi servidor para que en el swf_plantilla se vea reflejado.
El problema que veo es el clickTag.
Y no porque no consiga hacer que funcione. En un post que ya escribí, mostré la solución que encontré para el clicktag en as3.
En concreto el problema es que estube haciendo pruebas, y al principio me cargaba en el navegador (el que tengo por dentro del proxy) la carpeta donde esta subido el swf_banner. Despues encontre como le tenia que darle un valor al clicktag. Con cargar el swf directamente en el navegador y darle el valor a la variable valia:

Código HTML :

http://www.mipagina.com/carpeta/swf_plantilla.swf?clickTag=http://www.nuevapagina.com


La cuestion es que me funcionó. Pero no se que he tocado, que ya no me carga la pagina.
Ahora, cuando compilo desde el Flash si que me carga la carpeta contenedora. Pero cuando lo pruebo en la web no me hace ni p*** caso.

Os dejo los codigos de los dos archivos. A ver si alguien me puede decir que algo.

Codigo del swf_banner:

Código ActionScript :

import fl.transitions.*;
import fl.transitions.easing.*;
import flash.display.Loader;
import flash.display.Sprite;
import flash.net.URLRequest;
import flash.events.*;
import flash.events.Event;
import flash.utils.Timer;
 
var myVideo:Video = new Video();
var tempo:Timer = new Timer(12200, 1);
var reserva:Loader = new Loader();
reserva.load(new URLRequest("http://www.mipagina.com/varios/reserva2.png"));
var gratis:Loader = new Loader();
gratis.load(new URLRequest("http://www.mipagina.com/varios/gratis_peq.png"));

// Creamos un Sprite que nos va a servir de contenedor
var contenedor:Sprite = new Sprite();
var contenedor2:Sprite = new Sprite();

// Colocamos nuestro contenedor dentro de la película.
// pero como no tiene nada adentro, no vemos nada.
this.addChild(contenedor);
contenedor.addChild(reserva);
this.addChild(contenedor2);
contenedor2.addChild(gratis);
 
myVideo.width = 300;
myVideo.height = 250;
btnLink.addEventListener(MouseEvent.CLICK, salto);
btnReiniciar.enabled = false;
reiniciar.visible = false;
cuadrado.visible = false;
btnReiniciar.addEventListener(MouseEvent.CLICK, recomenzar);
 
addChild(myVideo);
 
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
myVideo.attachNetStream(ns);
ns.play("http://www.mipagina.com/varios/video.flv");
tempo.start();
tempo.addEventListener(TimerEvent.TIMER, imagenfinal)
setChildIndex(btnLink, numChildren-1);
 
function imagenfinal(e:Event):void
{
            contenedor.x = 0;
            contenedor.y = 218;
            contenedor2.y = -300;
            contenedor2.x = 230;
            var mov:Tween = new Tween(contenedor, "x", Back.easeOut, -300, 0, 1, true);
            var mov2:Tween = new Tween(contenedor2, "y", Bounce.easeOut, -300, 70, 2, true);
            btnLink.enabled = true;
            btnReiniciar.enabled = true;
            reiniciar.visible = true;
            cuadrado.visible = true;
            setChildIndex(cuadrado, numChildren-1);
            setChildIndex(contenedor, numChildren-1);
            setChildIndex(contenedor2, numChildren-1);
            setChildIndex(reiniciar, numChildren-1);
            setChildIndex(btnLink, numChildren-1);
            //El boton para reiniciar lo pongo por encima porque es mas pequeño
            //que el del enlace y asi puedo las dos cosas, reiniciar o saltar a la pagina
            setChildIndex(btnReiniciar, numChildren-1);
}
 
function recomenzar(e:MouseEvent):void
{
            setChildIndex(btnLink, numChildren-1);
            btnReiniciar.enabled = false;
            reiniciar.visible = false;
            cuadrado.visible = false;
            ns.play("http://www.mipagina.com/varios/video.flv");
            tempo.start();
            contenedor.x = -500;
            contenedor2.y = -300;
            contenedor2.x = 200;
}
 
 
/* --- EL TAG VA EN ESTA FUNCION ---*/
 
function salto(e:MouseEvent):void
{
            navigateToURL(new URLRequest(getClickTag()),"_blank");
}
 
function getClickTag():String{
            for (var key:String in root.loaderInfo.parameters)
                        if(key.toLowerCase()=="clicktag")
                                   return root.loaderInfo.parameters[key];
            return "";
}



Codigo del swf_plantilla:

Código ActionScript :

import flash.display.Loader;
import flash.display.Sprite;
import flash.events.*;
import flash.net.URLRequest;

var loader:Loader = new Loader();
loader.load(new URLRequest("http://www.mipagina.com/varios/swf_plantilla.swf"));

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, insertMovie);

function insertMovie(e:Event):void
{
            addChild(loader);
}


Ya me decís algo gente!!
Muchas gracias!! ^_^

Por SeiyaJapon

54 de clabLevel



 

España

safari
Citar            
MensajeEscrito el 11 Ago 2010 12:12 pm
Lo he solucionado.
Lo que he tenido que hacer es poner el boton invisible para el clickTag (y sus correspondientes funciones) en el swf_plantilla.
Saludos!

Seiya.

Por SeiyaJapon

54 de clabLevel



 

España

safari

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.