Por un aldo tengo el xml con con los enlaces como attributos:
Código XML :
<PROMOS_PARTICULARES> <espanol> <PROMO titulo="uno" ruta="./promos_principales/particulares/western.swf" enlace="http://www.marca.es" tiempo="50000"></PROMO> <PROMO titulo="dos" ruta="./promos_principales/particulares/libro_de_sellos.swf" enlace="https://www.google.es" tiempo="50000"></PROMO> </espanol> </PROMOS_PARTICULARES>
y el as:
Código ActionScript :
import flash.net.URLRequest;
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.utils.*;
import flash.filters.DropShadowFilter;
import flash.text.*;
import flash.display.Stage;
import flash.ui.Mouse;
///variables//
var activa:Object = root; /// este para cambiar la animacion
var total_promos:Object = root; /// este para ver el numero de promos
var objArray:Array = new Array(); // y este otro los botones
var objPosis_Init:Array = new Array(); //Registro de las primeras posiciones de las cajas
var objPosis:Array = new Array(); //Posterior almacenamiento de las siguientes porque no chuta contenedor.x dentro del evento.
///español///
var nombres_es:Array = new Array();
var ruta_es:Array = new Array();
var enlace_es:Array = new Array();
/////cargamos xml////
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
xmlLoader.load(new URLRequest("xml/promociones_particulares.xml"));
function LoadXML(e:Event):void {
xmlData = new XML(e.target.data);
carga(); // <<--lanza funcion
}
function carga(){ // <-- carga menu
var recoge:uint = xmlData.espanol.PROMO.length();
for(var i:uint = 0 ; i < recoge ; i++){
ruta_es.push(xmlData.espanol.PROMO[i].attribute("ruta"));
enlace_es.push(xmlData.espanol.PROMO[i].attribute("enlace"));
nombres_es.push(xmlData.espanol.PROMO[i].attribute("titulo"));
desactivabarra();
var cuadra:MovieClip = new MovieClip();
var contenedor = new Loader();
contenedor.load(new URLRequest(ruta_es[i]));
contenedor.y = 0;
contenedor.x = (separate * i) + (separate2 * i);
cuadra.y=0;
cuadra.x=(separate * i) + (separate2 * i);
cont.addChild(contenedor);
cont.addChild(cuadra);
objArray.push(contenedor);
objPosis_Init.push(contenedor.x); /// mete posiciones de inicio.
objPosis.push(contenedor.x); /// mete posiciones siguientes.
cuad.addEventListener(MouseEvent.MOUSE_DOWN,onCuadMouseDown);
//////eventos enlaces//////
contenedor.addEventListener(MouseEvent.CLICK, golink);
function golink(e:MouseEvent) : void
{
e.currentTarget.url ....
}
////////////////////////////
function onCuadMouseDown(event:MouseEvent) : void
{
cuad.startDrag(false,scrollzone)
stage.addEventListener(MouseEvent.MOUSE_UP,onStageMouseUp);
activa.gameStat = "play";
timer.stop();
}
function onStageMouseUp(event:MouseEvent) : void
{
activa.gameStat = "stop";
cuad.stopDrag();
stage.removeEventListener(MouseEvent.MOUSE_UP,onStageMouseUp);
timer.start();
objPosis.splice(0);
for(var i:uint = 0 ; i < recoge ; i++){
objPosis.push(objPosis_Init[i] + Math.floor(cont.x));
}
trace(objPosis);/// < -- posiciones..
}
activa.total_promos = recoge;
}
}
Básicamente lo que necesito hacer, es decirle en esta función a los contenedores que se crean para cargar imágenes, que tienen que asociar los enlaces que he metido dentro del Array "enlace_es", para que cuando hagla clicks en éstas imágenes cargen los enlaces correspondientes. Vamos asociar botones con enlaces.
Código ActionScript :
contenedor.addEventListener(MouseEvent.CLICK, golink);
function golink(e:MouseEvent) : void
{
e.currentTarget...
}No sé como hacerlo porque no puedo usar la propiedad "this" de igual modo que en as2 a la que estoy acostumbrado para asociar ambos elementos, así como tp e.currentTarget.url puesto que no me deja dentro de la clase new Loader y no sé porqué o que no estaré haciéndolo bien.
Ni idea de como construirlo, si alguién puediera contestarme le estaría muy agradecido.
