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!!
